プログラミング言語に関する研究はありましたか?


18

プログラミング言語は形式言語ですが、多くの形式とは異なり、運用セマンティクス、またはマークアップ言語の場合はプレゼンテーションセマンティクスによって定義される特定の固有の意味もあります。プログラミング言語は、実際には形式的ではありますが、許可されるコミュニケーションの点では自然言語に非常に似ています。

プログラミング言語の開発は人工的ですが、自然言語の進化、借用、混合、および突然変異のプロセスにはすべて、かなり明確な人工的な対応があります。だから、私は疑問に思っている:言語学者の観点からプログラミング言語の進化と振る舞いに関する大規模で詳細な研究はこれまでにありました か?


6
Perlは言語学者によって作成されており、英語自体よりも厄介です。
ジョブ

1
@Job:そして、23年以上にわたって存在し、デフォルトで無数のUnixライクなプラットフォームにインストールされており、自動化(シェルスクリプトよりもずっときれいです)からWeb開発(そのための方法まで)のすべてに引き続き定期的に使用されています正規表現を使用したテキスト処理の本来の目的(事実上の業界標準を確立しているため)確かにそれは面倒ですが、人々にとってはうまく機能する方法であり、それがPerlの開発の中でラリーの言語学の背景が恩恵を受けた場所です。
ジョンパーディ

@Jobの効果は "Worse is Better" en.wikipedia.org/wiki/Worse_is_betterと呼ばれ ます。
アパララ

@Aplala:それは無関係です。どちらかと言えば、Perlは機能が豊富複雑人気があるため反例です。
ジョンパーディ

回答:


6

正式な文法は、それなしでは現代のプログラミングでは不可能であったことを、言語学者Noam Chomskyの研究の産物であることに注意してください。

自動車事故により、私があなたが尋ねる主題についての卒業論文を仕上げることができなかったので、意見を述べることしかできません。

音声言語は、コンテキストに応じて任意の速度で進化し、予測不可能な人間のコンテキストとして予測不可能な方法で進化します。WW2の結果は、日本語に大きな影響を及ぼしました。イギリス人、オーストラリア人、南アフリカ人、北米人は同じ言語をまったく話せません。かつてスペインの植民地だったものの中で動詞の偏角を使用することは、200年の独立の後、まったく異なってきました(元植民地はスペインのスペイン語は古風だと考えています)。

音声学に対する効率の力だけで、異なる地域で異なる頻度で使用される異なる単語が異なる発音になります。非常に一般的な単語はスキミングまたはスペルミスがあり、あまり一般的でない単語は可能な限り正確に述べられます。

バリエーション、ニュアンス、進化を備えた自然言語は、コンピューターに求められる決定論には適していません。(うーん!誤解と2番目の解釈の共通性を考えると、それらは人間間の最も単純な相互作用に対してさえ適切ではないようです(女の子/ボーイフレンドの言うこととそれが本当に意味することについてのジョークを引用することを控える)


私たちの研究(私は家庭教師をしていました)では、ギリシャ語とラテン語を調べました。それらは、赤緯によって文が持つ可能性のあるあらゆる役割を十分にカバーする明確な文法を持っているからです。それは十分ではありませんでしたし、人々が実際にそれらの言語を話した方法の記録は、現代の言語で起こるように、それが彼らの文法が示したものとは非常に異なっていたと言います。
アパラーラ

4
古代ギリシャ語とラテン語について-ここでの問題の一部は、生き残ったテキストが本質的に形式的である傾向があることです-エッセイ、契約、法的裁定など。 「帰宅途中の牛乳」と「ジム-9時のケーシーレポートを覚えておいてください」-古代ローマのこれらの一時的なメッセージのほとんどは、時間とともに永遠に失われてしまいます。
ホルスコル

2
それは完全に真実ではありません。私の母は時折彼女の高校のラテン語のクラスについて話し、彼らが翻訳した一つの作品、ローマの貴族から彼の戦車の運転手へのメモに言及しました。要点は、「ラッシュアワーの間に、馬車の後ろにつかまってはいけない。彼が何を馬に食べさせているのかわからないが、悪臭はひどい」と言った。
ジョンR.ストローム

4

質問を読み直しましたが、元の回答では解決できなかったと思います。別の試みがあります。

いいえ、私が知っているプログラミング言語の言語に関する真剣な研究はありません。2つの主要なブランチと1つのサブブランチについてトレースされた言語系統があります。

フィールド内の数十年でこれらの私たちのために、プログラミング言語が交配していることは明らかであり、そのため、1見つかったのほとんどの側面純粋最も近代的なプログラミング言語のパラダイム、今と呼ばれるマルチパラダイムプログラミング言語:C#、PythonやJavaの.. .. OCamlやHaskellのような以前は純粋な関数型言語でさえ、何でもできるようにするための十分な手続き(モナドを介した)およびOO機能が含まれています。

起こったことは、適切なパラダイムを特定のサブ問題に適用できるようにするためだけにプログラミング言語を切り替える必要があることは(愚かではないにしても)コストがかかることが明らかになったことです。

高度に並列化された非同期システムの分野の傾向には例外が残っています。そこでは、おそらくこのような複雑なシステムを機能的に考える方が簡単だから、優先言語はErlangのように厳密に機能的です。

進化の非パラダイム的部分は構文にあります。不可解なプログラムを奨励したり許可したりする言語は、ますます使用されなくなりました(APLAWK、さらにはPerlやLISPさえ)。現在の支配的な構文は、C(C ++、C#、Java、Objective-C、Scala、Go、IML、CSS、JavaScript、Python)、Pascal(Fortran 90+ x)、Smalltalk(Ruby)、ML / Miranda(OCaml、Haskell、Erlang)、およびSGML(HTML、XML)。

この図は完全に正確ではなく、最新のものではありませんが、1970年代のサイトごとの言語時代からプログラミング言語がどれだけ収束したかを知るのに役立ちます。

プログラミング言語の進化


1
これは私が探していたものに似ています。私はまた、形式文法との作業から生じる構文との明らかな関連に加えて、形態学と音韻との直接的な相関関係も探していると思います。
ジョンパーディ

@Jonさて、他の明らかな傾向は、英語が構文的および文法的にすべてのプログラミング言語の基礎となる自然言語であったことです。プログラミング言語は左から右、動詞が最初です。たとえば、日本語は非常に異なっていますが、私は日本語スタイルのプログラミング言語を開発する努力をしていません。en.wikipedia.org/wiki/Japanese_language#Sentence_structure
アパララ

@Aplala:SOVの順序はスタック指向言語では一般的であり、中置演算子はSVOとしてカウントされ、関数(Lispは病理学的例です)はVSOです。英語は確かに強い影響力を持っていますが、仕事には他の要因があると思います...私はこの研究を自分でしなければならないかもしれません。:P
ジョンパーディ

@Jonはい、ForthとPostcriptを忘れていました。これらはスタックベースであり、SOVです。調査を開始する場合はお知らせください。私は大学で言語理論を専門としており、プログラミング言語は今でも私の趣味です。私はそれらの多く(Simula、Prolog、LISP)を直接思い出します。
アパララ

@Jonスペイン語を話す多くのプログラマーは、使用するプログラミング言語、ライブラリ、フレームワーク、標準、およびツールと一致しない場合でも、スペイン語で識別子を使用することを好むことがあります。彼らのプログラムは「スペイン語」になります。私は、東ヨーロッパ人のようなローマ/ラテン語の遺産を持つ他の言語の母国語を持つプログラマーと同じようなものを見てきました。極東(中国語、日本語、韓国語)、ロシア語、またはアラブのプログラマーが何をしたいのか、私にはわかりません。
アパララ

1

@Apalalaの回答が気に入っています。これは、いくつかの主要な汎用言語への収束を示しているようです。それは理にかなっているだけです。なぜなら、ある人の良いアイデアが遅かれ早かれ他の人によって取り上げられるからです。

私が追加するのは、言語を使用するときはいつでも、用語を追加し、それを手近なドメインに適した言語に変換することによって、必ず言語を拡張することです。これはかなり簡単な場合もあればそうでない場合もあります。 これはそれほど単純ではない例です。

汎用言語で私が感謝する特性は、新しいドメイン固有言語の定義を支援する程度です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.