タグ

2025年5月19日のブックマーク (2件)

  • JavaScriptで100行で作る!数式言語のインタプリタ

    はじめに 皆さんはプログラミング言語を作ったことがあるでしょうか? おそらく大抵の方は「ない」というのが正直なところなのではないかと思います。背景には、おそらく「プログラミング言語を作るって難しそう」という先入観があるのではと筆者は踏んでいます。 プログラミング言語とは、コンピューターに指示を与えるための特別な言語です。私たちが日常で使う言語と同じように、プログラミング言語にも文法やルールがあります。そして、この言語を理解し実行するのが「処理系」と呼ばれるプログラムです。 しかし、実はプログラミング言語の処理系(インタプリタ)を作ることは非常に簡単なことです。小さなOSを作ることに比べても、ちゃんと動くWebサービスを作ることに比べても当に簡単です。 というわけで、この記事では「プログラミング言語」を作るための導入として「数式言語」のインタプリタを作ってみます。数式言語とは、数学の式を扱

    JavaScriptで100行で作る!数式言語のインタプリタ
  • わずか16KB! WebAssemblyで動くミニC言語オフラインコンパイラ&インタプリタ webci0

    ruby4ijを早速使っていただきました!「風船 Ruby 版 (ruby4ij)/Kidspod;」 ただ、なかなかにやっかいな開発環境づくり。開発するために必要なツールが多く、それぞれがバージョンアップするので環境構築方法が変わってしまったりして鬼門です。 そこで便利なweb技術。クラウド処理もありですが、IchigoJam web でも使っている、エッジ技術WebAssemblyを使ったパパっと手元で軽快動作を目指します。 手始めに、こちら学習用ミニCコンパイラ「ci0」を移植して作った「webci0」 「webci0 - mini C compiler ci0 in WebAssembly」 C言語風に書いたプログラムをスタックマシンなVM用マシン語に変換、インタプリタとして実行します。標準関数は文字列表示のputstrと数表示のputnumのみ。メイン部分は500行ちょっとのオ

    わずか16KB! WebAssemblyで動くミニC言語オフラインコンパイラ&インタプリタ webci0