タグ

OCamlに関するTaKUMAのブックマーク (21)

  • F*: A Proof-Oriented Programming Language

    Introduction F* (pronounced F star) is a general-purpose proof-oriented programming language, supporting both purely functional and effectful programming. It combines the expressive power of dependent types with proof automation based on SMT solving and tactic-based interactive theorem proving. F* programs compile, by default, to OCaml. Various fragments of F* can also be extracted to F#, to C or

  • Haskell厨を6年やってる俺がOCamlを仕事で2ヶ月使ってみた - keigoiの日記

    Haskell Advent Calendar jp 2010のためのエントリです(17日目). 6日目の id:camlspotterさんの 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた に対するカウンター(になってるかどうか分からないですが)みたいな感じです. 近くて遠い隣人:HaskellとOCaml OCamlはHaskellと違って副作用があり,更にHM型推論をもつためプログラマは質的な部分の記述に注力しつつ,コードのチューニングもできる. つまり働くHaskellプログラマがシリアスなソフトウェアを書く時に使えるほとんど唯一の選択肢だ.しかし,同じ静的型付けの関数型言語でありながら,OCamlとHaskellの見た目はかなり異なる. この記事では, HaskellプログラマがOCamlを使い始めると,どういうトラップにハマるかを書く. なかでも,

    Haskell厨を6年やってる俺がOCamlを仕事で2ヶ月使ってみた - keigoiの日記
  • OCaml Programming: Correct + Efficient + Beautiful — OCaml Programming: Correct + Efficient + Beautiful

    Preface About This Book Installing OCaml Introduction 1. Better Programming Through OCaml 1.1. The Past of OCaml 1.2. The Present of OCaml 1.3. Look to Your Future 1.4. A Brief History of CS 3110 1.5. Summary 2. The Basics of OCaml 2.1. The OCaml Toplevel 2.2. Compiling OCaml Programs 2.3. Expressions 2.4. Functions 2.5. Documentation 2.6. Printing 2.7. Debugging 2.8. Summary 2.9. Exercises OCaml

    TaKUMA
    TaKUMA 2022/06/29
  • Real World OCaml

    Functional programming for the masses2nd Edition (Oct 2022) Yaron Minsky Yaron Minsky joined Jane Street in 2003, where he started out developing quantitative trading strategies, going on to found the firm's quantitative research group. He introduced OCaml to the company and managed the transition to using OCaml for all of its core infrastructure, turning Jane Street into the world's largest indus

    TaKUMA
    TaKUMA 2022/06/22
  • 2019年度「プログラミング言語」配布資料 (6)

    [ 前の資料 | 講義ホームページ・トップ | 次の資料 ] OCaml OCaml (旧名称: Objective Caml)は INRIA というフランスの国立の計算機科学の研究所でデザイン・開発された言語である.歴史的には,証明支援系と呼ばれる,計算機によって数学的証明を行うためのソフトウェアを操作するための言語の研究から発展してきたもので,当初は ML (Meta Language) と呼ばれていたが,研究が進展し,また方言が派生していく過程で OCaml ができあがった.Standard ML などの方言をまとめて ML と呼ぶことが多い.(興味があったら Caml の歴史, Standard MLの歴史 などを見よ.) ML は関数型プログラミング(functional programming)と呼ばれるプログラミングスタイルをサポートしている.MLは核となる部分が小さくシンプ

    TaKUMA
    TaKUMA 2021/04/29
  • Welcome to MirageOS

    A programming framework for building type-safe, modular systems MirageOS is a library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms. Code can be developed on a normal OS such as Linux or macOS, and then compiled into a fully-standalone, specialised unikernel that runs under a Xen or KVM hypervi

  • そろそろ Jane Street Core について語ろう、かな #0: Core とは - camlspotter’s blog

    Core とは Jane Street が開発、使用、オープンソースとして公開している OCaml 基ライブラリ。この Core についてちょっと書こうかな。 ちなみに、ここに書いてあるのは一ユーザとしての意見。間違っても会社の見解ではありません。念のため。 発端 まず、このエントリの発端は、Caml-list に出現した「Why don't you use batteries?」という長ーいスレッド(今長さ57)。Batteries included というのは、OCaml の「標準ライブラリ」が余りに貧弱なので、それを拡充しようというものです。古くは extlib という 3rd party ライブラリがあって、それを取り込んでさらに拡張しています。(Batteries included も 3rd party。念のため。) OCaml 貧弱標準ライブラリ まず、その、OCaml の

    そろそろ Jane Street Core について語ろう、かな #0: Core とは - camlspotter’s blog
    TaKUMA
    TaKUMA 2017/01/30
  • Which of Haskell and OCaml is more practical? For example, in which aspect will each play a key role?

    Answer (1 of 2): Haskell. This is a question I'm particularly well-placed to answer because I've spent quite a bit of time with both Haskell and OCaml, seeing both in the real world (including working at Jane Street for a bit). I've also seen the languages in academic settings and know many peop...

    Which of Haskell and OCaml is more practical? For example, in which aspect will each play a key role?
    TaKUMA
    TaKUMA 2016/01/04
    OCaml vs Haskell in practicality
  • なぜ次に学ぶ言語は関数型であるべきか - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。ちょっと前にOCaml系のエントリを色々と眺めていたらYaron Minsky氏のエントリを見つけたので翻訳してみました。 OCaml for the Masses - ACM Queue Yaron Minsky氏はJane Streetで第一線で活躍されるエンジニアで、Jane Streetの技術ページをはじめ多くの場所でOCamlに関しての知見を語ってくださっています。 Jane Street Tech Blogs エントリはJohn Hughesの名エントリ「なぜ関数プログラミングは重要か」を受けてACM Queueに寄稿されたものの日語訳です。 なぜ関数プログラミングは重要か Why the next language you learn should be functional YARON MINSKY, JANE STREE

    なぜ次に学ぶ言語は関数型であるべきか - YAMAGUCHI::weblog
  • 有限会社ITプランニング(IT Planning Inc.)

    Copyright (C) 2006-2007 IT Planning Inc. All Rights Reserved.

  • osiire’s blog

    唐突にlock-freeをAlloyで書いてみたくなったので書いた。 what is lock-free 冬のLock free祭り safe from Kumazaki Hiroki www.slideshare.net kumagiさんの資料によると、lock-free stackはリンクリストみたいなもので、先頭へのポインタをCAS(Compare and Swap)で切り替えるらしい。 素直にAlloy化するとこうなる。 sig Data {} // linked elements of stack. sig StackElem { data:Data , next:lone StackElem // edge dosen't have next element. } { no next & this // prevent self pointing. } sig HeadPoin

    osiire’s blog
  • 型推論はどのようにして実装されているか - ラムダプラス+の紹介 -

    この記事は Haskell Advent Calendar jp 2010 のために書かれた物です。(20日目) 型推論は簡単 ML や Haskell のような言語の型推論は、型推論を知らないみなさんが考えているよりは遥かに簡単な物です。大雑把に言ってしまえば、構文木全体を探索して、同一である事が明らかな型同士の単一化をしていけば型推論できてしまうのです。 型推論の難しい所その1 - 多相型 しかし、型推論にも難しい事が無いわけではありません。まず最初の難関としては多相型が挙げられます。 ML や Haskell では let などの変数束縛に対して多相型が導入されています。式の中でこれらの変数が出現すると、その型の型変数(確定していない部分)を全て付け替える操作が発生します。 しかし、確定していない部分を付け替えるという事は、最終的に元の型が確定した後にその操作をしなければ、型を正しく

  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

    今の会社に移って半年経ちました。めでたく試用期間終了です。といっても別に試用期間中に密かに首を切られるような事をしたとか、逆に試用期間が終わったからと言ってこれで定年までのうのうと働ける、という訳ではありません。未来は全く判りません。まあとにかく、一つ区切りがやってきました。 金融を知らないQuantsの仕事 私の職業の肩書きには Quantitatitatitatitative という単語がくっついて超カッコよさそう。普通は Quant というと、金融工学や統計数理に詳しい夜もブイブイいわしている超イケメン20代を想像しますが、私は金融とか全然知らないアラフォーお父さんです。それでも Quant です。お願いですから、私に何を買ったらいいかとか、聞かないでください。金融商品とか買った事ないし。というか、逆に教えて欲しいです。 私のチームは、当の Quant さん達が開発した、金融派生商

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • Objective Caml 入門

    Objective Caml 入門五十嵐 淳 京都大学 工学部情報学科計算機科学コース 大学院情報学研究科知能情報学専攻 e-mail: igarashi@kuis.kyoto-u.ac.jp September�24, 2007 Contents Chapter�1�� 1.1��関数型言語 ML と Objective Camlについて 1.1.1��ML・Objective Caml の特徴 1.2��参考書,資料,マニュアル 1.3��環境設定 Chapter�2�� 2.1��インタラクティブコンパイラを使う 2.1.1��簡単な使い方 2.1.2��その他: ファイルからのプログラムの読み込み・コメント 2.2��基データ型とその演算 2.2.1��unit型 2.2.2��int型 2.2.3��float型 2.2.4��char型 2.2.5��string型 2

  • OCaml.jp

    このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 OCaml(オキャムル/オーキャムル)は、INRIA(フランス国立情報学自動制御研究所)で開発されている関数型言語の一種で、最新の言語理論の成果が取り入れられたプログラミング言語です。 型安全な静的型システムを基盤に、バグの少ない高信頼なプログラムが開発できます。 オブジェクト、型推論、代数的データ型、モジュールシステム、多相バリアント、第一級モジュール、GADTといった様々な機能を利用して、より簡潔で整理されたコードが記述できます。 x86, x86-64, ARM, PowerPCなど多数のアーキテクチャのネイティブコードを出力できるコンパイラを持っています。Android や iOS 向けのクロスコンパイルも可能です(Linux 上でのクロスコンパイルは opam-cross-a

  • OCaml プログラミング入門

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

  • OCaml備忘録

    的にlinuxベース。バージョンは大体3.07とか3.08ぐらい。よく分からない部分もとりあえず書いているので、多分間違い多数。徐々に追加とか修正とかする予定。今のところオブジェクトとモジュールのところの内容は空。 ツールの使い方 起動と終了の仕方 OCamlのインタプリタを起動させるにはシェルから次のように入力する。 [radio@taka radio]$ ocaml Objective Caml version 3.08.0 # 終了は # #quit;; と打ち込む。バイトコンパイルはシェルから [radio@taka radio]$ ocamlc hoge.ml -o hoge ネイティブコンパイルは [radio@taka radio]$ ocamlopt hoge.ml -o hoge とする。 また次のようにすると起動時にファイルを読み込むことができる [radio@ta

  • OCamlチュートリアル

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

  • 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

  • OCaml - Wikipedia

    OCaml([oʊˈkæməl] oh-KAM-əl、オーキャムル、オーキャメル)は、フランスの INRIA が開発したプログラミング言語MLの方言とその実装である。MLの各要素に加え、オブジェクト指向的要素の追加が特長である。かつては Objective Caml という名前で、その略として OCaml と広く呼ばれていたが、正式に OCaml に改名された[2]。 概要[編集] もとはCamlという名前の、MLの方言の処理系実装、および言語であった。この名前はcategorical abstract machine languageの頭字語に由来する(en:Categorical abstract machineも参照)。やがて、categorical abstract machineよりも効率の良い抽象機械ベースに書き直され、クラスや継承などクラスベースオブジェクト指向の言語機能が追