←プログラム言語構造論 メニューへ 第2回へ →
←授業選択画面に戻る

プログラム言語構造論

第1回

「何でこの講義1年前期から受けさせるんかわからんなぁ」


【序論】

《プログラム言語とは》

C,C++,Basic,FORTRAN,COBOL, Lisp,Prolog,Java,Perl …etc

このように、数多く存在するプログラミング言語。しかし、ある見方をするといくつかの「仲間」にわけることができる。

・自然言語と人工言語

自然言語 … 日本語、英語など、私たちが普段使用している言語。
人工言語 … 人とコンピュータを結ぶ言語。いわゆるプログラム言語、プログラミング言語と呼ばれるもの。

・人間の「仕事」とコンピュータの「仕事」の違い

仕事 仕様
手順 アルゴリズム
言葉 プログラミング言語
書くこと コーディング
文書 プログラム


仕様を実現するアルゴリズムプログラミング言語によってコーディングしたものがプログラムと呼ばれる。

・コンパイラとインタプリタ

コンパイラ: 与えられたプログラムをコンピュータが実行可能な形式に一括して変換する。
インタプリタ: 与えられたプログラムをほかの形式に変換することなく、順番に実行する。


《プログラム言語の分類》

〔水準による分類〕

人にとって理解しやすい形式の言語ほど高水準言語と呼ばれ、逆にコンピュータが理解しやすい言語ほど低水準言語と呼ばれる。


Plolog など超高水準言語人間寄り








コンピュータ寄り
Scheme,Lisp など高水準言語
C,Java,Perl など中水準言語
機械語,アセンブラ など低水準言語

・文書清書言語: TeX,LaTeX
・ハイパーテキスト言語: HTML
・定義記述言語: Postscript

〔計算モデルによる分類〕

1.手続き型言語  処理の流れにそってアルゴリズムを表現する言語  Fortran,C,Pascalなど
2.関数型言語  ラムダ計算などの概念を基礎とし、関数を用いて記述する言語  Lisp,Schemeなど
3.論理型言語  アルゴリズムを、手順としてではなく論理式で宣言することで記述する言語  Prolog
4.オブジェクト指向型言語  オブジェクトを単位として記述する言語  Java,Smalltalkなど

《プログラム言語の記述と理解》

・構文、意味、語用論

構文論  言語で記号をどのように並べるかを示す。 ←いわゆる文法。
意味論  記号の並びの表す意味について論じる。 ←各記号がどのような計算をしているか。
語用論  記号をどのように使うかを論じる。 ←各要素がどのような計算にどう用いられるか。

・BNF記法

バッカスの考案した記法。

・○○は□□である。→ ○○::=□□
・数は整数である。→ <数>::=<整数>
・数は5以下の自然数である。→ <数>::=0|1|2|3|4|5
・英字はa〜zのいずれかである。→ <英字>::=a|b|c|d|e|…|z
・空白列(空白が存在する列)→ <空白列>::=凵|凵<空白列>
・ε(イプシロン)空列(何もない列)→ <△列>::=ε|<△>|<△△>|…
・名前の頭文字は英字でその後に英数字が続く。→ <名前>=::<英字>|<英数字>*

《プログラム言語の機構》

基本要素  あらかじめ用意された基本的な要素
結合化  いくつかの基本要素を合成して新しい要素を作ること
抽象化  合成された要素に名前をつけて1つの要素として利用できるようにすること

《Schemeとは》

Lispの方言として1975年にMITで開発。その後プログラミング教育用に作り直された言語である。
特徴として、構文論、意味論が単純なことがあげられる。

←授業選択画面に戻る
←鈴木研究室ホームへ

ご意見、ご感想などはこちらまで。
担当者:山崎 亮(g031b153@edu.iwate-pu.ac.jp)