C言語

C言語のデバッグにLLDBを使ってみた

C言語のデバッグにLLDBを実際に使いながら、ブレークポイントやステップ実行、変数・メモリ・スタックフレームの確認方法を解説。最後に自作コンパイラ「五右衛門」のデバッグも試します。
C言語

【入門】プログラミング言語を自作する方法⑩|配列の実装とリファクタリング

プログラミング言語を作ってみた⑩。今回は自作言語「五右衛門」に配列を実装しました。配列の構文追加からAST生成、名前解決と型チェック、バイトコード生成、VMでの配列管理・要素の読み書きまで詳しく解説します。
C言語

【入門】プログラミング言語を自作する方法⑨|関数の実装

プログラミング言語を作ってみた⑨。今回は自作言語「五右衛門」に関数を実装しました。関数のパースやASTの生成、名前解決と型チェック、バイトコード生成、VMでの関数呼び出しや再帰処理について詳しく解説します。
C言語

【入門】プログラミング言語を自作する方法⑧|型システムと型チェックの実装

プログラミング言語を作ってみた⑧。今回は自作言語「五右衛門」に型システムと型チェックを実装しました。静的型付けを採用した五右衛門の型定義やASTへの型情報の付与、名前解決と連携した型チェック、文字列の出力処理について詳しく解説します。
Docker

個人ブログのWordPress環境をセキュリティ設計・運用の観点から見直してみた

WordPressブログのセキュリティ設計・運用を見直し、MFA導入、SSH、TLS、Docker、DB、秘密情報、バックアップなどを実際の環境で確認・是正した内容を紹介します。
C言語

【入門】プログラミング言語を自作する方法⑦|Parserのリファクタリングと名前解決の実装

プログラミング言語を作ってみた⑦。今回は自作言語「五右衛門」のParserをリファクタリングし、名前解決を実装しました。ASTを活用したParser・名前解決・コード生成の責務分離や、シンボルテーブルを使った変数の解決について詳しく解説します。
DB設計

達人に学ぶDB設計を読んだので、MariaDBでインデックスのデメリットを検証してみた③

MariaDBでインデックスのデメリットを検証。100万件のデータを使い、インデックスの有無によるINSERT・UPDATEの実行時間を比較し、書き込み処理への影響を確認します。
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の対応状況を確認します。