タグ

OCamlに関するyouzのブックマーク (11)

  • Standard ML in 2020 | notes.eatonphil.com

    Incredibly, Standard ML implementations are still actively developed. MLton, Poly/ML, MLKit, SML# and SML/NJ are the most prominent. Discussion on the future direction of Standard ML remains healthy as well. And somehow OCaml's lesser known cousin still beats out OCaml for multicore threading support (in Poly/ML). While MLton hasn't merged with MultiMLton or RTMLton to support multicore, a new for

    youz
    youz 2020/10/27
  • self-hosting可能なmincamlコンパイラという夢(とその進捗) - 忖度

    この記事は、 adventar.org の5日目の記事として書かれました。昨日はmoratorium08さんの moraprogramming.hateblo.jp でした。コンパイラの穴をついたexploit、今後こういうジャンルも増えるんでしょうか。期待ですね。 題 8月にセキュリティキャンプに参加しました。 そこで、C言語セルフホスティングトラックの人たちと話す機会があったのですが、 「大学の授業でmincamlのコンパイラを書いたんですよ」というと 「そのコンパイラはセルフホストできるんですか???」(この辺は実際の発言と差があるかもしれない) と言われたので、そんならいっちょやったるか、という気持ちで趣味の実装を進めているので、その紹介をします。 実装はここ github.com で現在進行形で進めています。 mincamlとは OCamlの教育的subsetみたいなものです。

    self-hosting可能なmincamlコンパイラという夢(とその進捗) - 忖度
  • v - Note

    インタプリタは楽勝で書けたんですけど(一応仕様以外見てないです)、肝心のgrassコードを書ける気が全くしません。 WWwwwでxが用意できて、そこから1インクリメントするのにWWWw,WWWWw,WWWWWw...しかないんじゃないでしょうか。 そもそもトップが56バイトってことは、ですね……3^56ぐらい、真面目に考えるより全探索したほうが早いんじゃないでしょうか。*1 *1:3^56 = 523347633027360537213511521多いなorz

    v - Note
  • OCaml プログラミング入門

    OCaml のすすめ OCaml とはフランスの 情報技術系の研究機関の INRIA で開発されている関数型言語 ML (の方言) です。ML には多相型、型推論、ガーベージコレクション (GC)、 データ構造のパターンマッチング等、プログラミング言語理論の研究の 成果 (すごく最新のものと言うわけでは無いそうですが) が詰め込まれ ています。これらの目的・効用は、 コードの再利用の範囲が大きい (多相型) コードの記述量が短かくなる (型推論・データ構造のパターンマッチング) バグの入り込む余地が少なくなる (GC、関数的(副作用の少ない)プログラミング) 等です。私は OCaml を研究でのデータ処理をはじめ、作成するプログラムほとんど 全てにおいて日常的に使っているのですが、 とにかく開発効率が良いです。 コンパイル時の型チェックの厳しさには慣れないとちょっと面倒に感じる かもしれま

  • 情報科学実験I ML演習

    担当 飯塚 大輔, 後藤 哲志, 前田 俊行 (講義は飯塚と後藤が担当) 講義資料 第 1 回 - スライド (2007年6月5日更新)(ODP) (PDF) | optional 課題 (PDF) 第 2 回 - スライド (2007年6月12日更新)(ODP) (PDF) 第 3 回 - スライド (2007年6月19日更新)(ODP) (PDF) | 課題 (PDF) 第 4 回 - スライド (2007年7月10日更新)(ODP) (PDF) | 授業で使用したソース(tar.gz) (解凍したもの) 第 5 回 - スライド (2007年7月10日更新)(ODP) (PDF) | MiniMLの式、環境、値、評価規則 (PDF) | 授業で使用したソース(tar.gz) (解凍したもの) 第 6 回 - スライド (2007年7月10日更新)(ODP) (PDF) | 授業で使用

  • The Caml language: Home

    Caml is a general-purpose programming language, designed with program safety and reliability in mind. It is very expressive, yet easy to learn and use. Caml supports functional, imperative, and object-oriented programming styles. It has been developed and distributed by INRIA, a French research institute in computer science and applied mathematics, since 1985. The OCaml system is the main implemen

  • 数理科学的バグ撲滅方法論のすすめ---目次 | 日経 xTECH(クロステック)

    筆者 住井 英二郎 「プログラミング言語理論」という研究分野がある。この分野の研究者たちは,「ML」「Haskell」「Scheme」あるいは「λ計算」「π計算」(円周率計算のことではない)など,多くのプログラマにとっては聞いたこともない言語やモデルについて,日夜研究している。ただ,そのような言語は「難しい」「役に立たない」などと思われがちだ。 この連載では,こうしたプログラミング言語やソフトウエア科学の様々な研究を,できるだけ普通のプログラマやエンジニアにもわかりやすく(どちらかといえば理論よりも実用に重点をおいて)紹介していく。 更新は毎月第2水曜日(1月のみ第3水曜日)

    数理科学的バグ撲滅方法論のすすめ---目次 | 日経 xTECH(クロステック)
  • OCamlチュートリアル

    このウェブサイトはOCamlを学ぼうとする人たちの為の実際的で詳細なチュートリアルを集めたものである。 よく知られている通り、OCamlはアプリケーション開発のための高速、簡潔かつ強力な言語である。ここでは読者がすでにOCamlの処理系をインストールしているものと仮定する。インストールの方法については英文であるがOCamlのメインページやOCaml Alianceによる解説に説明されている。またDebianその他のLinuxディストリビューション、FreeBSDパッケージにもなっている。 原文(英語) 邦訳版に関するツッコミなど

  • 一年生(一般教養)向けOCamlプログラミング入門 - sumiiのブログ

    大学で全学(一般教養)の一年生向け少人数授業(といっても20人でしたが)を一回(90分×3コマ)だけ担当したので、OCamlでプログラミング入門をやってみました。「1 + 2」の計算からはじめて、一日で2Dグラフィックス、ネットワークプログラミング(HTTPとSMTP)、3Dグラフィックス(OpenGL)までやりました。 …というと無茶に聞こえるかもしれませんが、CとかJavaとかでやるよりは、ずっと簡単だったと思います。提出されたレポート課題でも、多くの人が簡単なループや再帰ぐらいはできていました。ちょっと著作権上の問題があるキャラクター:-)のグラフィックスもあるので、一般公開できなくて残念ですが。 P.S. マニュアルを日語訳してくださったocaml.jpの皆様にこの場を借りて感謝します。 追記:類似教材として、東大教養「はいぱーワークブック(HWB)」の「17.4 プログラミング

    一年生(一般教養)向けOCamlプログラミング入門 - sumiiのブログ
  • monjudoh’s diary

    r.js RequireJS用のmoduleをビルドする際にはr.jsを使います。 build.js この時にビルド設定の記述に使用するのがbuild.jsでこんな感じで書きます。 簡単な例だとこんなの ({ baseUrl:'./src', dir : './build', paths:{ jquery:"../lib/jquery-1.8.2", text:'../lib/plugins/text', underscore:'../lib/underscore-1.3.3' } }) 動的なbuild.js build.jsはJSONではなくてJSです。 JSなので処理を書くことが出来ます。 例えば関数その場実行を含む下記のbuild.jsは、上記のものと同じ設定を表します。 ({ baseUrl:'./src', dir : './build', paths:(function ()

    monjudoh’s diary
  • Glid: Grass/Let interpreter and decompiler - λx. x K S K @はてな

    草言語Grassが流行っているようなので,Grassプログラミング支援ツールGlidを公開します. Objective Camlで実装されているという点ではYTさんに先を越されてしまいましたが, より多くの機能を提供しています. といっても,実装の効率はあまりよくないので,速いGrass処理系が欲しいだけの方にはあまり役に立ちません. Glidは,簡単にいうと言語Grassと言語Letの間の双方向の翻訳ツールです. 言語Letは,次の文法で与えられる単純な関数型言語でGrassよりは楽にプログラムが書けます. Prog := Def* Def := let Var Var* = Exp Exp := Var | Exp Exp | let Var = Exp in Exp | Exp;Exp Var := In | Out | Succ | W | [_a-zA-Z0-9]+ 主な使用目的

    Glid: Grass/Let interpreter and decompiler - λx. x K S K @はてな
  • 1