読者です 読者をやめる 読者になる 読者になる

エンタープライズギークス (Enterprise Geeks)

企業システムの企画・開発に携わる技術者集団のブログです。開発言語やフレームワークなどアプリケーション開発に関する各種情報を発信しています。ウルシステムズのエンジニア有志が運営しています。

JavaScriptでLispインタープリターを作ろう(8) ~ローカルスコープの導入~

前回の記事で関数を記述する機能が導入できた。しかしながら、現状のインタープリターにはローカルスコープが無く、変数が関数内に閉じていないために課題も残った。今回は、上記の課題を解決するためにローカルスコープを導入する。 ローカルスコープとは …

JavaScriptでLispインタープリターを作ろう(7) ~関数の導入~

前回の記事で、Lispインタープリターは「順次・反復・分岐」のすべての制御構文をサポート出来るようになった。今回は、いよいよ関数を記述する機能を導入する。 「仮引数」と「実引数」 関数を記述する機能を導入する前に、JavaScriptを例にして、関数につ…

JavaScriptでLispインタープリターを作ろう(6) ~反復の導入~

前回の記事では変数を導入した。これで、反復処理を記述するための土台がひとまず整ったことになる。それでは早速、反復処理であるwhileを導入してみよう。 反復処理を行うwhile 反復処理は、インタープリターのevaluate関数に以下の記述を追加する事で導入…

JavaScriptでLispインタープリターを作ろう(5) ~変数の導入~

前回の記事では、Lispインタープリターに順次処理「do」を導入した。ここまでの説明で、「順次・反復・分岐」のうち、「順次」と「分岐」は既に導入できたので、残すは「反復」のみとなる。 しかし、反復を説明する前に説明しておくべき事がある。それは「変…

JavaScriptでLispインタープリターを作ろう(4) ~順次処理「do」の導入~

この連載の第3回では、条件分岐ifを導入した。これは、プログラムにおける基本3要素「順次・反復・分岐」のうち、「分岐」をサポートしたことと言える。しかし、「順次」や「反復」に関してはまだサポートしていないため、今回は「順次」を四則演算インター…

JavaScriptでLispインタープリターを作ろう(3) ~条件分岐「if」を導入~

前回の記事では、JavaScriptで記述した小さな四則演算インタープリターの実装を解説した。 この四則演算インタープリターは、電卓としてはうまく機能することが前回の解説で理解できたかと思う。しかし、このインタープリターには、プログラムを記述する際に…

Lispインタープリター勉強会を開催しました

2014年12月3日に、広島にてLispインタープリター勉強会(http://great-h.doorkeeper.jp/events/16621)を開催しました。 勉強会の開催にあたり、会場の設営や機材の調達など、「すごい広島(http://great-h.doorkeeper.jp/)」の方々には大変お世話になりました…

JavaScriptでLispインタープリターを作ろう(2) ~四則演算インタープリター編~

前回の記事では、JavaScriptで記述した小さな四則演算インタープリターの実装を紹介した。今回は、この四則演算インタープリターがどのように作られているかを解説する。 四則演算インタープリターの動かし方 まずはこの四則演算インタープリターの動かし方…

JavaScriptでLispインタープリターを作ろう(1)

プログラマーなら一度はLispを作る 「プログラマーなら一度はLispを作る」という言葉は有名だ。実際、世の中にはLispの実装が山のように存在し、Lispの処理系を作成する記事を見かける事も少なくない。 しかし、今までその言葉は知っていたものの、自分でLis…