タグ

pythonとimplementationに関するjjzakのブックマーク (3)

  • ((Pythonで) 書く (Lisp) インタプリタ)

    Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基とし

  • ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ)

    ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ) Peter Norvig / 青木靖 訳 前のエッセイでは、90行のPythonコードでシンプルなLispインタプリタを書く方法を示した(lis.py)。このエッセイでは、3倍込み入っているが、より完全なlispy.pyを実装しよう。それぞれの節で1つの機能追加を扱っている。 (1) 新しいデータ型 - 文字列、論理型、複素数、ポート Lispyへの新しいデータ型の追加は3つの部分からなる。データの内部表現、それを扱う手続き、読み書きのためのシンタックスだ。ここでは4つの型を追加する(入力ポート以外はPythonのネイティブ表現をそのまま使う)。 文字列 文字列リテラルはダブルクォーテーションで囲まれる。文字列の中で \n は改行を、\" はダブルクォーテーションを意味する。論理型  構文 #t と #f はTrue

  • 講義資料 - PukiWiki

    テストデータ, reference情報など † 10/29 mini-Python文法 grammar.txt 10/29 字句解析器テストデータ tokenizer.tar.gz 11/5 構文木ヘッダsyntree.h.txt 11/5 構文木Cソースの一部syntree.c.txt 11/5 構文解析木ヘッダparser.h.txt 11/5 構文解析木Cソース一部almost_empty_parser.c.txt 11/5 構文解析器および最終課題用テストプログラムtests.tar.gz 11/26 Python値を定義するヘッダファイルpyvalues.h.txt 11/26 Python値関連の関数群Cソースの一部almost_empty_pyvalues.c.txt ↑ 添付ファイル: 5-eval.ppt 210件 [詳細] 5-eval.pdf 325件 [詳細] 4-

    jjzak
    jjzak 2007/11/16
    東京大学の言語処理系(mini-Python)を作る講義資料 2007年版
  • 1