C言語

Zend Engineを読む② | 文字列が出力されるまで

PHPの実行エンジンであるZend Engineを解読!Lexer、Parser、Execute、zend_writeまでデバッグを仕込み、文字列が出力されるまでの処理の流れをトレース・解説します。
C言語

【入門】プログラミング言語を自作する方法⑥|変数スコープを実装する

プログラミング言語を作ってみた⑥。今回は自作言語「五右衛門」に変数スコープを実装しました。グローバル変数・ローカル変数のスコープ管理、コンパイラの実装、VMでのローカル変数管理の仕組みを詳しく解説します。
API

RFC 10008で追加されたHTTP QUERYメソッドをPHP・Laravelで検証してみた

RFC 10008で標準化されたHTTP QUERYメソッドをPHP・Nginx・Laravelで検証しました。GETでは扱いづらい複雑な検索条件をBodyで送信できるQUERYメソッドについて、実際のリクエスト処理やLaravelの対応状況を確認します。
C言語

【入門】プログラミング言語を自作する方法⑤|for文・AST・自動テストでコンパイラを改善

プログラミング言語を作ってみた⑤。前回の続きです。今回は自作言語「五右衛門」にfor文を実装するとともに、AST(抽象構文木)の導入と自動テストを追加しました。コンパイラの設計改善や品質向上について解説します。
DB設計

達人に学ぶDB設計を読んだので、MariaDBでインデックスと実行計画(EXPLAIN)を検証してみた②

前回の10万件に続き、今回は100万件のデータでMariaDBのインデックスと実行計画(EXPLAIN)を検証。データ量が増えてもオプティマイザの判断は変わるのかを確認します。
DB設計

達人に学ぶDB設計を読んだので、MariaDBでインデックスと実行計画(EXPLAIN)を検証してみた①

MariaDBで10万件のデータを用意し、インデックスの効果と実行計画(EXPLAIN)を検証。なぜインデックスを貼ってもtypeがALLになるのか、実際の結果をもとに解説します。
PHP

Zend Engineを読む① | php-srcをビルドする

PHPの実行エンジンであるZend Engineを読むための準備として、php-srcのビルド方法を解説します。buildconf、configure、makeの役割やデバッグビルドの手順も紹介します。
C言語

【入門】プログラミング言語を自作する方法④|if文・while文を実装して制御構文を作る

プログラミング言語を作ってみた④。前回の続きです。今回は自作言語「五右衛門」に if文・while文を実装しました。2パスコンパイルとバックパッチを用いて、JZやJMPによる制御構文を実現します。
PHP

PHPライブラリを作ってPackagist公開するまで

PHPライブラリを作ってPackagistに公開をしてみました。公開するまでの流れや、自動テストについてなど、開発サイクルを備忘録として残しておきます。
C言語

【入門】プログラミング言語を自作する方法③|変数として値を保持から出力まで

プログラミング言語を作ってみた③前回の続きです。今回は五右衛門に変数と出力機能を実装しました。プログラミング言語らしくなってきました。再帰下降構文解析 を用いることで、計算をスマートにパースすることができました。