比較プログラム言語論 平成17年4月20日 森田 彦.

Slides:



Advertisements
Similar presentations
情報システムプロジェクト I 第2回 FileScanner.java ~ファイル入力、文字切り出し機能を持つ プログラムの作成~
Advertisements

オブジェクト指向 言語 論 知能情報学部 新田直也. 講義概要  私の研究室: 13 号館 2 階 (13-206)  講義資料について :  参考図書 : 河西朝雄 : 「原理がわかる プログラムの法則」,
比較プログラム言語論 平成16年4月28日 森田 彦.
情報処理3 アプリケーション プログラミング 今井孝明.
アルゴリズムとデータ構造 第2回 線形リスト(復習).
プログラミング言語論 プログラミング言語 発展の歴史 水野嘉明
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
C言語システムプログラミング クラス分け 1の人:紫合クラス(302教室) 学籍番号を3で割った余りが、 0の人:冬爪クラス(208教室)
比較プログラム言語論 平成17年5月18日 森田 彦.
Java I 第2回 (4/18)
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
FORTRAN 科学技術計算用 数値演算精度を重視したシステム K=0 DO 10 I=0,N,1 K=K+I 10 CONTINUE
プログラミングパラダイム さまざまな計算のモデルにもとづく、 プログラミングの方法論 手続き型 関数型 オブジェクト指向 代数 幾何.
比較プログラム言語論 平成16年4月21日 森田 彦.
オブジェクト指向言語論 知能情報学部 新田直也.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
情報科学1(G1) 2016年度.
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
心理学情報処理法Ⅰ コンピュータ言語の歴史.
プログラムはなぜ動くのか.
プログラミング言語論 プログラミング言語論 ガイダンス 水野 嘉明 ガイダンス 1 1.
C#とC++とオブジェクト指向 上甲 健史.
平成25年7月14日(月) 東京工科大学 コンピュータサイエンス学部 担当:亀田弘之
比較プログラム言語論 平成16年5月19日 森田 彦.
コンピュータ概論B ー ソフトウェアを中心に ー #10 プログラミング・言語
計算物理学基礎 第1回 UNIXの基礎 C言語の基本.
学籍番号順に着席のこと 001~056までは741教室へ 057~110までは743教室へ
プログラミング言語入門 手続き型言語としてのJava
言語プロセッサ2007 平成19年9月26日(水) (Ver.2 平成19年10月3日変更)
オブジェクト指向基礎学習Ⅰ ~オブジェクト指向へ至る背景~
情報リテラシー2014 part 5/5 (亀田担当分最終回)
ソフトウェア情報学総論 基盤ソフトウェア学講座
余談 ドラクエのパラメーターの上限、マリオの残機など、255が多く、 ドラクエの経験値の上限などに65535が出てくるワケ 1.コンピュータは2進数で動く。 例:2進数 = 10進数173 2.16進数1桁(0~9, A, B, ~F)が2進数4桁に対応する。 例.
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
プログラミング言語入門.
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
Ibaraki Univ. Dept of Electrical & Electronic Eng.
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
多種多様なプログラミング言語        チーム名  まほうびん 情報数学5 まほうびん 2019/04/08.
比較プログラム言語論 平成17年5月11日 森田 彦.
プログラム言語 プログラム言語の体系を学ぶ.
Fortranについて 高エネルギー加速器研究機構 平山 英夫.
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
情報処理Ⅱ 第2回:2003年10月14日(火).
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
情報とコンピュータ 静岡大学工学部 安藤和敏
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
コンパイラ 2012年10月1日
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
ガイダンス 電子計算機 電気工学科 山本昌志 1E
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 亀田弘之
第6回放送授業.
情報数学Ⅲ 5,6 (コンピュータおよび情報処理)
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
比較プログラム言語論 平成16年5月12日 森田 彦.
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
情報処理Ⅱ 2005年11月25日(金).
情報処理の概念 #0 概説 / 2002 (秋) 一般教育研究センター 安田豊.
C#プログラミング実習 第1回.
1.2 言語処理の諸観点 (1)言語処理の利用分野
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
Presentation transcript:

比較プログラム言語論 平成17年4月20日 森田 彦

レポート抜粋(4/13) Ⅰ <テーマ>  プログラミング言語について、どのような事に興味・関心がありますか?あるいはどのような疑問を持っていますか? 内容毎に分類して次ページ以下のように整理しました。 詳細は下の科目HPを参照 http://ext-web.edu.sgu.ac.jp/HIKO/HikakuProg

プログラミング言語の多様性 参考 - 社情の授業で扱った言語 レポート抜粋(4/13) Ⅱ プログラミング言語の多様性 C言語、PASCAL言語、JAVA言語などたくさんのプログラミング言語があるがなんでこんなにいろいろなプログラミング言語があるのか?それぞれどういった意味を持ってどのような違いがあるのか? 私がプログラミング言語に興味を持ったことは、いったい何種類くらいの言語があるのかということです。 参考 - 社情の授業で扱った言語 FORTRAN, COBOL, C, C++, Delphi, Java BASIC, LISP, R言語, S言語, アセンブリ言語

レポート抜粋(4/13) Ⅲ プログラミング言語の適性 コンピュータで使用されるプログラム言語にはどのようなタイプのプログラム言語にはどのような種類があり、どのようなところで使われ場合に効果をなすのかその言語の適材適所みたいなものを勉強したいです。 今までJava言語の長所はネットワーク上で使用する場合に使いやすいというような話は少し聞いたことがありますが、その他の言語、CやDelphi、VisualBasicなどはどのような特徴で、どのような場面で多く使われているかなどを学びたいです。

レポート抜粋(4/13) Ⅳ プログラミング言語の処理過程 私がプログラミング言語の中で興味を持っている分野は例えば、先生も先ほどおっしゃっていましたがJBuilderなどでいかに英語の命令が機械言語に変換されているかが気になります。やはりパソコンも機械なのですから2進数などに変換されているかと思いますが・・・。 どのようにして禁止の命令や言葉の表示などの言語を(コンピュータが)理解、実行しているのかということにとても興味があります。

言語発展の歴史 プログラミング言語どのように発展してきたのか?プログラミング言語の歴史を知りたい。 レポート抜粋(4/13) Ⅴ 言語発展の歴史 プログラミング言語どのように発展してきたのか?プログラミング言語の歴史を知りたい。 プログラミング言語は日々進化してると聞きますが、新しい言語は出始めてるのでしょうか。注目され始めた言語があるのなら、それも知りたいです。 プログラミング言語が作られた経緯や発展の具合、そして今後開発されるであろうプログラミング言語が知りたいです。

レポート抜粋(4/13) Ⅵ 特定用途の言語 プログラミングで興味・関心がある事は、LGPです。 最近気になってきました。 簡単にゲームを作ることが出来るようになるみたいで、私は作った事がないので、やってみたいです。 でも、どんなゲームを作れるのか知りたいです。 ゲームにも色んな種類があると思うが、どんな種類まで作れるのか。どこまでこったものを作れるのか。 Light Game Programming =BASIC + Direct X

レポート抜粋(4/13) Ⅶ プログラミング言語の習得 自分はこの講義でいろいろな種類の言語を学び、今まで習っていたJAVA言語とどのような違いがあるのか、どの言語が一番わかりやすいかを学んでみたいと思います。 何が簡単ですばやく出来る(習得できる)言語なのか学べたら良いなと思っています。 プログラミングについてあまり知らない人が学んでいくにはどのような努力をしたら分かりやすく頭に入るのか、興味と関心があります。

<本日のテーマ> プログラミング言語発展の歴史 <内容> 言語発展の歴史を概観する。 代表的な言語をその性質により分類してみる。

プログラミング言語発展の歴史 時間 低水準言語 オブジェクト指向言語 高水準言語 超高水準言語 言語以前 機械語 アセンブリ言語 Delphi 高水準言語 C++Builder FORTRAN JBuilder PL/1 COBOL ビジュアル開発環境 ALGOL ALGOL68 PASCAL Ada Object PASCAL BASIC C言語 C++ Lisp Java 超高水準言語 Prolog Smalltalk 参考:河村一樹、斐品正照

プログラミング言語以前 最初のコンピュータ(電子計算機)ENIAC 真空管で動作する電子計算機 1946年 ペンシルベニア大学のモークリーとエッカートが開発   米国陸軍の弾道計算に利用 巨大(18000本の真空管)で消費電力も膨大(175kW) 計算の手順(プログラム)   配線の組み替えとスイッチの組み替えで実施→プログラミング言語なし。

プログラミング言語の登場 ノイマン型コンピュータの登場 1949年英国のEDSAC完成 配線の組み替えとスイッチの切り替え→プログラムとして作成し、記憶装置に記憶させる      プログラム→機械語で記述 機械語  コンピュータが直接理解できる言語→2進数で表現

機械語 2進数を1バイトずつ2桁の16進数で表現 例:188+17の答を求める 9D BC 11 9D:加算命令 BC:188 11:17 プログラミングは大変

アセンブリ言語 変数名の発明 1950年代前半に登場 例:188+17の答を求める 初期のアセンブラ ADD BC 11   ADD→9Dに翻訳する必要がある→アセンブラというソフトが処理(現在のコンパイラと同じ) 初期のアセンブラ   メモリ内のアドレスの指定をプログラマが担当   MOVE A [+120]: Aレジスタの現在値を120バイト後方のアドレスへコピーする(代入する) 変数名の発明   MOVE A data1 → アドレス計算からプログラマを解放 →翻訳処理ソフトが担当

FORTRAN 1957年 IBM社の汎用大型コンピュータのプログラム処理言語として実装 FORmula TRANslation Systemの略 その後大いに発展  FORTRANⅡ(’58)副プログラム→FORTRANⅣ(’62)型宣言→FORTRAN66(’66)→FORTRAN77(’77)文字列→FORTRAN90(’91)組み込み関数追加 科学技術計算に適している

COBOL COmmon Business Oriented Language 1959年開発 事務処理に適している  データ処理(ファイルアクセス)に優れている英文を書くようにプログラミングできる。 最も広汎に使われたプログラミング言語 ’80年代までは→COBOLができなければSEになれない!

PL/1 Programming Language 1 プログラミング言語の用途が分化 科学技術計算 FORTRAN   事務処理計算 COBOL 両者を包含した言語は可能か?→IBMとSHARE(IBMのユーザ団体)が開発→1964年に開発 汎用的な利用が可能 言語処理系が巨大化 

ALGOL ALGOrithmic Language 1958年開発(ALGOL58) 科学技術計算向けの言語 厳密な構文規約を採用   プログラミング言語の構造として優れている 1960年 ALGOL60制定  他のプログラミング言語(CやPASCALなど)に大きな影響を与える。 1968年 ALGOL68発表→言語規模の巨大化

BASIC Beginner’s All-purpose Symbolic Instruction Code 1964年 米国ダートマス大学で開発 初心者のための教育用言語 言語仕様が簡単 コンパイラではなくインタプリタを使用 当初は汎用コンピュータ→パソコンに移植→大いに普及

PASCAL 1971年 Wirth(ヴィルト)により発表 ALGOL60の後継言語 特徴 構造化プログラミングの実現、適切なデータ構造   構造化プログラミングの実現、適切なデータ構造   系統的なプログラミング教育に最適   → 既存の言語とは異なる視点で開発 言語仕様の範囲を広げ過ぎない→言語処理系の効率化→ALGOL68の反省 C言語などに影響

C言語 1973年 米国AT&Tのベル研究所のRitchie(リッチー)がUNIX開発用に設計 1967年 Richards(リチャーズ)がBCPLを開発→Thompson(トンプソン)がUNIX記述用に更新・開発→B言語 その次の言語→C言語 特徴  システム記述言語でもある(それまではアセンブリ言語が主流)→システム記述から一般の処理まで広汎にカバー →自由度の高い汎用的な言語 90年代→Cが分からないシステムエンジニアはいらない。 

Ada 1980年米国の国防総省の軍規格となる 軍で使用している各種コンピュータシステムの管理が煩雑→言語仕様が数百種類にも及ぶ→統一的に管理できないか? 軍独自の仕様に基づいた新しいプログラミング言語を → 公募によりフランスのIchbiah(イシビア)らが開発した言語を採択

Lisp LISt Processor 1950年代末~’60年代 米国マサチューセッツ工科大学のMcCarthy(マッカーシー)がリスト処理用の言語として開発 関数型言語  関数の組み合わせによってプログラミングを行う   f(x)、g(x1,x2,・・・)

Prolog PRogramming in LOGic 1972年 フランス、マルセイユ大学のColmerauer(コルメラウァー)らによって開発 論理型言語  1階述語論理による論理記述とその推論機構が基本  例:「人間は死ぬ」、「ソクラテスは人間である」    → 「ソクラテスは死ぬ」

オブジェクト指向言語 1968年 米国のDahl(ダール)とNygaard(ニガード)によってSimula67開発→Algol60を拡張したシミュレーション言語 1972年 ゼロックス社のAlan Key(アラン・ケイ)らがSmalltalk-72を開発→次世代コンピュータDynabook用のプログラミング言語 1980年 Smalltalk-80を発表  クラス階層と継承を実装→最も純粋なオブジェクト指向言語

既存言語のオブジェクト指向化 C言語→C++言語  1980年からAT&T社のStroustrup(ストローストープ)が開発→1991年にはVersion3に PASCAL→Object PASCAL ビジュアル環境化  C++ → C++Builder、Viasual C++など  Object PASCAL → Delphi

Java言語 1995年 米国サンマイクロシステムズ社が発表 開発の考え C++のオブジェクト指向機能を純化 1995年 米国サンマイクロシステムズ社が発表 開発の考え   C++のオブジェクト指向機能を純化   C++の一部機能(難解な部分)を排除 特徴  Javaの実行環境があれば、どのOSや機種でも動作する。→携帯端末や家電製品も想定 →急速に注目・普及 2000年代→ Java言語の分かるシステムエンジニアが必要!

第2回目レポート あなたが最も興味・関心のあるプログラミング言語はどの言語ですか?どれか一つ挙げて、そう選んだ理由を述べて下さい。   < テーマ >  あなたが最も興味・関心のあるプログラミング言語はどの言語ですか?どれか一つ挙げて、そう選んだ理由を述べて下さい。 できる限り具体的に記述して下さい。200字~400字程度。なお、上の記述を行った上で,質問等を付加しても結構です。 提出先:hiko@edu.sgu.ac.jp 件名:「学籍番号(半角)+半角空白+氏名」を記入して下さい。    例) s03xxxx 学院太郎