プログラミング

C言語

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

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

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

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

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

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

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

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

【入門】プログラミング言語を自作する方法②|トークナイザを実装して文字列を分解する(C言語)

プログラミング言語を作ってみた②前回の続きです。今回はトークンナイザを実装して、分解をしました。トークンナイザを作ることにより、前回の文字列検索から可読性がかなり上がったと思います。
Laravel

【Laravel】GitHub Actionsでテストを自動実行する方法(Vite環境対応)

自前で用意したサーバで自動テストを実行しました。GitHub Actions の Self hosted runner です。pushするたびにテストサーバでLaravelの自動テストを実行します。
API

SCIM APIとは?仕組みと仕様設計のポイントをわかりやすく解説

SCIM API について、まとめてみました。SCIM APIとRESTful APIの違いとは?SCIM API に準拠したAPIの設計についてまとめました。