Microsoft PowerPoint - ml1.ppt

Similar documents
Microsoft PowerPoint - ml1.ppt [互換モード]

プログラミング演習 B ML 編 第 1 回 2015/4/14( コミ ) 2015/4/8( 情報 知能 ) 松田 上野 菊池 ~katsu/proenb2015/ml1.pdf

プログラミングD - Java

プログラミングD - Java

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

ガイダンス

Microsoft PowerPoint - enshu4.ppt [äº™æ‘łã…¢ã…¼ã…›]

JavaプログラミングⅠ

JavaScriptで プログラミング

Section1_入力用テンプレートの作成

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

2008年度基礎ゼミ

PowerPoint Presentation

Microsoft PowerPoint - prog03.ppt

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

Microsoft Word - java a.doc

本チュートリアルについて 14 部構成 比較的簡単なトピックから 各回 プログラミング言語 任意 チュートリアルで 新しい内容 宿題 プログラミング演習 次の週 結果について発表 もしくは話し合いをする スライドは Python で Python, C++, Java, Perl についての質問い答

JavaプログラミングⅠ

Microsoft PowerPoint - ruby_instruction.ppt

プログラミング基礎

Microsoft PowerPoint - 07.ppt [互換モード]

計算機アーキテクチャ

System.out.println("char : " + (int)character.min_value + "~" + (int)character.max_value); System.out.println("float : " + Float.MIN_VALUE + "~" + Flo

フィルタとは

Microsoft PowerPoint - Prog05.ppt

デジタル表現論・第6回

Prog1_2nd

Microsoft Word - no103.docx

コンパイラ演習 第 7 回

Microsoft PowerPoint - kougi2.ppt

スライド 1

マークアップ言語

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

C言語入門

JavaプログラミングⅠ

Microsoft PowerPoint - bp02.ppt

ML 演習 第 4 回

Java講座

Microsoft Word - 商業-3

正誤表(FPT1004)

slide5.pptx

Prog1_3rd

PowerPoint プレゼンテーション

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

JavaScriptプログラミング入門 2.JavaScriptの概要

ML 演習 第 4 回

PowerPoint プレゼンテーション

第 1 回 C 言語講座 1. コンピュータって? だいたいは 演算装置 制御装置 記憶装置 入出力装置から構成されている 演算装置 CPU の一部で実際に計算を行う装置 制御装置 CPU の一部で演算装置や入出力装置 記憶装置の読み書きなどを制御する装置 記憶装置プログラムや情報 データを一時的

UNIX 初級講習会 (第一日目)

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

スライド 1

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

NetworkApplication-09

(Microsoft Word - 01PowerPoint\217\343\213\211C\203p\203^\201[\203\223\222m\216\257\225\\\216\206.doc)

講習No.1

スライド 1

プログラミング基礎

レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン < 追加機能一覧 > 管理番号 内容 説明書参照章 カナ文字拡張対応 < 改善一覧 > 管理番号 内容 対象バージョン 説明書参照章 文字列のコピー ペースト改善 ~ 子画面の表示方式 ~ 履歴の詳細情報 ~ タブの ボタン ~ 接続時の管

基礎プログラミング2015

無料で多機能な OSS の ETL ツール Kettle を使ってみよう! 情報政策課技術職員金森浩治 1. はじめにデータ処理を行うにあたって非常に便利なツール ETL 本稿では OSS の ETL Kettle の機能とその使用方法を紹介します 2. 用語説明 2.1 OSS とは? OSS と

Microsoft PowerPoint ppt

Microsoft Word - CygwinでPython.docx

PowerPoint プレゼンテーション

Microsoft PowerPoint - 5Chap15.ppt

プログラミングA

プログラミング実習I

JavaプログラミングⅠ

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

PowerPoint プレゼンテーション

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft Word - バーチャルクラス(Blackboard)ログイン方法ガイド.docx

講習No.9

プログラミング 1 プログラミング演習 I プログラミングの重要性 プログラミング言語をなぜ勉強するのか? 世界的に有名な日本のある IT 企業の社長が求める人材に 必要なスキル 1. プログラミング (C 言語 ) 2. 数学 3. 英語 #-1 #-2 プログラミングはどこで使えるのか? 1.

Microsoft PowerPoint - PLT3.ppt

スライド 1

<4D F736F F F696E74202D CB4967B2D8F6F93FC8AC48E8B8D9E F8E9E8C9F8DF5817A D C882F182C282A C520837D836A B2E707074>

受付代行 設定マニュアル このマニュアルでは 恵比寿ボイスプロダクションが Google アシスタントアプリで公開している 受付代行 ( ) を使って Google

Windows10 の設定

Eclipse マニュアル <作成目的> Eclipse のインストール方法などを紹介したページはいろいろありますが 専門用語がわからない初心者でもわか りやすく Eclipse のインストール方法 基本操作などをまとめたマニュアル作成を目的としています <目次> 1 Eclipse のインストール

PowerPoint プレゼンテーション

Microsoft PowerPoint L02-Introduction-students ( )

メソッドのまとめ

Javaプログラムの実行手順

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

ToDo: 今回のタイトル

プログラミングA

C C UNIX C ( ) 4 1 HTML 1

Microsoft PowerPoint - C1(演算と変数).ppt

RSS配信の設定方法 第2版(平成30年2月)

新版 明解C++入門編

PowerPoint プレゼンテーション

Microsoft Word - no02.doc

Microsoft Word - 3new.doc

Programming D 1/15

Microsoft PowerPoint - kougi4.ppt

プログラミング入門1

マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System 操作説明ビデオなどは 高校 情

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

Microsoft Word - no01.docx

Transcription:

プログラミング演習 B ML 編 第 1 回 2010/6/1( コミ ) 2010/6/2( 情報 知能 ) 住井 http://www.kb.ecei.tohoku.ac.jp/ ~sumii/class/proenb2010/ml1/

今日のポイント 1. ML って何? 2. 式を 評価 すると値になる 3. 式や値には 型 がある

レポートについて 電気 情報系内のマシンから http://130.34.188.208/ ( 情報 知能 ) http://130.34.188.209/ ( コミ ) にアクセスし 画面にしたがって提出せよ 締め切りは一週間後厳守 初回は画面にしたがい自分のアカウントを作成すること プログラム のテキストボックスがある課題では プログラムとして sml に入力した文字列のみを過不足なく正確にコピー & ペーストして提出せよ (sml の出力は プログラム ではなく考察に含めて書くこと ) プログラムの課題でも必ず考察を書くこと 提出したレポートやプログラムの実行結果は 提出状況 から確認できる 質問は ml-enshu@kb.ecei.tohoku.ac.jp にメールせよ レポートの不正は試験の不正と同様に処置する

ポイント 1 Q: ML って何? A: 簡単 安全 高速 なプログラミング言語の名前 ( 関数型言語 の一種) ここでは "Mailing List" や "Markup Language" ではない MatLab( 科学技術計算ソフトウェア ) のことでもありません

Scheme Pascal Common Lisp C C++ Fortran Standard ML (SML) 命令型 ( 手続き型 ) オブジェクト指向 関数型 Objective Caml (OCaml) Java Haskell Smalltalk 論理型 Prolog

課題 1. 1 Wikipedia (http://ja.wikipedia.org/) で プログラミング言語一覧 の項目を調べる等して 何か一つの言語 (C, Java, SML, OCaml 以外 ) について どのような言語か数行程度で述べよ ( 特に日本語の ) インターネット上の情報は不正確なことも多いので 一つの記述だけを鵜呑みにしたり 丸写ししたりしないこと ( 丸写しは検索すればすぐにバレる )

課題 1. 2 "The Computer Language Benchmarks Game" (http://shootout.alioth. debian.org/) は 様々なプログラミング言語において 比較的単純なプログラムの速度や行数を比較したサイトである C, Java, SML, OCaml などのスコアを調べ 数行程度で論じよ

課題 1. 3 電気系教育用計算機システムなどで次の操作をし 結果を述べよ 1. kterm などにおいてコマンド ocaml を起動 2. ocaml に #load "graphics.cma" ;; と入力して Enter キー (# も入力すること ) 3. さらに Graphics.open_graph "" ;; 4. Graphics.draw_circle 100 100 50 ;; 5. exit 0 ;; ( わからなくなったらControlキーを押しながら cやdを連打すれば終了するのでやりなおす )

課題 1. 4 (1/3) 近くの人とペアを組んで次の操作をし 結果を述べよ 1. 1 人目はifconfig -aを実行し マシンのIPアドレスを確認する (130.34.195.11~18のはず) 2. さらに 1 人目は10000 以上 30000 以下の適当な整数 ( ポート番号 ) を 他の人と重ならないように決める

課題 1. 4 (2/3) 3. 1 人目は ocaml を起動し 以下のプログラムを実行して待機する #load "unix.cma" ;; open Unix ;; establish_server (fun ic oc -> print_endline (input_line ic)) (ADDR_INET (inet_addr_any, ポート番号 )) ;;

課題 1. 4 (3/3) 4. 2 人目は ocaml を起動し 以下のプログラムを実行する #load "unix.cma" ;; open Unix ;; let (ic, oc) = open_connection (ADDR_INET (inet_addr_of_string "IPアドレス", ポート番号 )) ;; output_string oc "Hello, world! n" ;; close_out oc ;;

ポイント 1 おわり ここからは OCaml ではなく SML をやります (6 セメの授業 コンパイラ で SML を使用するので ) OCamlについて もっと知りたい人は プログラミング in OCaml (ISBN 978-4-7741-3264-8) プログラミングの基礎 (ISBN 978-4-7819-1160-1) 入門 OCaml (ISBN 978-4-8399-2311-2) http://www.google.co.jp/search?q=ocaml

参考書 プログラミング言語 Standard ML 入門 大堀淳共立出版 ISBN 978-4-320-12024-2 http://www.pllab.riec.tohoku.ac. jp/~ohori/texts/mltext.html

その他の本 プログラミング言語 ML (ISBN 978-4-7561-1641-3) "ML for the Working Programmer" (ISBN 978-0-5215-6543-1) "The Definition of Standard ML - Revised" (ISBN 978-0-262-63181-5)

SML の起動と終了 起動 : kterm などで sml コマンドを実行 または emacs で Esc x run-sml Enter Enter 終了 :C-d (Control キーを押しながら d) 入力や計算の中断 :C-c

ポイント 2 式を 評価 すると値になる 式の後に ; を入力して Enter を押すと式の値が計算される > sml Standard ML of New Jersey, Version 110.0.7, September 28, 2000 [CM; autoload enabled] - 1+2; val it = 3 : int - このように式の値を計算することを 評価 (evaluation) という

いろいろな式と値 (1/2) 整数 : 0, 123, ~456 など 浮動小数点数 : 0.0, 1.23, ~4.56 など 注 : SML では負の数は - ではなく ~ で書く 算術演算 : 式 1 + 式 2, 式 1 - 式 2, 式 1 * 式 2 商と余り : 式 1 div 式 2, 式 1 mod 式 2 浮動小数点数の割り算 : 式 1 / 式 2 切り下げ, 切り上げ, 切り捨て, 偶数丸め : floor 式, ceil 式, trunc 式, round 式 整数から浮動小数点数への変換 : real 式

いろいろな式と値 (2/2) 論理値 : true, false 論理演算 : not 式, 式 1 andalso 式 2, 式 1 orelse 式 2 比較 : 式 1 = 式 2, 式 1 <> 式 2, 式 1 >= 式 2 など 文字列 : "abcde", "Hello, world! n" など 文字列の連結 : 式 1 ^ 式 2 カッコつき式 : ( 式 ) スペースのところには 空白やタブや改行やコメントを好きなだけ入れてよい コメントは (* と *) で囲む

課題 1. 5 次の式を評価してみて 結果を考察せよ 1. 123 + 456 2. 1 + 2 * 3 3. (1 + 2) * 3 4. 7 - -8 5. 7 - ~8 6. 10 div 3 7. ~10 div 3 8. ~10 mod 3 9. 10.0 / 3.0

ポイント 3 式や値には 型 がある 型 = 式や値の種類 整数型 int, 浮動小数点数型 real, 論理値型 bool, 文字列型 string, etc.

静的型検査と型エラー ML は評価 ( 実行 ) の前に型をチェックする 型が合わなければ評価せずエラーとする - 1.2 / 3.0 ; val it = 0.4 : real - 1.2 / 3 ; stdin:18.1-18.8 Error: operator and operand don't agree [literal] operator domain: real * real operand: real * int in expression: 1.2 / 3-1.2 / real 3 ; val it = 0.4 : real

課題 1. 6 今までの例と課題以外の 様々な式の評価を試みよ ( エラーになる例も試せ ) できるだけ自明でない例を少なくとも3つ考察せよ