Loading article…
式指向プログラミング言語は、すべての(またはほぼすべての)構文が式であり、値を生成するプログラミング言語です。 [1] 典型的な例外は、マクロ定義、プリプロセッサコマンド、および宣言であり、式指向言語ではこれらを文として扱うことが多いです。
Lisp [2]とALGOL68は式指向言語である。Pascalは式指向言語ではない。
すべての関数型プログラミング言語は式指向です。[3]
批判と予防
言語設計者を含む批評家は、[4] [検証の失敗]式指向が、変数を式と等価かどうかをテストするのではなく、式に置き換える代入式をプログラマが誤ってコーディングする一連のプログラミングミスの原因であると主張しています。
AdaとJavaの設計者は、制御式を厳密にブールデータ型に評価されるものに制限することで、この種の間違いを防いでいます。[5] [6]
Pythonの設計者は代入を式ではなく文として実装したため、代入が他の文や式の中にネストされることは禁止されています。[7](バージョン3.8までは、異なる構文の「代入式」が追加されました。[8])
一部の式指向言語では、副作用のみを引き起こす式はvoid 型を返します。
例
参照
参考文献
- ^ 「用語集 - Rustプログラミング言語」。web.mit.edu 。2022年7月6日閲覧。
- ^ ab Syme, Don (2020-06-14). 「F# の初期の歴史」. ACM on Programming Languages の議事録. 4 (HOPL): 1–58. doi : 10.1145/3386325 . ISSN 2475-1421.
- ^ 「式指向プログラミング」。Knoldus - Technical Insights。2018年2月8日。 2023年8月7日閲覧。
- ^ Java コード規約「10.4 変数の割り当て」
- ^ Java 言語仕様、Java SE 8 エディション「14.9 if 文」
- ^ エイダの紹介
- ^ Python 言語リファレンス「6.2. 代入文」
- ^ 「PEP 572: 代入式」
- ^ 「Functions - The Rust Programming Language」. web.mit.edu . 2022年7月6日閲覧。
- ^ 「COS 326: 関数型プログラミング」www.cs.princeton.edu . 2022年7月6日閲覧。
