中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

プログラミング言語の3つの軸

私は別にプログラミング言語マニアではないのですが、最近なんだか言語系のことをネタにしていることが多いですね。

さて言語には3つの軸があると思います。

・静的であるか、動的であるか

静的はクラス、メソッド、プロパティがプログラミング時に自明であること、動的は自明でないこと

・フル言語かスクリプト言語か

コンパイラ系なのかインタプリタなのかと言われることもあるけど、これは間違い。

Silverlight1.1DLR上のJSなどはコンパイルされます。動的に
インタプリタも所詮動的にコンパイルしていると考えると事が出来ますし、CLRのアセンブリも通常実行時にILからマシン後にコンパイルされます。

・手続き型か関数型か

var c = a + bとすると手続き型

=a + bとすると関数型

乱暴な(w

今まで自分がやってきた言語をこの3軸に割り当ててみてください

そして今空白地帯に向かって既存言語環境が翼をのばそうとしている事が手に取るようにわかるかとお思います。

#そこを勉強すればいいわけだ。(w

投稿日時 : 2007年9月7日 11:19

コメントを追加

# re: プログラミング言語の3つの軸 2007/09/07 11:38 シャノン

フル言語とスクリプト言語の違いって何です?
関数型言語は副作用がないってことかな。

# re: プログラミング言語の3つの軸 2007/09/07 11:45 凪瀬

静的なスクリプト言語ってあるのかしらん?

# re: プログラミング言語の3つの軸 2007/09/07 12:18 シャノン

ついでに、「プログラミング言語」の定義とは何なのかしらん?

# re: プログラミング言語の3つの軸 2007/09/07 13:57 凪瀬

機械が実行可能なコードに変換できればプログラミング言語なんじゃ?
自然言語コンパイラとか作ったら自然言語もプログラミング言語?
実行可能じゃない部分が多量に含まれるからNG?
とすれば、実行可能な表現のみを抜き出した、言語のサブセットがプログラミング言語?

# re: プログラミング言語の3つの軸 2007/09/07 14:14 シャノン

以前に別の掲示板で似たような話が出たときは、「MS-DOSバッチファイル文法はプログラミング言語か否か」という話になりました。
原始的だけどシェルスクリプトの一種でプログラミング言語ということでOKですかね?

あと、Prologなんかは関数型でも手続き型でもない「論理型」だとか聞きますが。

# re: プログラミング言語の3つの軸 2007/09/07 14:16 シャノン

> 機械が実行可能なコードに変換できればプログラミング言語なんじゃ?

厳密に考えると「?」な部分が。
言語処理系が(まだ)存在しない言語はプログラミング言語ではない?
「機械に実行させることを目的として作られた言語」とかかな。

# re: プログラミング言語の3つの軸 2007/09/07 15:18 凪瀬

なるほど、未完成なものがプログラミング言語の定義にはまらなくなるか。

「機械が実行可能」の定義がまた掘り下げていくと深そうですね。
今のところはチューリングマシンでたかだか有限の手順で実行可能というところ?

タイトル
名前
URL
コメント