1.Introduction

プログラミング言語

 

コンピュータ上で動くプログラムには様々な目的のために,様々な動きをするものがあります.その動きによって,プログラムの書きやすい書き方が異なります.そのために,これまで様々なプログラム言語が考え出されてきました.

プログラム言語の分類

プログラム言語を書き方の種類で分類すると,手続き型言語,関数型言語,論理型言語, オブジェクト指向言語に分けられます.

手続き型言語は,命令文を実行する順に並べます.その順を変えるには繰り返し文や分岐文などの制御構造を利用します.手続き型言語には FORTRAN や COBOL,PASCAL,C などがあります.

関数型言語は,関数を定義することで動作を指示するもので,LISP や ML が代表的な例です.

論理型言語は,形式論理,数理論理に基づいたプログラム言語で,事実を定義することである問題を解決することができます.論理型言語には Prolog などがあります.

オブジェクト指向言語は,データとそのデータに対する操作をまとめたオブジェクトの性質を定義することで動作を指示します.オブジェクト指向言語には Smalltalk,C++, Objective-C,Java などがあります.

上記の高水準プログラム言語を実行するためには,アセンブリ言語で書かれたプログラムを実行するためにアセンブラで機械語に変換するように,機械語に変換しなければなりません.この変換作業を行うプログラムを言語処理系と呼びます.代表的な言語処理系にはコンパイラとインタプリタがあります.

コンパイラ

コンパイラは高水準言語を機械語に変換して出力する言語処理系です.実際にはコンパイラはアセンブラ言語までの変換を行います.その後アセンブラによって機械語への変換を行います.また,アセンブラが作成するのはオブジェクトプログラムと呼ぶもので,実際に実行するためには実行時ライブラリと結合する必要があります.この結合にはリンカを利用します.市販されているプログラム開発環境では,コンパイラ,アセンブラ,リンカを意識することなく利用できるようになっています.

インタプリタ

インタプリタは高水準プログラム言語で書かれたプログラムを順次解釈しながら実行していきます.コンパイラの場合,実行するときには機械語にすべて変換してから実行するため,実行速度が速くなるメリットがあります.一方,プログラムを作るたびにコンパイラを使って変換しなければならないという面倒もあります.

Javaとは

◆Sun が開発したプログラミング言語

Java は、1995年頃に Sun Microsystems 社によって発表されたプログラミング言語です。プログラミング言語には他に BASIC、COBOL、FORTLAN、LISP、C、C++、JavaScript、Perl、PHP、Ruby などがあります。

◆オブジェクト指向プログラミングが可能

Java は、オブジェクト指向 的なプログラミングが可能な言語です。オブジェクト指向とは継承機能を持つクラスに基づいてインスタンスを生成することで記述性を高める・・・と言っても 説明しきれないので、どこか別の場所で詳しく説明します。オブジェクト指向プログラミング言語には他に、Smalltalk、C++、C# などがあります。

◆ 中間コードへのコンパイル言語

プログラミング言語は、プログラムを逐次解析しながら実行する インタープリタ型言語 と、あらかじめマシン語コードに変換しておく コンパイル型言語 に大別されます。Java は基本的にはコンパイル型言語ですが、CPU に依存したマシンコードではなく、CPU に依存しない 中間コード にコンパイルするのが特徴です。

Processingとは

Processingは比較的新しいプログラミング言語だ。どのくらい新しいといって、正式版が公開されたのが2008年11月のこと。

◆Java を単純化したプログラミング環境

Processing は Java という言語をベースとしたオープンソースのプログラミング言語です.プログラムのソースコードを入力する,実行する,デバッグするというプログラミングの一連の作業を行うための一つのソフトウェアとして動くものですので,プログラミング環境といった方がよいかもしれません.公式サイトでも environment という語を使っています.

The syntax isn’t alien, actually, Processing code is Java code, just hiding some syntax points unnecessary to start a quick sketch (wrapping in a class, declaring a static main function to create the object from the class and call it, etc.).

Processing は Windows でも Mac でも Linux でも利用できること,作ったプログラムを,どのような OS でも動作する Java アプレットやプログラミング環境なしでも実行可能な形式に変換できることも大きな特徴です.

簡単に記述できるのですが、文法はJavaやC言語などと同じような形になっているので、プログラミング言語のアルゴリズムの学習に最適となっています。

◆視聴的な表現を得意

Processing は、 画像やアニメーションを用いた視聴的な表現を得意としています.そのため,対象者の中にアーティストやデザイナ,建築家が含まれています.また,Processing を対象とした書籍も,「ビジュアライジング・データ ―Processingによる情報視覚化手法」,「Built with Processing デザイン/アートのためのプログラミング入門」,「Processing: Creative Coding and Computational Art」など,視覚表現に関連したものが多くなっています.

ProcessingはJavaを単純化し、グラフィック機能に特化した言語といえる。

学習環境

参考サイト

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


Related Post

11.List11.List

List構造 コレクションクラス List構造は、要素を順番付けして管理するデータ構造です。 「ArrayList」「LinkedList」の2種類があります。 要素がインデックス(番号)順に並んでいるので、番号を指定して要素の取得、挿入、更新、削除ができます。また、Iteratorや拡張for構文を使って先頭から順番に要素を取得することも出来ます。 ArrayListは要素の取得が早いが挿入や削除が遅い、LinkedListは要素の挿入や削除は早いが取得が遅いという特徴があります。 List構造は、要素の重複は可能です。 リスト(ArrayList) ArrayList は配列を扱う一般的なクラスです。 下記などのメソッドが用意されています。 list.add(o) – オブジェクト o を配列の末尾に追加する list.add(n, o) – オブジェクトを […]

12.Map12.Map

Map構造 コレクションクラス Map構造は、キーと値をセットにしたものを1つの要素として管理するデータ構造です。 「HashMap」「TreeMap」の2種類があります。 要素がキーと値で管理されているので、キーを指定して値の取得や更新、削除を行います。 Map構造は、キーによって値を管理するためキーの重複は不可です。 (同じキーがセット(put)された場合は上書きされます。) マップ(HashMap) HashMap は、名前(キー)と値の組み合わせを要素として持つ配列です。 HashMapは格納順は管理されません。キーと値にnullを使用することが可能です。 HashMap hm = new HashMap(); hm.put("Brian Kernighan","A REGULAR EXPRESSION […]

Reference(jp)Reference(jp)

「明解 Javaによるアルゴリズムとデータ構造」  柴田 望洋 (著)ソフトバンククリエイティブ (2007/11/7) 「明解Java 入門編」  柴田 望洋 (著)ソフトバンククリエイティブ(2007/8/8) http://bohyoh.com/Java/ 「Javaによるはじめてのアルゴリズム入門」(河西朝雄著、技術評論社、2001年) 「標準Javaプログラミングブック」(河西朝雄著、技術評論社、2001年) とほほのJava入門 (http://www.tohoho-web.com/java/index.htm )