新機能 イベント詳細画面に「参加者への情報」欄を追加しました。イベント管理者、発表者、参加者(抽選中や補欠は除く)だけに表示されるフィールドです。詳しくはこちら

新機能 オンラインイベントが検索できるようになりました。オンラインイベントとして検索できるようにするには こちら をご確認ください

このエントリーをはてなブックマークに追加

Jun

28

“あとはゴミ集めだけ” Lisp キット

Organizing : 株式会社 PRINCIPIA

Hashtag :#Lisp
Registration info

一般

3000 (Pre-pay)

FCFS
5/10

About Prepayment

About Prepayment Contact Info:

(Only shown to attendees.)

Cancel/Refund Policy:

お申込み後のキャンセルはできません.セミナーについての説明をよくお読みいただき,十分ご検討の上お申し込みください.CONNPASS上でキャンセルしても,セミナー当日に不参加であったとしても参加費用は返却されません.

Print receipt data:

発行しない (詳しくはこちら)

Description

セミナーの内容

こんにちは,初谷@PRINCIPIAです.突然ですがゴミ集め(GC)を作ってみたくありませんか?

もしかしたら難しいというイメージがあるかもしれませんが,コードを書くこと自体はそれほどたいへんではありません.それでもゼロから言語処理系を作り,ラインタイムライブラリを作って,その中でゴミ集めを実装するのはそれなりの作業だし,はじめての人には迷うポイントがたくさんあるでしょう.

そこで”あとはゴミ集めだけ” Lisp キットというのを作りました.名前のとおり,ゴミ集めだけ実装していない Lisp 処理系です.ゴミ集めはないけど動きます.メモリある限り動きます.

ゴミ集めの実装に集中できるように極力シンプルな実装にしました.これくらいシンプルです:

  • 構文は 6 種類だけ
  • 組み込み関数は 5 個だけ
  • 仮想マシンの命令は制御 7 個,組み込み関数用 5 個
  • コンパイラは 42 行(Scheme)
  • 仮想マシンは 392 行(C)
  • テスト用の仮想マシン(Scheme)は 37 行

私が作ったゴミ集めの実装(非公開)は次の規模でした:

  • マークスイープ GC 80 行
  • コピー GC 77 行

はじめに”あとはゴミ集めだけ” Lisp キットの設計とコードを解説します.それからゴミ集めのアルゴリズムを解説します.あとは実装したり実用的な処理系に進化させたりと楽しんでください.

もしかしたらコンパイラや仮想マシンの解説の方が面白いかもしません.小さな処理系なので仕組みを理解したり実験したりするのに向いています.複数のゴミ集めアルゴリズムを実装して比較するという楽しみ方もあります.

それから定義構文すらない小さな言語で再帰関数を書く方法についても紹介します.これもおすすめポイントです.

最後にクイズも用意しておきました.ゴミ集めのコードを書くこと自体はそれほどたいへんではないといいました.80 行程度ですから.でもデバッグがたいへんではないとはいってません ( ̄ー ̄)

プログラム

  • Pure Lisp
  • 仮想マシン
  • コンパイラ
  • 仮想マシンの実装
  • 再帰関数を書く
  • ゴミ集めのアルゴリズム:(1) マークスイープ GC, (2) コピー GC
  • クイズ

時間は2時間とってありますが,解説が終わった時点で終了します.

配布物

スライド資料(PDF)と”あとはゴミ集めだけ” Lisp キットを CONNPASS のメッセージにて配布します。

Zoom Meeting link

CONNPASS のメッセージにてお知らせします。

注意事項

  • 配布スライド資料の公開は禁止です。

Media View all Media

If you add event media, up to 3 items will be shown here.

Ended

2020/06/28(Sun)

21:00
23:00

Registration Period
2020/06/27(Sat) 00:00 〜
2020/06/28(Sun) 20:30

Location

Zoom

オンライン

Zoom

Organizer

Attendees(5)

tukejonny

tukejonny

“あとはゴミ集めだけ” Lisp キット に参加を申し込みました!

TakeshiHori

TakeshiHori

“あとはゴミ集めだけ” Lisp キット に参加を申し込みました!

IKEBE Ryohji

IKEBE Ryohji

“あとはゴミ集めだけ” Lisp キット に参加を申し込みました!

hiroyukim

hiroyukim

“あとはゴミ集めだけ” Lisp キット に参加を申し込みました!

kikuyuta

kikuyuta

“あとはゴミ集めだけ” Lisp キット に参加を申し込みました!

Attendees (5)