ねっとぱんだ-プログラミング勉強ブログ-

Webデザイン、プログラミングの勉強ブログ。

プログラミング言語

プログラミング言語

参考
http://e-words.jp/w/%E6%89%8B%E7%B6%9A%E3%81%8D%E5%9E%8B%E8%A8%80%E8%AA%9E.html

ステートメント statement

  • 「文」
  • コンピュータプログラムの構成単位となる、一つ一つの手続きや命令、宣言
  • 発言、声明、宣言、供述、提示、報告書、明細書
  • どのようなステートメントを記述できるかはプログラミング言語の仕様によってきまる
  • 変数や定数、関数の名前やデータ型の宣言、関数の呼び出し、オブジェクトの生成や破棄、変数への値の代入、条件分岐や繰り返し、何もしない(空文)などの種類がある

エクスプレッション expression

  • 「式」
  • 単体では特定の手続きを表さない
  • 記述された処理や計算を行うと一つの値に評価されるような構文
  • 手続き型プログラミング言語では、文と式の組み合わせによってプログラムを記述

スクリプト言語 scripting language

動的型付け

参考
https://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E5%9E%8B%E4%BB%98%E3%81%91
  • 変数や、サブルーチンの引数や返り値などの値について、その型を、コンパイル時などで決めず、実行時の実際の値による、という型システム

静的型付け

参考
https://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E5%9E%8B%E4%BB%98%E3%81%91
  • 変数や、サブルーチンの引数や返り値などの値について、その型を、コンパイル時などで決められている、という型システム

Pascal●C●C++JavaC#OCaml●SML●HaskellScala

型推論

参考
https://ja.wikipedia.org/wiki/%E5%9E%8B%E6%8E%A8%E8%AB%96
  • 変数や関数の型を宣言しなくてもそれを導くのに使われた関数の型シグネチャなどから自動的に型を決定する機構
  • 推論に失敗するとその時点でエラーを報告
  • 誤った型を用いる事によるバグは回避できる
  • プログラムの抽象度が上がるというメリットがある
  • Haskell●ML●Vala●F#●C#JavaScalaOCamlD言語Concurrent CleanC++11●Swift

手続き型プログラミング言語

参考
https://ja.wikipedia.org/wiki/%E6%89%8B%E7%B6%9A%E3%81%8D%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

C言語C++●ColdFusion●COBOLD言語Delphi言語●ECMAScriptActionScript、DMDScript、JavaScriptJScript)●Forth●FORTRANMapleMathematicaMATLAB●Modula-2●Oberon (Oberon-1、Oberon-2)●Occam●M言語●PascalPerlPHP●Pike●PythonPL/IVBScript●Visual BasicC言語●C++●ColdFusion●COBOLD言語Delphi言語●ECMAScriptActionScript、DMDScript、JavaScriptJScript)●Forth●FORTRANMapleMathematicaMATLAB●Modula-2●Oberon (Oberon-1、Oberon-2)●Occam●M言語●PascalPerlPHP●Pike●PythonPL/IVBScriptVisual Basic

関数型言語

  • functional language
  • すべての計算や処理などを関数の定義の組み合わせとして記述していくタイプのプログラミング言語
  • 「同じ入力には必ず同じ出力を返す」「関数の評価が他の関数に影響を及ぼさない」など数学における関数と似た性質を持った関数の定義としてプログラミングを行う
  • プログラムの実行は記述された関数群の評価として行われる
  • 破壊的代入(変数の書き換え)などの副作用を伴う機能は(ほとんどあるいは一切)排除
  • 自動的なメモリ管理、関数自身を引数に取ることができる高階関数、データ型の型推論、遅延評価などの機能が用意
非純粋関数型言語
純粋関数型言語
  • 非純粋関数型言語に対し、副作用を一切排除した言語
  • ●Clean●Haskell●Idris●Lazy K●Miranda