• 検索結果がありません。

はじめに(pdf)

N/A
N/A
Protected

Academic year: 2021

シェア "はじめに(pdf)"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

pLATEX 2ε: mlPracticeFirstEdition : 2021/3/12(7:57)

はじめに

本書は、実践的なMLプログラミング技法を習得するためのテキストです。 MLは、高水準な記述能力と強力で柔軟な型システムを備えた関数型言語です。 この性質を活かし定理証明システムなどに使われていますが、MLのこれらの利 点は、一般のシステム開発にも威力を発揮するはずです。MLに対して、分割コン パイルやシステムライブラリとの連携、コマンドの作成などのシステム開発環境 が整っていれば、MLを用いて小規模から大規模な幅広い実用的なシステム開発 を行うことができます。さらに、データサイエンスなどに欠かせないデータベー スとの連携や、近年普及しているマルチコアCPUを駆使した並列・並行プログラ ミング機能などのサポートがあれば、MLは、高水準かつ型安全な記述を通じて 最先端の実用システム開発の生産性向上に貢献すると期待されます。そこで本書 では、これらの実用的なシステム開発のための機能が充実した最新鋭のStandard ML系言語「SML#」を用いて、実践的なMLプログラミング手法を解説します。 MLでのシステム開発の基本は、プログラムやシステムの構造をまず型の構造 として考え、それらの型が示唆するヒントに従い、プログラムをMLの式として 書き下していくことです。型は、MLを定義する中心的な機構であると同時に、プ ログラマが問題を考える道具でもあります。この型による問題の分析と型の構造 に従い解をコードしていく考え方をマスターすれば、系統的で見通しのよい設計 技術と開発パターンを身に付けることができます。C言語などが基本とするメモ リ構造と異なり、型は、必要に応じて実装の詳細を抽象し全体の構造を表現する 能力が高く、かつ、個々の関数の厳密な仕様としての役割も果たします。この性 質により、型を念頭に置いた設計と開発手法は、個々の関数からモジュール構造、 システム全体にいたるまで幅広く適用できる道具といえます。 本書のねらいは、読者に以上のようなMLプログラミングの考え方、さらに種々 SML#で始める実践MLプログラミング 大堀 淳・上野 雄大著 https://www.kyoritsu-pub.co.jp/bookdetail/9784320124714

(2)

pLATEX 2ε: mlPracticeFirstEdition : 2021/3/12(7:57) iv はじめに の典型的なプログラミング技法を身に付けていただくことです。MLの構文や型規 則の理解は、本書を用いたMLプログラミングの実践を通じて自然に習得するこ とができます。MLの詳細を記述した教科書「プログラミング言語Standard ML 入門」(大堀 淳、共立出版、2001年)は、プログラミング実践の参考書としてそ の真価を発揮するはずです(以下「Standard MLの教科書」とよびます)。 本書の内容は以下の通りです。まず第1章で、SML#でのプログラム開発環境 構築の手順を説明します。広く普及していて入手が容易である点を考え、Linux系 OSであるUbuntuとそこで提供される種々のツールを使って実践的なMLプロ グラミング環境の構築を行います。この準備の後、第2章でMLプログラミング の基本を学びます。型の考え方や、データを再帰的に処理する関数を書いていく 手法を、種々のプログラム例を通じて習得します。第3章では、リストを通じて 関数型プログラミングをマスターします。第4章では、データ型の定義と利用方 法を学びます。MLの型の世界は、プログラマが自由に拡張することが可能です。 種々の問題は、その構造を表現するデータ型を定義することによって具体化され、 これらの型を関数で処理するコードを書くことによって解決できます。この型を 中心としたプログラム設計と開発は、プログラム部品を組み合わせてシステムを 構成するモジュールシステムにも拡張されています。第5章では、大規模システ ムのモジュール化と分割コンパイルをマスターします。以上の第1章から第5章 までで、MLプログラミングの基本をマスターできるはずです。第6章では、こ れらの知識を使って、ML流システム設計・開発技法を、ゲームプログラムの設 計・開発の過程を通じて会得します。第7章から第10章では、実用システム開 発にとって重要なC言語との連携、外部データのアクセス、データベースとの連 携、並列プログラミングについて解説します。第11章では、それらの実用的な機 能を活用し、ML流のシステム開発技法を駆使したシステム開発方法を学びます。 本書を学習する上で参考になる情報やデータなどを掲載したサポートページを、 https://github.com/smlsharp/mlpractice-book に開設していますので、ご利用ください。 本書の第1章から第5章までおよび第7章から第9章までを大堀 淳が、第6 章、第10章および第11章を上野雄大が担当しました。種々の実践的な問題解決 法をMLで自然にコードする快適さを体験するきっかけとなることを願い、本書 を書き下ろしました。 2021年2月 大堀 淳・上野雄大 SML#で始める実践MLプログラミング 大堀 淳・上野 雄大著 https://www.kyoritsu-pub.co.jp/bookdetail/9784320124714

参照

関連したドキュメント

名称 International Support Vessel Owners' Association (ISOA) 国際サポート船オーナー協会. URL

& Shipyarrd PFIs.. &

パターン 1 は外航 LNG 受入基地から内航 LNG 船を用いて内航 LNG 受入基地に輸送、その 後ローリー輸送で

2)海を取り巻く国際社会の動向

Wärtsilä の合弁会社である韓国 Wärtsilä Hyundai Engine Company Ltd 及び中国 Wärtsilä Qiyao Diesel Company Ltd と CSSC Wärtsilä Engine Co...

ASHATAMA http://www.indomarine.org 672 (Indo Marine, Indo Aerospace, Indo

[r]

Strengthening of Operators in maritime business and Develop connectivity to facilitate Multimodal Transport To expand trading routes of national merchant fleet and to