Skip to content

Commit

Permalink
changed readme and move files
Browse files Browse the repository at this point in the history
  • Loading branch information
hsk committed Feb 14, 2015
1 parent 466442b commit 17b3ede
Show file tree
Hide file tree
Showing 10 changed files with 32 additions and 13 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,14 @@ $ make do_test

## TODO

- [ ] ファイルの整理


- ドキュメント
- 簡単な変換
- より高度な変換


- 仕様追加
- [x] begin end
- [ ] パターンマッチング構文
Expand Down
27 changes: 15 additions & 12 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# λ式からAltJSへの変換向けの正規形

いろいろとかきかけ

- [match.md](match.md) マッチング
- [record.md](record.md) レコード
- [ref.md](ref.md) リファレンス、参照
- [variant.md](variant.md) 代数データ型について
- [peg.md](peg.md) パーサコンビネータ
- [module.md](module.md) モジュール

## 1. アブストラクト

現在、AltJSと呼ばれる言語群が存在します。これはJavaScriptへのトランスレータであるプログラミング言語の総称です。
Expand All @@ -17,14 +26,6 @@ js\_of\_ocaml、Elm等、λ計算のAltJSも数多く存在しています。
なぜならば、λ計算の変換過程での正規形にはA正規形や、k正規形、β正規形等があります。
同じようにJavaScriptへの着実で奇麗な変換方法があれば良いでしょう。

## 2.1. 各正規形について

### 2.1.1. A正規形とA正規化

### 2.1.2. K正規形とK正規化

### 2.1.3. β正規形とβ正規化

3章ではJavaScriptへの単純な変換方法について述べます。
4章ではJavaScriptへの変換過程で重要となるであろう正規形のプロトタイプを作成し、形式化します。

Expand Down Expand Up @@ -211,6 +212,8 @@ let _ =
assert ((cnv src) == dst)
```

a.ml


## 4. より高度なλ式からJavaScriptへの変換

Expand Down Expand Up @@ -334,12 +337,12 @@ if式はif文への変換したいので

## 4.3 OCamlで実装

b.ml,c.mlで実装しました
[b.ml](b.ml)[c.ml](c.ml) で実装しました

b.mlではリストを@演算子を使って結合しています。これでは遅くなるので、
c.mlではSConsとSNilを作り@@関数を作ってリストの代わりに使うようにしました。
[b.ml](b.ml) ではリストを@演算子を使って結合しています。これでは遅くなるので、
[c.ml](c.ml) ではSConsとSNilを作り@@関数を作ってリストの代わりに使うようにしました。
SConsには、左側にも、右側にもsを取る事が出来る様に実装したので、高速に結合出来ます。
また、b.mlでの不具合もc.mlでは、対策してあります。
また、 [b.ml](b.ml) での不具合も [c.ml](c.ml) では、対策してあります。

## 5 フューチャーワーク

Expand Down
3 changes: 3 additions & 0 deletions docs/a.ml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
(*
mlからjavascriptへの変換のサンプル
*)
type e =
| EInt of int
| EVar of string
Expand Down
3 changes: 3 additions & 0 deletions docs/b.ml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
(*
mlからjavascriptへの変換のサンプルです。
*)
type e =
| EInt of int
| EVar of string
Expand Down
4 changes: 4 additions & 0 deletions docs/c.ml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
(*
todo: これは、たぶん、javascriptに変換する話のサンプルコードだけど関連が謎
*)
type e =
| EInt of int
| EVar of string
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 3 additions & 1 deletion docs/module.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# module

モジュールをJavaScriptで再現する事を考えます。
OCamlそのもののモジュールについては、 [module](module) 及び、[module2](module2) を参照してください。

ここでは、モジュールをJavaScriptで再現する事を考えます。

```ocaml
module A = struct
Expand Down

0 comments on commit 17b3ede

Please sign in to comment.