差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

計算機言語:lecture1 2009/01/23 22:38 — 現在
ライン 1: ライン 1:
-====== プログラミング言語概論 ====== 
-===== プログラム言語の分類 ===== 
- 
-  * 汎用プログラム言語 
-  * 第四世代言語 
-  * スクリプト言語 
-  * 特殊問題向き言語 
- 
-コンピュータ上で動作するプログラムは、 
-プログラム言語で書かれており、処理する 
-内容に依って使い分けられる。 
- 
-===== 汎用プログラム言語 ===== 
- 
-  * 低水準言語 
-    * 機械語 
-    * アセンブリ言語(アセンブラ) 
-  * 高水準言語 
-    * 手続き型言語 
-    * 非手続き型言語 
-    * 構造化言語 
-    * オブジェクト指向型言語 
-===== 第四世代言語 ===== 
-  ; 第四世代言語 
-  : 4th generation language(4GL) 
- 
-高水準言語(第3世代言語)よりさらに抽 
-象度の高い命令をもつプログラム言語 
- 
-  - 高生産性、習得が容易 
-  - データベース機能を標準的にサポート 
-  - 環境からの独立性 
-  - 非手続き型 
-4GLの指す内容は文脈によって異なるので 
-注意が必要 
-===== スクリプト言語 ===== 
-エンドユーザ向き言語 
-小規模で簡単な処理に向く 
-  * 表計算のマクロ言語 
-  * Webのサービスプログラム(cgi)に利用 
- 
-代表的なスクリプト言語 
-  * perl, ruby, python (独立汎用型) 
-  * awk, sed (目的別unix系プログラム) 
-  * sh, csh (バッチ処理型インタープリタ) 
- 
-===== 特殊問題向き言語 ===== 
- 
-  ; シミュレーション言語 
-  : GPSS, DYNAMO 
-  ; 数値制御用言語 
-  : APT 
-  ; 土木建築用言語 
-  : COGO, STRESS 
-  ; 統計処理用言語 
-  : SAS 
- 
-===== 言語処理プログラム ===== 
- 
-  ; 機械語 
-  : 通常唯一の命令列 
-  : 通常0/1の2進数で表現される 
-  : 人間に理解し易いように16進数が使われることもある 
- 
-プログラム言語->機械語 
- 
-言語処理プログラム 
-===== 機械語 ===== 
- 
-ON OFF ON OFF OFF OFF ON ON 
-SW 
-LED 
-実験用マイクロコンピュータボードで 
-入力SWに対応するLEDを点灯する 
-ただし、入力SWのポート番号は11111001(F9) 
-出力LEDのポート番号は11111000(F8)とする 
- 
-<code> 
-1101101111111001 
-1101001111111000 
-</code> 
-<code> 
-DB F9 
-D3 F8 
-</code> 
- 
-低水準言語 
-機械語 
-アセンブリ言語 
-人間に解りにくい 
-特定のハードウェアに依存する 
-プログラムを小さくすることができる 
-プログラムを高速に実行することができる 
- 
-アセンブリ言語 
- 
-ON OFF ON OFF OFF OFF ON ON 
-SW 
-LED 
- 
-機械語と一対一に対応 
-入力SWのポート番号は(F9)、出力LEDのポート番号は(F8)、 
-プロセッサはZ80 
- 
-<code asm> 
-IN A,(??) → DB ?? 
-OUT (??),A → D3 ?? 
-IN A,(F9) DB F9 
-OUT (F8),A D3 F8 
-</code> 
- 
-アセンブリ 
-言語 
-機械語 
-アセンブラ 
- 
-高水準言語 
- 
-人間の言語表現に近い構造をもつ 
-記述に、汎用性・可搬性がある 
-特定のハードウェアに依存しない 
-現在の主流 
-COBOL, Fortran, c, pascal, c++, java 
-lisp, prolog, SQL 
- 
-高水準言語 
-ON OFF ON OFF OFF OFF ON ON 
-SW 
-LED 
-c言語 
-<code c> 
-unsigned int a; 
-a = get_SW_status(); 
-set_LED_on(a); 
-</code> 
-入出力関数は専用ライブラリで 
-用意されなければならない 
- 
- 
-Fortran 
-<code fortran> 
-      INTEGER A 
-      READ (9, *) A 
-      WRITE (8, *) A 
-</code> 
-入出力装置番号8/9はシステム 
-により定義されていなければな 
-らない 
-===== コンパイラとインタープリタ ===== 
-コンパイラ(翻訳型) 
-高水準言語で書かれたプログラムを機械語 
-に一括翻訳した後、実行する 
-高速、エラーを取り除くのが難しい 
-インタープリタ(解釈型) 
-高水準言語で書かれたプログラムを一行づ 
-つ機械語に解釈し逐次実行する 
-低速、扱い易い 
- 
-プログラムの作成から実行まで 
-<code c> 
-#include <stdio.h> 
-int main(void) { 
-printf("Hello\n"); } 
-</code> 
-原始プログラム 
-(Source program) 
-testc.c 
-<code> 
-00101Hello11000 
-101_main0011001 
-10101_printf0001 
-</code> 
-目的プログラム 
-(Object module) 
-testc.o 
-<code> 
-001010101110001 
-010011001100110 
-101010111100001 
-</code> 
-実行可能プログラム 
-(Executable module) 
-a.out 
-<code> 
-0011_printf00010 
-1101_getc000111 
-1011_scanf11100 
-<code> 
-ライブラリ 
-(Library) 
-libc.a 
-  * コンパイラ 
-  *リンカ 
-  * コンパイル 
- 
-リンク(連係編集) 
- 
-===== プログラム作成手順 ===== 
- 
-  - 原始プログラム(Source program)の作成 
-  - 原始プログラムをコンパイルし、目的プログラム(Object module)に変換 
-  - 目的プログラムを連係編集(link)し、実行可能プログラム(Executable module/Load(able) moduleに変換 
-  - 実行可能プログラムをメモリ上にロードし実行する 
- 
-概要 
- 
-プログラムの作成から実行まで 
-hello.c 
-int main(){ 
-printf("Hello,world\n"); 
-} 
-hello.o 
-0110010100_main_000 
-110001100110_printf 
-_0 
-a.out 
-0110010100001110000 
-1100011001100101010 
-10 
-コンパイラ 
-リンカ 
-Source program 
-Object module 
-Loadable module 
-プログラム(モジュール)の保存 
-ファイル 
-T97E121 
-T97E121 
-T97E121 
-85 
-48 
-72 
-A 
-D 
-B 
-フィールド 
-レコード 
-011000 
-011110 
-110100 
-ビット列 
- 
-===== プログラム作成用語集 ===== 
- 
-  ; 原始プログラム 
-  : source program/source code/source file 
-  :プログラム言語によって記述されたもの 
-  ; 目的プログラム 
-  : object module/object code/object file 
-  : コンパイラによって変換されたものアドレスなどが未定義のため実行不可 
-  ; 実行可能プログラム 
-  : executable file/load module/command 
-  : プログラムの実行に必要なサブルーチンや関数などを含めた計算機で実行可能なもの 
-  ; リンク(連係編集) 
-  : 目的プログラムのサブルーチン、関数のアドレス定義を行いライブラリなどと結合させて実行可能プログラムを作成する。リンケージエディタ(リンカ)によって行う 
- 
-===== コンパイル ===== 
-  * 原始プログラムを機械語に翻訳する作業 
-処理過程 
-  - 字句解析 
-  - (2) 構文解析 
-  - 意味解析 
-  - 最適化 
-  - コード生成 
- 
-===== アプリケーションの種類 ===== 
-  ; GUI アプリケーション 
-  : (GUI: Graphical User Interface) 
-  : 高水準言語からOSの提供するAPIを呼び出すことにより作成する 
-  ; コンソールアプリケーション 
-  : OSの提供する標準入出力を使用して作成し、CUIから利用する (CUI: Character User Interface) 
- 
-===== 主なプログラミング言語 ===== 
-  ; Fortran 
-  : 最初の高水準言語、科学技術計算に向く 
-  ; COBOL 
-  : 主に事務処理用に用いられる 
-  ; c言語 
-  : unixの標準開発環境、汎用性が高い 
-  ; Pascal 
-  : プログラミング教育用 
-  ; c++ 
-  : c言語にオブジェクト指向の機能を付加 
-  ; LISP 
-  : 関数型言語、人工知能やリスト処理用 
-  ; Smalltalk 
-  : 最初のオブジェクト指向言語 
-  ; Java 
-  : 高可搬性オブジェクト指向インタープリタ 
計算機言語/lecture1.1232717931.txt.gz · 最終更新: 2009/01/23 22:38 by kimi
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0