第1章 プログラミング言語 1.1 1.2 1.3 1.4 プログラミング言語とは 言語処理の諸観点 処理プロセス コンパイラの移植 1.1 プログラミング言語 (1)プログラミング言語とは 人間の言葉や、特定分野で使われる表現 (数式を含む)に近い形で表現された記述を、 コンピュータで実行するために設定された 形式的な記述方法 (2)プログラミング言語が生まれた背景 ■当初 2進数や16進数などによるプログラム表現 ハンドアセンブルが面倒⇒ニーモニックコードによる表現 アセンブラの誕生 ハードウェア命令体系によりアセンブラが異なる 人間の言葉に近い表現 機械依存度を少なく FORTRAN Ⅱの誕生 (3)FORTRAN Ⅱ直後の言語発展 ■ニーズや対象分野による楽観的・経験的な機能拡充 機能拡充 FORTRAN Ⅳ TSSによる簡易な プログラミング BASIC 適用分野の拡大 事務処理:COBOL 記号処理:LISP パターン処理:SNOBOL OR:ADSL, Simula 67 各種問題向き:POL POL: Problem Oriented Language) (4)楽観的・経験的な機能拡充の反省 ■適用分野の統合、数学的に整理された言語設計 科学技術計算 事務処理 FORTRAN COBOL 数学的に整理 適用分野の統合 PL/I Algol データ抽象化 Algol 60 軍需/組込み 計算機 ADA システム記述 Small Talk ソフトウェア工学の進展 C データ抽象化の 考え方の充実 Pascal, Modula Ⅱ (5)さまざまな計算モデルの提案 ■機械語プログラムをそのまま実行する計算機がある。 ■高級言語プログラムには、そのまま実行する計算機はない。 (高級言語計算機のアプローチでの試作品はある) 仮想的に実行できる計算機の数学的モデル 計算モデル(computation model) さまざまな計算モデルの事例 ■Pascalにおけるデータ抽象化の概念→C# ■Smalltalkにおけるオブジェクト指向→VB, C++, Java ■Prologにおける論理型(書換え規則がプログラムとなる) ■Lispにおける記号処理と評価機構 ■APLにおける関数型→C その他の関数型言語 ■SNOBOLによるパターンマッチング ■データフローマシンにおける計算機構(ハード) 計算モデルによる言語の分類 ■手続き型言語(データ抽象化を含む) FORTRAN, COBOL, PL/1, ALGOL, Pascal, Modula, ADA, C ■関数型言語 Lisp,APL (Cをここに分類する人もいる) ■論理型言語 Prolog ■オブジェクト指向型言語 Smalltalk, C++, Java, C#, VB ■パターンマッチング指向型言語 SNOBOL (6)昨今の傾向 新しい計算モデルや新しい言語概念の提案は少ない。 過去に提案された言語概念を旧来の言語に取込む傾向が 多い。 インターネット普及とともにWeb関連の言語が普及してきて いる(Java Script, VB Script, Pearl, …) 旧来言語による開発を容易にするための開発環境の整備と いう観点からの充実が多い(例:Visual Studioなど)。 概念の抽象化という観点よりもプログラミング環境や実行環 境がどうであるかの方に関心が高い。(言語概念への興味 が薄い)
© Copyright 2024 ExpyDoc