[ 目次, 前節, 次節, 索引 ] 2014-03-06 更新 [ 目次, 前節, 次節, 索引 ]
[ 目次, 前節, 次節, 索引 ] 2014-03-06 更新 [ 目次, 前節, 次節, 索引 ]
Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基本とし
この記事は2012年アドベントカレンダーの記事ではありません。 Nadekoympbyc/Nadeko · GitHub 少し前に『すごいHaskell楽しく学ぼう』を買いまして、にわかHaskellerやってたんですが、使う言語は仕組みを理解したいと思ってとりあえずデフォルトの遅延評価とデフォルトのカリー化をLispにくっつけてみました。 もともとLispにしようとは思ってなかったんですが、S式よりかっこいい構文が思いつかなかったので。(優先順位嫌い) 本質的でないところを書く手間を省くために、パーサはSchemeの(read)で済ませました。 VMは最初SECDマシンを書いて、後からKrivine's Machine(Kマシン)を改造したものに置き換えました。ここ少し詳しく書こう。 Krivine Machineで検索かけるといろいろ論文が出てきますが、 http://pop-art.
About BiwaScheme is a Scheme interpreter written in JavaScript. Try it now Download biwascheme-0.8.0.js biwascheme-0.8.0-min.js Older versions are on github. Example <script src="biwascheme.js"> (console-log "Hello, world!") </script> Demo Picture language (from SICP) BiwaScheme for Mobile Games Hockey (a pong-like game) Dobon (a card game) 15 puzzle Tetris-like example Development REPL with IL in
Chickenは、R5RSにほぼ準拠したSchemeのコンパイラおよびインタプリタである。標準を越える多くの拡張を持っている。BSDライセンスで利用可能な、フリーな処理系である。 Chicken の目標はシンプルであり、「実用的でポータブルなScheme処理系」を目指している。 Gaucheと同じように、Chickenは「現実世界のソフトウェア」を書くために、実用性を重視している。Schemeはコンピュータサイエンスのカリキュラムやプログラミング言語の実験台として有名ではあるが、ビジネスや産業用途ではあまり見かけられないものであった。[2] Chickenのコミュニティはeggsレポジトリ(後述)に、幅広いジャンルのタスクをこなすためのライブラリを作った。Chicken wiki では、Chicken を使ったソフトウェアのリストが掲載されている。[3] Chicken のもう一つの目標で
低レベルシステムへのアクセス。 特定のエンコードに依存しない文字列処理。 Common Lisp ライクな拡張。 名前空間(モジュール)のサポート。 Tiny CLOS派生のオブジェクトシステムのサポート。 川合史朗によって開発されている。[1] 2001年1月31日、開発を開始。 2001年4月、SourceForgeに登録、0.3.5をリリース。 2002年7月〜2003年2月 Gauche-gl及びGauche-gtkの開発の一部が、情報処理振興事業協会(IPA)による平成14年度未踏ソフトウェア創造事業の支援を受ける。 2003年9月〜2004年2月 開発の一部が情報処理振興事業協会(IPA)による平成15年度オープンソフトウェア基盤整備事業の支援を受ける。 2011年8月、Gauche 0.9.3リリース、R6RSおよびR7RSドラフトに対応。 2013年4月、リポジトリをGit
Larceny is a simple and efficient implementation of the Scheme programming language. Created originally as a test vehicle for research on garbage collection and compiler optimizations, Larceny has grown into a major multiplatform system. Larceny supports the four most important standards for Scheme: IEEE/ANSI, R5RS, R6RS, and R7RS. Development of Larceny has been supported by NSF, Sun Microsystems
Ikarus SchemeStay updated with the latest in automotive, tech, food, and global events Marketing plays a crucial role in the success of logistics companies. With the right strategies, businesses can attract new clients, retain existing ones, and drive substantial growth. Whether it’s digital marketing for trucking companies or leveraging tools from providers like Leadgamp, effective marketing can
(chez (chez scheme)) Chez Scheme is Now Open Source Chez Scheme is now an open-source project, hosted at github.com/cisco/chezscheme with a project page at cisco.github.io/ChezScheme. Current information on Chez Scheme can be found there. The Scheme Programming Language Documentation for Chez Scheme comes in two parts. The The Scheme Programming Language, 4th Edition (TSPL), which is a general int
この中でカール・ヒューイットが設計した規則ベースの言語 Planner はあまりに複雑な機構を持っていたため当初設計された全機能の実装は困難であり[注釈 9]、サスマン等はそれをサブセット言語の Micro-Planner として実現し、さらには、 Planner の流れを汲んだ独自言語として Conniver を作成した。 同じくカール・ヒューイットが設計したアクタ言語 Plasma (Planner-73) も複雑な機構を持っていたため、MacLisp による実装が存在したものの、その動作の仕組みを理解するのは困難であった。サスマン及びガイ・スティール・ジュニアは Plasma を理解するために、不要な機能を省いた LISP 構文を持つ小さな Plasma を設計した。 上記の Plasma からその小さな Plasma の設計に至る過程は Planner から Micro-Plann
クロージャが使えると、 それを使っていろんなことが可能になるので、 C でも似たことができないか試してみた。 内部状態をもつ簡単なカウンタを作ってみます。 最初に初期値を指定して、 呼び出す時に引数で数値を渡すと、 内部のカウンタがそれだけ増えて、 カウンタの値を返すというクロージャです。 Scheme だと Scheme で普通に書くと、 こんな風になると思います。 (define (make_counter k) (let ((n k)) (lambda (a) (set! n (+ n a)) n))) こうやってクロージャを返す関数を作って、 (define c1 (make_counter 0)) (define c2 (make_counter 5)) 初期値を変えてクロージャを 2 つ生成します。 (print (c1 3)) ; => 3 (print (c2 1)) ;
Problem 79(2) - グラフ理論へ - ボクノス の続きです。 自分が作ったアルゴリズムがトポロジカルソートだと言う名前に気づいてなかったので・・・。 ところでトポロジカルソートって何者!? 昨日、新宿でラーメン食った。 腹いっぱいになったので、渋谷のスタバでお茶して。 あ、そうそう、新宿行く前に池袋のジュンク堂でいい本見つけてさ・・・。 あれ?俺昨日何してたんだっけ・・・と思い出しながら並べてみる。 新宿→ラーメン ラーメン→渋谷→スタバ 池袋→ジュンク堂→ラーメン 話をまとめると、 池袋→ジュンク堂→新宿→ラーメン→渋谷→スタバ となる。話が長かったらスゲー大変だ。 時系列がバラバラだった話を一本の線にして話をまとめる。これをトポロジカルソートというらしい。 Tarjanのアルゴリズム 前回作ったのも、トポロジカルソートの実装の一つらしいけど、無駄な部分があるので、 もうちょ
This is a moderately complete small scheme interpreter. It implements most of R6RS, with the exception of call/cc. It is however starting to have a set of delimited continuations, reset/shift et al. It has a macro system, although not R6RS hygienic macros. It is also not necessarily fully tail-recursive; so it's not industrial-strength. For playing with or learning scheme, it should be pretty good
Husk is a dialect of Scheme written in Haskell that implements a superset of the R5RS standard. Advanced features are provided including: First-class continuations of unlimited extent Hygienic macros based on syntax-rules Low-level explicit renaming macros Library syntax from the R7RS standard A foreign function interface (FFI) to Haskell Full numeric tower providing support for real, rational, an
プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20) C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13) C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る VBAにおけるFileDial
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く