プログラミング言語学をめざして
価格: ¥0
この本は 1981 年に東京大学大学院工学系研究科に修士論文として提出されたプログラミング言語の (人間の) 言語的研究に関する論文をほぼもとのままのかたちで (手書き文字で) 出版したものである.いまになってこの論文を出版しようとかんがえたのは Kindle による電子出版が可能になったためでもあるが,2007 年にフランスからといあわせがあったこと,田中 久美子 著「記号と再帰」に刺激をうけたことも理由である.
要旨
プログラミング言語を,機械のための言語というより,人間がかき,人間がよむための言語 [そして人間と人間とのコミュニケーションのための言語] と認識すれば,その研究はむしろ人文科学に属するものであることがわかる. そして,そこからプログラミング言語を言語学的に研究する可能性がひらけてくる. そして,おなじ認識からプログラミング言語と自然言語を比較研究することの意義がみいだされる.
これまでプログラミング言語の言語学的研究は,興味はもたれていても実際におこなわれたことはないようである. したがって,まずその研究の基礎をきずくことが必要だとおもわれた. そこで,プログラミング言語の言語学的な見方をしめし,プログラミング言語のどの部分にどのような研究方法が適用可能であるかをしらべ,そして研究を方向づけることをこころみた.
本論文でのべる 「言語学的な見方」 のなかでもとくに重要なのは,まずプログラミング言語を慣習 (= 「非成文化規則」) をもふくめた体系としてとらえること,つぎにプログラム単位名の意味をその 「抽象」 との関係としてみることである. またプログラミング言語に言語学的方法をあてはめるための検討のなかでは,自然言語との構造上の類似点などを指摘した. そして,「形態論」 から 「意味論」 におよぶ研究分野をいちおう方向づけした. そのなかで重要な (意味論の) 部門のひとつは,プログラミング言語に存在するあいまい性の研究である.
言語学的研究はおもにすでに存在するプログラムを対象とするが,本論文ではそのような系統的研究をおこなうところまでは達していない. しかし,ここから研究のてがかりをえることはできるのではないかとおもう.
目次
1. はじめに
1.1 プログラミング言語にかかわる研究の分野
1.2 プログラミング言語と自然言語の対照研究の意義
2. プログラミング言語とはどういうものか
2.1 プログラミング言語の 3 つの表現
2.2 プログラミング言語の規則
成文化規則と非成文化規則 / 「非成文化規則」 は存在するか / 成文化規則の細分 / 伝達機能による規則の分類 / プログラミング言語の規則と自然言語の規則 / 規則の柔軟性 / 規則の複雑さについて / 規則にかかわる言語学的研究の課題
2.3 プログラミング言語の自立性
自立性を検討する理由 / 非自立性を支持する根拠 / 自立性を支持する根拠 / 工学的検討
2.4 「意味」のとらえかた
基本的三角形 / 「意味」の定義
2.5 言語の特性
「自然言語の特性」 A. 伝達機能,B. 記号の恣意性,C. 体系性,D. 記号とメッセージの線条性 (linearity),E. 単位の離散性 (discreteness),F. 2 重分節 (double articulation) / プログラミング言語は言語の特性をそなえているか A. 伝達機能,B. 記号の恣意性,C. 体系性,D. 記号とメッセージの線条性,E. 単位の離散性,F. 2 重分節
2.6 プログラミング言語のほかの特徴
あいまい性について / 閉鎖性と進化性 / プログラミング言語ははなされない / 命名の頻度と語の有効範囲 (scope) / プログラムは「つかわれ」,かきかえられる
2.7 プログラミング言語の非言語的部分
式の性質 A. 非 2 重分節性,B. 非線条性 / 非言語的部分の存在意義
2.8 プログラミング言語の変化 (variety and change)
3. プログラミング言語学とその研究分野
3.1 個別的研究
個別的研究の分野 / 文法論 / 意味論
3.2 比較対照研究
4. 形態論ことはじめ
4.1 記号の分類とその構造
4.2 識別子の分節
4.3 変数名の構造
4.4 よびだしの構造
規定書上の構造 / 関数よびだしの構造 / 手続きよびだしの構造 / 手続きよびだしの構造に関する工学的考察
4.5 識別子の縮約
識別子のながさの制約と対策 / 縮約規則
5. あいまい性の研究
5.1 一般的意味,多義性,同音性
5.2 多義性,同形性の起因
5.3 あいまい性の解決の必要性
5.4 多義性,同形性の解決
5.5 あいまい性の存在意義
6. むすび
7. 文献目録
8. 謝辞
Kindle Fire HD (Android),Kindle Paperwhite,iPad,iPhone 4 でうまく見られることを確認ずみです.
Abstract
If we recognize that programming languages are not languages only for machines but are languages that human beings write and read, we can see that studies on them rather belong to humanities. This recognition enables possibility to study programming languages using methods of linguistics. This recognition also leads us to find significance of comparative studies on programming languages and natural languages.
Until now, some software scientists have had interests on linguistic research on programming languages, but they seems not to have performed it. So I believe that this paper should establish the basis of linguistic research. Therefore, in this paper, I show linguistic viewpoints on programming languages, show what types of analysis methods can and should be applied to which parts of programming languages, and try to show the direction of linguistic researches.
The most important linguistic viewpoints among the viewpoints shown in this paper are to regard programming languages as systems that include customs (i.e., rules that are not codified, or, not specified in language specifications), and to regard program unit names as relationships to the abstractions. In addition, in a study of applying linguistic methodology to programming languages, this paper lists and explains several structural similarities to natural languages. This paper also try to show the research direction of the fields of programming linguistics from morphology to semantics. Among them, one of the most important branch (of semantics) is research of ambiguity in programming languages.
Linguistic researches mainly target existing programs. Although this paper does not go deep into analysis of existing programs, I believe future research projects will find many clues from this paper.