プログラミング言語概論

プログラミング言語概論
特徴と言語
プログラミング言語
機械に命令を行うためのもの
機械語を人間が読める形に直したもの
言語毎に得手不得手がある
オブジェクト指向プログラミングがブーム
大雑把な分類
低水準言語(機械語,アセンブラ言語等)
•
機械が読みやすい(ハードウェア寄りな)言語
高水準言語(C言語やJava)
•
人間が読みやすい(開発に向いた)言語
スクリプト言語(シェルスクリプト,PHP)
•
動作を記述するだけの簡易的な言語 ※定義が曖昧
低水準言語
コンピュータを直接操作出来るのが特徴
ハードウェアを性能を100%使うことが出来る
汎用性(互換性)は低い
開発にも向いていない
高水準言語に劣っているわけではない
高水準言語
一般的に使われてる言語
色んな種類がある
開発がしやすい
コードが読みやすい
裏で勝手に動くブラックボックス的な奴
高水準言語の色々
コンパイラ言語とスクリプト言語がある
宣言型と命令型がある
構造化やオブジェクト指向もある
抽象化とか具体化とかも出来る
選ぶのが大変
コンパイラとスクリプト
コンパイラ言語
いわゆる「プログラム言語」と呼ばれているも
の.翻訳してから実行する感じ.
スクリプト言語
定義が曖昧.コンパイル無しのものを指すこと
が多い?翻訳しながら実行するらしい.
宣言型と命令型
記述の発想や目的が異なる.別物.
ざっくり言えば
•
宣言型:数学的
•
命令型:国語的
普段使ってるのは命令型言語
宣言型
関数,論理,制約やら色んな種類がある
問題の解法に焦点を置いている
必要なものは「問題の性質」と「問題の制約」
「流れ」より「データの処理」を意識する
フローチャートが必要ない
代表的な宣言型言語
Prolog(論理プログラミングの基板)
Haskell(便利そうなもん全部突っ込んだ)
Lisp(2番めに古い高級言語)
Scala(Java仮想マシン上で動作)
宣言型まとめ
「データ処理」に重点を置いている
今までのプログラミングとは別の体系
数学や人工知能をメインに使うならオススメ
データベース操作も似た書式で記述される
やるなら頑張れ
命令型
いわゆる「プログラミング」言語
ノイマン型コンピュータが基本
「流れ」を中心にプログラムを組む
人に指示するようにコーディングが可能
ソースが長くなる傾向
命令型言語の発展
構造化プログラミング
「流れ」をより強く意識
オブジェクト指向プログラミング
「抽象化」による記述の高級化
影響範囲の限定
色々な命令型言語
FORTRAN
Cω
IronRuby
NetLogo
BASIC
D言語
Noop
Lua
TestNG
GLSL
Occam
Groovy
Object REXX
Parrot
Mops
Piet
MUMPS
RPG
COBO
ALGOL
C言語
R言語
OoK!
Oz
C++
Go
C#
Swift
MUSIC-N
S言語
Objective-C
Max
Etoy
SQL
Python
LOGO
Eiffel
DRLKON
Ruby
Cg
Erlanf
Lazy K
Perl
JMax
Ficl
CLU
代表的な命令型言語
FORTRAN
BASIC
COBO
ALGOL
C言語
C++
C#
Objective-C
Python
Ruby
Perl
代表的な命令型言語
FORTRAN
BASIC
COBO
ALGOL
C言語
C++
C#
Objective-C
Python
Ruby
Perl
新しく言語を勉強したい人へ
作りたいものを探そう
C言語を復習しよう
迷ったらJava or C系列(C++,C#,Objective-C)
「人に読んでもらう」のを意識
とりあえず書け