~Linux、MySQLからAJAXまでプログラミングの基本プログラミングの基本について概要をメモ書きしています。※目次をクリックすると目次の下部にコンテンツが表示されます。け●変数とは?・扱われるデータを一定期間記憶し、必要なときに利用できるようにするために、データに固有の名前を与えたもの。・データ型を指定する必要がある言語とない言語がある。型付けを持つ言語において、変数や関数の型を宣言しなくてもそれを導くのに使われた関数の型シグネチャなどから自動的に型を決定する機構。・推論に失敗するとその時点でエラーを報告できるため、少なくとも誤った型を用いる事によるバグは回避できる。・多くの場合、型推論は変数の宣言と代入が一度にまとめて行われることが前提となる。いう文があれば整数同士の加算結果だからaは整数といった具合に、文脈などから(すなわち、静的に)可能な限りで型を推論していく。・C#、Javaなどは型推論を持つ。・一般に動的プログラミング言語といわれるような処理系では変数ではなくデータの方に型をもつ。変数は型を持たず、実行時に変数の指す先であるデータが持っている型の情報に従って、それが文字であれば文字に対応して、整数であれば整数に対応して、といったように動く。・一般に動的プログラミング言語では型の特性に合わせた最適化(例えば常に浮動小数点レジスタを用いるなど)ができないので、実行速度という面では静的型に劣るなどと主張される。〇静的型付けと動的型付け・プログラムを実行前に型検査を行うのが静的型付けであり、プログラムを実行しながら型検査を行うのが動的型付け。言語ではコンパイル時に行うことを実行時に行う言語。・動的言語と動的型付けは同じ概念ではないし、全ての動的言語が必ずしも動的型付き言語というわけではない。動的プログラミング言語ではない。●変数のスコープ・変数がソースコード内のどこで使えるかを示す概念。・一般に、変数はその変数に対して定められたソースコードの特定の範囲内でしか使用することができない。その変数が使用可能な範囲が、その変数のスコープ。〇globalスコープ・プログラムの「全体」から見えるスコープ。・一般にグローバル変数は、その非局在的な性質ゆえに、好ましくない実践だと考えられている。・グローバル変数を使用すると、ソフトウエアのソースコードを理解することが困難になる。グローバル変数の値はプログラムのどこからでも変更できるため、グローバル変数がどのように使用されているか理解するためには、プログラム全体を把握しなければならない。〇fileスコープ・プログラムを記述したファイルの内側でのみ参照できるスコープ。・プログラムが複数のファイルから構成される場合は他のファイルから参照することはできない。〇localスコープ・ある関数やブロックの範囲内に限定されたスコープ。・何を持って範囲を与えるかは言語により様々だが、一般に入れ子のローカルスコープは外側を参照できるのが普通である。このとき兄弟関係にあるスコープは見えない。・変数宣言が必要な言語の場合は宣言文以降にスコープが制限される場合が多い。〇instanceスコープ・クラスベースのオブジェクト指向言語で、各インスタンス毎に割り当てられた変数が所属メソッド(メンバ関数)からのみ参照されるスコープ。・フィールド、データメンバ、メンバ変数。〇classスコープ・クラスベースのオブジェクト指向言語で、あるクラスの定義全体から参照できるスコープ。・インスタンススコープと異なり変数が共有されるので、ある種の制限されたglobalスコープと考えることができる。・静的メンバ変数、静的フィールド。構文上で決定されるスコープ。・ブロックなどの構造を持つプログラミング言語では、あるブロックの内側で定義された変数はそのブロックの外側から操作することができないのが普通。〇動的スコープ・実行時の関数の親子関係で名前を導入が導入されるスコープ。・動的スコープは、静的スコープに加え、実行時の親子関係の子側(呼び出された側)から親側(呼び出し側)のスコープを参照できるスコープ。・変数がプログラムの実行時においていつ使えるかを規定する概念。・多くの場合、プログラムの処理がその変数のスコープ内に入ると(その変数の値を保存するためのメモリ領域が確保されるなどして)変数が存在し始め、処理がスコープから出ると変数の存在が消えるというように、変数のスコープに合わせて寿命が決められる。(自動変数)一方、スコープとは関係なくプログラムの実行が始まったときから終わるときまでずっと存在し続けるようなものもある(静的変数)。われるデータを一定期間記憶し必要なときに利用できるようにするために、データに固有の名前を与えたもの。・変数とは異なり、一度初期化するとその内容を変更することはできない。・使用する定数の名前と対応するデータを明示する。・変数同様データ型を指定することもある。・代入するデータにはリテラルのほかに変数も使用することができる。変数を代入した場合は初期化時の変数の内容がコピーされる。●リテラル・ソースコードに直接記述するデータはリテラルと呼ぶ。・’A’のようにシングルクォートで文字を挟み、エスケープシーケンスが使える場合が多い。・”string”のようにダブルクォートや、シングルクォートで文字列を囲む場合が多い。・一つの言語に複数の記述法があり、特殊な記法が用意される場合もある。その際にはエスケープシーケンスの処理を行うか、式展開を行うか、文字列の終わりの解釈などがそれぞれ異なる。区別しない」等々のオプションが後ろに付けることができるような仕様のことが多い。・[1,2,3]のようにブラケットで囲む場合が多い。“piyo”:2}のような書き方が一例。・JavaScriptのオブジェクト表記法からJSONが発見された。値を格納するのに用いられる。・添え字は一般に通例0か1始まりの(非負)整数である。え字にスカラー数値以外のデータ型(文字列型等)も使用できる配列。・ハッシュ、マップとも呼ばれる。・要素とそれを紐付けできるような値(キーと呼ぶ)のペアで表され、キーによって目的の値を求める。●イテレータ・プログラミング言語において配列やそれに類似するデータ構造の各要素に対する繰返し処理の抽象化である。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。