ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

C++

索引 C++

C++(シープラスプラス)は、汎用プログラミング言語の一つである。日本語では略してシープラプラ、シープラなどとも呼ばれる。.

151 関係: AdaALGOLApache XercesApplication Binary Interface型変換型システム可変長配列参照 (情報工学)名前修飾名前空間多重定義実行時型情報岩谷宏不可分操作仮想継承仮想関数テーブル引数低水準言語例外処理マルチパラダイムプログラミング言語チューリング完全ハッシュテーブルポリモーフィズムメッセージ転送メソッド (計算機科学)メタプログラミングモジュールラムダ計算ライブラリリファクタリング (プログラミング)ボーランドブーリアン型プログラミングパラダイムプログラミング言語プログラマヒューレット・パッカードビャーネ・ストロヴストルップテンプレート (プログラミング)テンプレートの部分特殊化テンプレートメタプログラミングデータデータ構造ディレクティブフロントエンドドメイン固有言語ニュースピークベル研究所アルゴリズムアクセス制御アセンブリ言語...インライン関数インクリメントインタフェース (情報技術)イテレータエピステーメーオペレーティングシステムオーバーライドオブジェクトファイルオブジェクト指向オブジェクト指向プログラミングカプセル化キーワード (C++)クラス (コンピュータ)グラフィカルユーザインタフェースコメント (コンピュータ)コンパイラコンテナ (データ型)シリコングラフィックスジョージ・オーウェルジェネリックプログラミングスレッド (コンピュータ)ソフトウェアテスト入出力動的メモリ確保国際化と地域化国際電気標準会議国際標準化機構BASICBCPLB言語BoostC SharpC++ BuilderC++ Technical Report 1C++/CLIC++11C++14C++17C11 (C言語)C99C言語CfrontClangCLU米国国家規格協会継承 (プログラミング)D言語Embedded C++Extensible Markup Language静的型付け表明関数型言語連結リスト連想配列FORTRANGLR法GNUコンパイラコレクションHello worldIntel C++ CompilerJavaJavaとC++の比較LALR法Microsoft Visual C++ML (プログラミング言語)PascalPHP (プログラミング言語)PrintfScanfSimulaSmalltalkStandard Template LibrarySystemCXUnit抽象型抽象化 (計算機科学)抽象データ型構造体構文解析構文解析器標準化標準C++ライブラリ正規表現演算子演算子の優先順位文字列手続き型プログラミング10月12月1979年1983年1984年 (小説)1985年1988年1989年1990年1998年2000年代2003年2011年2014年2017年 インデックスを展開 (101 もっと) »

Ada

Ada(エイダ)は、強力な言語機能を豊富に持ち、高度な型の体系をもつ、プログラミング言語の一つである。構文はAlgol系である。 史上初のプログラマとされるエイダ・ラブレスの名前にちなんでAdaと命名されているため、ADAと表記するのは誤り。 フリーのコンパイラとしては、GNATなどがある。.

新しい!!: C++とAda · 続きを見る »

ALGOL

ALGOL(アルゴル)は、命令型プログラミング言語ファミリーの1つファミリー名は大文字/小文字をまじえて表記される場合 と、全て大文字で表記される場合 (ALGOL 68) がある。本項目では ALGOL で統一する。。名前「ALGOL」は「アルゴリズム言語」を意味する英語「algorithmic language」に由来する。1950年代中ごろに開発され、多くの言語に影響を及ぼし、ACMや教科書や学術論文などでアルゴリズム記述のデファクトスタンダードとして30年以上使われた。現代の多くの言語が「ALGOL系」あるいは「ALGOL風」(algol-like) とされているという意味で、ほぼ同世代の高水準言語である FORTRAN、LISP、COBOL に比べて最も成功したと言うこともできる。FORTRANで明らかとなった問題を防ぐよう設計され、BCPL、B、Pascal、Simula、Cといった様々なプログラミング言語に影響を与えた。ALGOLはLisp以外としては「begin と end で囲む」という構文によるブロック構造を導入し、制御構造を自在に入れ子(ネスト)にできる初の広まった言語となったFORTRANにはそのような構造は無い。COBOLではピリオドで全ての入れ子が終端するという仕様だったため(現在はend-ifなどを使う)、入れ子で書ける論理に制限があり、酷いバグの原因にもなりやすかった。。また構文の形式的定義を真剣に検討した最初のプログラミング言語でもあり、"Algol 60 Report" で導入されたバッカス・ナウア記法は、その後のコンピュータ言語等の構文の形式的定義を示す手法として(プログラミング言語だけに限られず)定番の記法となっている。.

新しい!!: C++とALGOL · 続きを見る »

Apache Xerces

Apache Xerces(アパッチ ザーシーズ)は、XML文書のパースと操作を行うための一群のソフトウェアパッケージであり、Apacheソフトウェア財団のApache Xercesプロジェクトにより開発されている。 このプロジェクトは、以前はApache XMLプロジェクトのサブプロジェクトであったが、現在はApacheソフトウェア財団のトップレベルプロジェクトとなっており、同財団で自らの権限で活動している。Xercesは、Apacheライセンスによるオープンソースのソフトウェアパッケージ群である。広く使われているXMLプロセサ (XMLパーサ) の実装の一つである。IBMからApacheソフトウェア財団に寄贈された XML4J という実装がもとになっているが、現在のバージョンは全て新規に開発し直された。 Xercesは、XML文書のパースとXML文書の生成の両方の機能を提供している。Xercesの名称は、Xerces Blue butterfly (en:Xerces Blue) という絶滅した種の蝶に由来する。 Xercesが提供するライブラリは、XML文書のパースを行うためのさまざまなAPIを実装している。Xercesのライブラリが実装している、XML文書のパースのためのAPIには、DOM、SAX、SAX2が含まれている。Java、C++、Perl向けのXercesソフトウェアパッケージが利用可能である。.

新しい!!: C++とApache Xerces · 続きを見る »

Application Binary Interface

Application Binary Interface(アプリケーション・バイナリー・インタフェース、ABI)とは、アプリケーション(ユーザ)プログラムとシステム(OSやライブラリ)との間の、バイナリレベルのインタフェースである。また、アプリケーション相互間や、それらの部品(プラグイン等)とのバイナリインタフェースもある。 ABIはアプリケーションプログラミングインタフェース (API) とは異なる。APIはソースコードとライブラリ間のインタフェースを定義したものであり、同じAPIをサポートしたシステム間では同じソースコードをコンパイルして利用できる。一方、ABIはオブジェクトコードレベルのインタフェースであり、互換ABIをサポートするシステム間では同じ実行ファイルを変更無しで動作させることができる。.

新しい!!: C++とApplication Binary Interface · 続きを見る »

型変換

型変換(かたへんかん)とはプログラムにおいて、あるデータ型を他のデータ型に変換することである。.

新しい!!: C++と型変換 · 続きを見る »

型システム

型システム(type system)とは、プログラミング言語において、その式などの部分が持つ値を、その種類(型(type)、データ型も参照)に沿って分類し、プログラムが正しく振る舞うこと、といった性質について保証する手法である。型システムは、型理論に基づいており、プログラミング言語の理論において最も確立された軽量形式手法である。.

新しい!!: C++と型システム · 続きを見る »

可変長配列

プログラミングにおいて、可変長配列(かへんちょうはいれつ、variable-length array: VLA)とは、コンパイル時ではなく実行時に長さが決定されるの配列データ構造である。 VLAに対応しているプログラミング言語には、Ada、ALGOL 68(行は固定)、APL、C99(ただしC11ではサポート必須ではなくオプションに格下げとなった。またいくつかのプラットフォームにおいて、C99より前のバージョンではalloca()あるいは類似の関数で実装されることがあった)、C#(unsafeモードのスタック割り当て配列として)、COBOL、Fortran 90、J言語がある。また、Object Pascal(Borland Delphiで使用される言語)でも対応している。.

新しい!!: C++と可変長配列 · 続きを見る »

参照 (情報工学)

参照(さんしょう、reference、リファレンス)は、他の場所にあるデータを指している情報を含む小さなオブジェクトであり、それ自身の中に(指している)データ自体を含まない。参照の指す値を取り出すことをデリファレンス (dereference)と呼ぶ(間接参照も参照)。参照は様々なデータ構造を構成する基本要素であり、プログラム内の各部で情報をやり取りするための基本でもある。 なお、C++には、参照型というものがあるが、以下で説明するのはC++のそれではなく、一般概念である。C++の参照については、ポインタ (プログラミング)#参照を参照のこと。.

新しい!!: C++と参照 (情報工学) · 続きを見る »

名前修飾

名前修飾(なまえしゅうしょく、name mangling)は、現代的なコンピュータプログラミング言語処理系で用いられている手法で、サブルーチン(関数)名などに対する内部名を、その表層的な名前だけではなく、関数であればその引数の型や返戻値の型などといった意味的な情報を含めて修飾した(manglingした)名前とするものである。コンパイラからリンカ、さらには実行時のデバッガなども含んだシステム全体が、高度な型に関する情報などをサポートするように再実装するには多くの難しさがあるが、この手法であれば、システムの多くの部分ではわずかな修正(たとえば、名前に '$' という文字が含まれることを許すようにする、など)で済む。特に、多重定義を許す言語では、同一の表層名に対して許される多重定義や、その同定について上手に修飾を設計すれば、扱いが単純になる。また、そのままではエラーメッセージ等が読み辛いものとなるが、「解読」ルーチンを呼ぶように修正するだけで、型の情報などが付加された、むしろわかりやすいメッセージが出力されるようになる。.

新しい!!: C++と名前修飾 · 続きを見る »

名前空間

名前空間(なまえくうかん)はNamespaceの訳語で、名前の集合を分割することで衝突の可能性を低減しつつ参照を容易にする概念である。 この集合は、全事象の元の全ての組み合わせ可能なものからなる集合全体および物理的な名称を指すことが可能である。つまり英字・数字・記号などを組みあわせて作られる名前全てを含む集合である。名前に結び付けられる実体(型や変数)は、名前がそれぞれどの集合(空間)に属するか指定されることで一意に定まる。名前空間が異なれば同じ名前でも別の実体に対応付けられる。.

新しい!!: C++と名前空間 · 続きを見る »

多重定義

多重定義 (たじゅうていぎ) あるいは オーバーロード (overload)とは、プログラミング言語において関数や演算子やメソッドの同一名や同一の演算子記号について複数定義し、利用時にプログラムの文脈に応じて選択することで複数の動作を行わせる仕組みである。 例えば整数型や浮動小数点型、複素数型の値について同じ「abs」という関数を定義して絶対値を求める、型ごとに個々の意味で名前やIDを返す関数を定義するなどが挙げられる。多重定義する対象に応じてそれぞれ関数の多重定義、演算子の多重定義、メソッドの多重定義と呼ばれる。また、Common Lispなどでは、多重定義可能な関数としてgeneric function(:en:Generic function)がある(このgenericはジェネリックプログラミングのジェネリックである)。 上書きを意味するオーバーライドとはまったく異なる。.

新しい!!: C++と多重定義 · 続きを見る »

実行時型情報

実行時型情報(じっこうじかたじょうほう、RunTime Type Identification, RTTI)とは、プログラムの実行時に、メモリ上に存在するオブジェクトのデータ型に関する情報のことである。 主に継承構造や、実装によってはメンバ関数などの情報を保持していることもある。これによってプログラム内のオブジェクトや変数の型を動的(実行時)に判別できるようにする。 実行時型情報は多くのプログラミング言語で用いることができるが、RTTIは特にC++で用いられる言葉である。C++でdynamic_castやtypeid演算子を用いるにはRTTIを有効にしなければならない。.

新しい!!: C++と実行時型情報 · 続きを見る »

岩谷宏

岩谷 宏(いわたに ひろし、1942年1月6日 - )。旧・京城府(韓国)生まれのライター、翻訳家。現在、Iwatani(a.k.a. hiwa)としてTechCrunch Japanの編集・翻訳スタッフを務めている。 京都大学文学部仏文科卒業。 1972年、渋谷陽一・松村雄策・橘川幸夫らと、ロック雑誌『ロッキング・オン』を創刊。 創刊時より、ロック評論、エッセイを執筆し、訳詞を手がける。初期ロッキング・オンの理論的指導者でもある。 1980年代前半、商業路線を歩むロッキング・オンを離れ、1980年代後半以降は、ラジカルなコンピュータ文化に希望を託し、主にコンピュータ関連の著述・翻訳活動に取り組んでいる。.

新しい!!: C++と岩谷宏 · 続きを見る »

不可分操作

不可分操作(ふかぶんそうさ)あるいはアトミック操作 (atomic operation) とは、情報工学においていくつかの操作を組み合わせたもので、システムの他の部分から見てそれらがひとつの操作に見えるものをいう。.

新しい!!: C++と不可分操作 · 続きを見る »

仮想継承

仮想継承(かそうけいしょう、Virtual inheritance)とは、C++プログラミング言語における継承の一種で、多重継承によって生じる問題(菱形継承問題)を解決するもの。どの上位クラスのメンバーを使うか曖昧さが生じる部分で、明確化する。仮想継承は、部分の合成という意味での継承よりも、継承が上位クラスへの制限を表している場合に使われる。多重継承の基底クラスは、virtual というキーワードで仮想継承であることを指定される。.

新しい!!: C++と仮想継承 · 続きを見る »

仮想関数テーブル

仮想関数テーブル(かそうかんすうテーブル、virtual method table)あるいはvtableは、プログラミング言語の実装において動的なポリモーフィズム、すなわち実行時のメソッドの束縛を実現するために用いられる機構である。 あるプログラムが継承関係にある複数のクラスを持っているとする。たとえばスーパークラス Cat と二つのサブクラス HouseCat と Lion において、クラス Cat が "speak" という仮想関数を定義しており、サブクラスは適切な実装(鳴く、吠えるといった)を行うものとする。 プログラムが "speak" メソッドを Cat ポインタ(Cat クラスと Cat の任意のサブクラスを示すことができる) に対して呼び出すと、実行環境は、Cat が示す実際のオブジェクトの種類に応じてどの実装を呼び出すかを決定しなければならない。 このような動的な割り当てを実現するには様々な方法があるが、vtable による方法が C++ や関連するプログラミング言語(D言語 や C# など)では一般的である。 実用的なオブジェクトのインターフェイスを実装と分離する言語(Visual Basic や Delphi など)でも、オブジェクトが異なる関数ポインタのセットを用いるだけで異なる実装を用いることができるため、vtable による方法を用いる傾向にある。.

新しい!!: C++と仮想関数テーブル · 続きを見る »

引数

引数(ひきすう)は、数学における関数やコンピュータプログラムにおける手続きにおいて、その外部と値をやりとりするための特別な変数、あるいはその変数の値のことである。 数学や最適化問題に関するそれ(「パラメータ」とカタカナで表現されることが多い)については「媒介変数」の記事を参照のこと。以下は専らコンピュータプログラミングに関して説明する。 関数・サブルーチン・メソッド等を定義する時に、外部から値を渡される特別な変数として指定されるのが仮引数。関数(等)を呼出す式において、仮引数に対応する式(あるいはその値)が実引数である。実行時には、実引数の値を仮引数が受け取る。 「引数」を「いんすう」と読む読み方もあるが、術語としては変則的に湯桶読みして「ひきすう」としている。数学分野で因数との取違えを防ぐためといった理由もある。.

新しい!!: C++と引数 · 続きを見る »

低水準言語

低水準言語(low-level programming language: ていすいじゅんげんご、低級言語とも)は、コンピュータ用のプログラミング言語のうち、機械語ないし機械語に近いアセンブリ言語などの言語の総称である。システムの階層構造を考えた場合に、ハードウェア寄りに位置する低レイヤ(低水準)の言語という意味である。対義語は「高水準言語」である。「高級言語」の対は「低級言語」である。 次のような特徴がある。.

新しい!!: C++と低水準言語 · 続きを見る »

例外処理

例外処理(れいがいしょり)とは、プログラムの上位の処理から呼び出されている下位の処理で継続不能、または継続すれば支障をきたす異常事態に陥ったとき、制御を呼び出し元の上位の処理に返し安全な状態になるよう回復処理をすること。その際に発生した異常のことを例外と呼ぶ。 継続不能や継続すると問題になる様な状態としては、次のようなものが挙げられる。.

新しい!!: C++と例外処理 · 続きを見る »

マルチパラダイムプログラミング言語

マルチパラダイムプログラミング言語 (マルチパラダイムプログラミングげんご、multiparadigm programming language)は、複数のプログラミングパラダイムに対応するプログラミング言語の総称である。「1つのプログラムは複数のプログラミングパラダイムを使う」とビャーネ・ストロヴストルップは述べている。マルチパラダイムプログラミング言語の設計目標は、問題解決に当たって最良の道具になることである。たとえばOzでは、論理型、関数型、オブジェクト指向、データフローコンカレントなど、多数のパラダイムを内包している。Ozは10年かけて従来のプログラミングパラダイムが調和するよう設計されたのである。.

新しい!!: C++とマルチパラダイムプログラミング言語 · 続きを見る »

チューリング完全

計算理論において、ある計算のメカニズムが万能チューリングマシンと同じ計算能力をもつとき、その計算モデルはチューリング完全(チューリングかんぜん、Turing-complete)あるいは計算完備であるという。 チャーチ=チューリングのテーゼによれば「計算可能関数」は、それを計算しようとする計算モデルがチューリング完全であれば計算できる。 一般的なプログラミング言語の背景にある計算モデルの多くはチューリング完全である。一見単純な機能しか持たない言語がチューリング完全な例としては、Lazy K、Brainfuckなどがある。究極的に単純な計算モデルとしては「がチューリング完全であると証明されている。 チューリング完全かどうかという事は、計算可能性理論の問題である。計算複雑性の分野の問題である時間や記憶容量の消費量については考えない。表計算における数式の処理などで、繰り返し処理を「どうやっても実現できなければ」それはチューリング完全ではない。 コンピュータ言語のうち、少なくともチューリング完全でなければプログラミング言語とは呼ばれない。逆にチューリング完全であるにも関わらず慣例的にプログラミング言語とは呼ばれないものもある。.

新しい!!: C++とチューリング完全 · 続きを見る »

ハッシュテーブル

ハッシュテーブルの例(名前をキーとして電話番号を検索) ハッシュテーブル (hash table) は、キーと値の組(エントリと呼ぶ)を複数個格納し、キーに対応する値をすばやく参照するためのデータ構造。ハッシュ表ともいう。ハッシュテーブルは連想配列や集合の効率的な実装のうち1つである。.

新しい!!: C++とハッシュテーブル · 続きを見る »

ポリモーフィズム

ポリモーフィズム()とは、プログラミング言語の型システムの性質を表すもので、プログラミング言語の各要素(定数、変数、式、オブジェクト、関数、メソッドなど)についてそれらが複数の型に属することを許すという性質を指す。ポリモルフィズム、多態性、多相性、多様性とも呼ばれる。対義語はモノモーフィズム(Monomorphism)、単態性、単相性で、プログラミング言語の各要素が唯一つの型に属するという性質を指す。 ポリモーフィズムは次のようないくつかの種類に分けられる。.

新しい!!: C++とポリモーフィズム · 続きを見る »

メッセージ転送

メッセージ転送(メッセージてんそう、Message Forwarding)とは、オブジェクト指向言語において、オブジェクトに対して送られたメッセージを送信対象となっていないオブジェクトやメソッドに転送できる機能のことである。オブジェクト指向言語の中ではSmalltalkから導入されている。.

新しい!!: C++とメッセージ転送 · 続きを見る »

メソッド (計算機科学)

メソッド あるいは メンバー関数 (-かんすう) とはオブジェクト指向プログラミング言語において、あるクラスないしオブジェクトに所属するサブルーチンを指す。.

新しい!!: C++とメソッド (計算機科学) · 続きを見る »

メタプログラミング

メタプログラミング (metaprogramming) とはプログラミング技法の一種で、ロジックを直接コーディングするのではなく、あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法、またその高位ロジックを定義する方法のこと。主に対象言語に埋め込まれたマクロ言語によって行われる。.

新しい!!: C++とメタプログラミング · 続きを見る »

モジュール

モジュール(module)とは、工学などにおける設計上の概念で、システムを構成する要素となるもの。いくつかの部品的機能を集め、まとまりのある機能を持った部品のこと。モジュールに従っているものをモジュラー (modular)という。 入出力を絞り込み、標準化することで、システム開発を「すり合わせ」から「モジュールの組合わせ」にすることができる。.

新しい!!: C++とモジュール · 続きを見る »

ラムダ計算

ラムダ計算(ラムダけいさん、lambda calculus)は、計算模型のひとつで、計算の実行を関数への引数の評価(evaluation)と適用(application)としてモデル化・抽象化した計算体系である。ラムダ算法とも言う。関数を表現する式に文字ラムダ (λ) を使うという慣習からその名がある。アロンゾ・チャーチとスティーヴン・コール・クリーネによって1930年代に考案された。1936年にチャーチはラムダ計算を用いて一階述語論理の決定可能性問題を(否定的に)解いた。ラムダ計算は「計算可能な関数」とはなにかを定義するために用いられることもある。計算の意味論や型理論など、計算機科学のいろいろなところで使われており、特にLISP、ML、Haskellといった関数型プログラミング言語の理論的基盤として、その誕生に大きな役割を果たした。 ラムダ計算は1つの変換規則(変数置換)と1つの関数定義規則のみを持つ、最小の(ユニバーサルな)プログラミング言語であるということもできる。ここでいう「ユニバーサルな」とは、全ての計算可能な関数が表現でき正しく評価されるという意味である。これは、ラムダ計算がチューリングマシンと等価な数理モデルであることを意味している。チューリングマシンがハードウェア的なモデル化であるのに対し、ラムダ計算はよりソフトウェア的なアプローチをとっている。 この記事ではチャーチが提唱した元来のいわゆる「型無しラムダ計算」について述べている。その後これを元にして「型付きラムダ計算」という体系も提唱されている。.

新しい!!: C++とラムダ計算 · 続きを見る »

ライブラリ

ライブラリ()は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。ライブラリと呼ぶ時は、それ単体ではプログラムとして作動させることはできない実行ファイルではない場合がある。ライブラリは他のプログラムに何らかの機能を提供するコードの集まりと言うことができる。ソースコードの場合と、オブジェクトコード、あるいは専用の形式を用いる場合とがある。たとえば、UNIXのライブラリはオブジェクトコードをarと呼ばれるアーカイバでひとまとめにして利用する。図書館()と同様にプログラム(算譜)の書庫であるので、索引方法が重要である。 また、ソフトウェア以外の再利用可能なものの集合について使われることもある。.

新しい!!: C++とライブラリ · 続きを見る »

リファクタリング (プログラミング)

リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。また、いくつかのリファクタリング手法の総称としても使われる。ただし、十分に確立された技術とはいえず、また「リファクタリング」という言葉に厳密な定義があるわけではない。.

新しい!!: C++とリファクタリング (プログラミング) · 続きを見る »

ボーランド

ボーランド (Borland、Borland International、Inprise Corporation、Borland Software Corporation) は、かつて存在した開発プロセス用ツールなどのソフトウェアの開発・販売会社である。 PC 黎明期からTurbo Pascal(ターボ・パスカル)などのソフトウェア開発ツールを販売していたが、1990年代のマイクロソフトとの激しい争いを経て、2000年代前半、企業買収と社名変更を繰り返し、開発プロセスツール会社に変身した。会社存在当時の最後の本社はアメリカのテキサス州オースティン。 日本では1989年4月に日本法人である株式会社ボーランドジャパンが設立され、1992年にはボーランド株式会社に商号変更されて100%子会社となった。 2009年5月6日、マイクロフォーカス(当時・インプライズ株式会社)による買収の合意が発表され、同社の一部門となった。.

新しい!!: C++とボーランド · 続きを見る »

ブーリアン型

ブーリアン型(ブーリアンがた、Boolean datatype)は、真理値の「真.

新しい!!: C++とブーリアン型 · 続きを見る »

プログラミングパラダイム

プログラミングパラダイム (programming paradigm)とは、プログラミングにおけるパラダイムである。.

新しい!!: C++とプログラミングパラダイム · 続きを見る »

プログラミング言語

プログラミング言語(プログラミングげんご、programming language)とは、コンピュータプログラムを記述するための形式言語である。なお、コンピュータ以外にもプログラマブルなものがあることを考慮するならば、この記事で扱っている内容については、「コンピュータプログラミング言語」(computer programming language)に限定されている。.

新しい!!: C++とプログラミング言語 · 続きを見る »

プログラマ

プログラマ(Programmer)とは、コンピューターのプログラムを作成する人全般を指す。プログラマーとも表記される(#プログラマに対する呼称参照)。.

新しい!!: C++とプログラマ · 続きを見る »

ヒューレット・パッカード

創業場所に転用した、パロアルトにある旧パッカード家の車庫(en:Packard's garage)。2007年にアメリカ合衆国の史跡に指定された。 ヒューレット・パッカード (Hewlett-Packard Company) は、かつて存在した、主にコンピュータやプリンターなどコンピュータ関連製品の開発・製造・販売・サポートを行うアメリカ合衆国の企業である。2015年11月1日をもって、二つの独立した公開会社であるHP Inc.及びヒューレット・パッカード・エンタープライズに分割された。HP(エイチピー)の略称で呼ばれることが多い。本項でもHPと記す部分がある。スローガンは「invent」。 本体の会社分割を受けて、従来の日本法人の日本ヒューレット・パッカード株式会社はヒューレット・パッカード・エンタープライズの日本法人となり、HP Inc.の日本法人として日本HPが分離・設立された。.

新しい!!: C++とヒューレット・パッカード · 続きを見る »

ビャーネ・ストロヴストルップ

ビャーネ・ストロヴストルップ(, 1950年12月30日 - )は、デンマークのオーフス生まれのコンピュータ科学者。ファーストネームは「ビアルネ」「ビャーン」「ビョーン」、ファミリーネームは「ストラウストラップ」「ストゥロウストゥループ」などとも書かれる。本人による自身のである。 1975年、オーフス大学で計算機科学と数学の修士号を取得。卒業後イギリスに渡り、1979年にケンブリッジ大学で計算機科学の博士号を取得。その後家族とともにアメリカ合衆国ニュージャージー州に渡り、AT&Tベル研究所に大規模プログラミング研究部部長として勤務。1983年に C言語を拡張し、オブジェクト指向プログラミングを可能にした C++ を開発した。2002年に AT&T ベル研究所を退所し、テキサス州テキサスA&M大学の計算機科学教授を務めた。2014年よりモーガンスタンレーのテクノロジー部門でマネージングディレクターを務めている。 2004年、全米技術アカデミーの会員に選出される。2018年チャールズ・スターク・ドレイパー賞受賞。.

新しい!!: C++とビャーネ・ストロヴストルップ · 続きを見る »

テンプレート (プログラミング)

プログラミングにおけるテンプレートは、静的型付けのC++でデータ型にとらわれずにコードを書くことを可能にする機能であり、C++においてはジェネリックプログラミングに用いられる。 C++においてテンプレートは多重継承や演算子多重定義と並ぶ重要な機能となった。STL (Standard Template Library)はテンプレートによって構築されたフレームワークとなっている。.

新しい!!: C++とテンプレート (プログラミング) · 続きを見る »

テンプレートの部分特殊化

テンプレートの部分特殊化 (Partial template specialization)は、C++の用語で、テンプレートにおいて、特定のテンプレート実引数が与えられたときに、元と異なる定義を使用させるようにする仕組みである。.

新しい!!: C++とテンプレートの部分特殊化 · 続きを見る »

テンプレートメタプログラミング

テンプレートメタプログラミング(template metaprogramming)は、メタプログラミング技法の一種であり、コンパイラがテンプレートを使って一時的ソースコードを生成し、それを他のソースコードと結合してコンパイルする方式である。テンプレートが出力するものは、コンパイル時の定数、データ構造、関数定義などがある。テンプレートの利用は言わばコンパイル時の実行である。この技法は様々な言語で使われている(C++、D言語、Eiffel、Haskell、ML、XLなど)。.

新しい!!: C++とテンプレートメタプログラミング · 続きを見る »

データ

データ(data)とは、事実や資料をさす言葉。言語的には複数形であるため、厳密には複数の事象や数値の集まりのことを指し、単数形は datum(データム)である。.

新しい!!: C++とデータ · 続きを見る »

データ構造

データ構造(データこうぞう、data structure)は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。 ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラム(アルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。 多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大きく依存してきたという経験の結果である。多くの場合、データ構造が決まれば、利用するアルゴリズムは比較的自明に決まる。しかし場合によっては、順番が逆になる。つまり、与えられた仕事をこなす最適なアルゴリズムを使うために、そのアルゴリズムが前提としている特定のデータ構造が選択される。いずれにしても適切なデータ構造の選択は極めて重要である。 この洞察は、多くの定式化された設計手法やプログラミング言語において、データ構造がアルゴリズムよりもキーとなる構成要素となっていることに現れている。大半の言語は異なるアプリケーションにおいてデータ構造を安全に再利用できるよう、実装の詳細をインターフェイスの背後に隠蔽するような、モジュール化のしくみを備えている。C++やJavaといったオブジェクト指向プログラミング言語はクラスをこの目的に用いている。 データ構造は専門的なプログラミングにとって非常に重要なので、C++におけるSTLや、Java API、および.NET Frameworkのようなプログラミング言語の標準ライブラリや環境において多くのデータ構造がサポートされている。 データ構造が実装を表すのかインターフェースを表すのかについてはいくらか議論がある。どのように見えるかは相対的な問題なのかもしれない。データ構造は2つの関数の間にあるインターフェイスとして見ることもできるし、データ型に基づいて構成されたストレージにアクセスする方法を実装したものとして見ることもできる。.

新しい!!: C++とデータ構造 · 続きを見る »

ディレクティブ

ディレクティブ(Directive)は、プログラミングにおいてコマンドのような意味で使われる用語であり、プログラミング言語の一部の構成要素(例えば、コンパイラやアセンブラに処理方法を指示する記述など)を指すこともある。.

新しい!!: C++とディレクティブ · 続きを見る »

フロントエンド

フロントエンド(front-end)とバックエンド(back-end)は、プロセスの最初と最後の工程を指す一般的用語である。フロントエンドは各種入力をユーザーから収集し、バックエンドが使える仕様に合うようにそれを加工する。フロントエンドとバックエンドの結合部はインタフェースと呼ばれる。.

新しい!!: C++とフロントエンド · 続きを見る »

ドメイン固有言語

ドメイン固有言語(ドメインこゆうげんご、domain-specific language、DSL)とは、特定のタスク向けに設計されたコンピュータ言語である。 DSL は一種類のタスクをうまく実行することに集中したものであり、古くから存在した。何らかのプログラミング言語それ自体の構文と処理系を利用する internal DSL(あるいは embedded DSL)と、独立した構文と処理系を持つ external DSL に大別されるが、そのいずれにしても近年の、自由度と機能が高いプログラミング言語により手軽に扱えるようになったことから広まっている。ドメイン固有モデリングの支持者によれば、ドメイン固有モデリングの発達と共にDSLという用語も広く知られるようになってきた、とされる。実際にはドメイン固有言語はモデリングとは特別な関係が何もあるわけでもなく(ドメイン固有モデリングのためのドメイン固有言語、といったものはあるが)、モデリング以外にもあらゆる分野のための言語がある。 例えば、ハードウェア記述言語のVerilog HDLやVHDL、表計算ソフトのマクロ、データベースへの問い合わせ言語(SQLなど)、文脈自由文法を記述するBNFや正規文法を記述する正規表現、図を作成する言語を構築する 、音響や音楽の合成用のCsound、グラフ(ネットワーク)描画システムGraphvizのDOT言語、依存関係解決用のmakeなどがある。.

新しい!!: C++とドメイン固有言語 · 続きを見る »

ニュースピーク

ニュースピーク(新語法、)はジョージ・オーウェルの小説『1984年』(1949年出版)に描かれた架空の言語。作中の全体主義体制国家が実在の英語をもとにつくった新しい英語である。その目的は、国民の語彙や思考を制限し、党のイデオロギーに反する思想を考えられないようにして、支配を盤石なものにすることである。.

新しい!!: C++とニュースピーク · 続きを見る »

ベル研究所

ベル研究所(ベルけんきゅうじょ、Bell Laboratories)はもともとBell System社の研究開発部門として設立された研究所であり、現在はノキアの子会社である。「ベル電話研究所」、略して「ベル研」とも。.

新しい!!: C++とベル研究所 · 続きを見る »

アルゴリズム

フローチャートはアルゴリズムの視覚的表現としてよく使われる。これはランプがつかない時のフローチャート。 アルゴリズム(algorithm )とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。 「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。 コンピュータにアルゴリズムをソフトウェア的に実装するものがコンピュータプログラムである。人間より速く大量に計算ができるのがコンピュータの強みであるが、その計算が正しく効率的であるためには、正しく効率的なアルゴリズムに基づいたものでなければならない。.

新しい!!: C++とアルゴリズム · 続きを見る »

アクセス制御

アクセス制御(アクセスせいぎょ、Access Control)は、物理セキュリティ、コンピュータセキュリティ、ネットワークセキュリティなどにおいて各々下記の意味を持つ。.

新しい!!: C++とアクセス制御 · 続きを見る »

アセンブリ言語

モトローラ MC6800 のアセンブリ言語のソースコード アセンブリ言語(アセンブリげんご、英: assembly language)とは、コンピュータ、マイクロコントローラ、その他のプログラム可能な機器を動作させるための機械語を人間にわかりやすい形で記述する、代表的な低水準言語である。なお、英語の assembly とは「組立」という意味である。.

新しい!!: C++とアセンブリ言語 · 続きを見る »

インライン関数

インライン関数(inline function)とは、プログラミング言語の言語機能および構文の一種で、コンパイラに対して特定の関数をインライン展開するよう指示するものである。つまり、コンパイラに対して、その関数を呼び出している全ての箇所に関数の実体を挿入するよう指示する。.

新しい!!: C++とインライン関数 · 続きを見る »

インクリメント

インクリメント、増量 (increment) は、一般には増加という意味だが、コンピュータ用語としては、変数の値を1増やす演算のことである。逆に、1減らす演算はデクリメント (decrement) である。.

新しい!!: C++とインクリメント · 続きを見る »

インタフェース (情報技術)

インタフェース(interface)は、ものごとの境界となる部分と、その境界でのプロトコルを指す。コンピュータなどでは、コンピュータシステム内、あるいはシステム間のインタフェースや、人間と機械の間のインタフェース(ヒューマンマシンインタフェース)などがある。他分野の専門用語の借用になるが、界面という訳語がある。.

新しい!!: C++とインタフェース (情報技術) · 続きを見る »

イテレータ

イテレータ(iterator)とは、プログラミング言語において配列やそれに類似する集合的データ構造(コレクションあるいはコンテナ)の各要素に対する繰り返し処理の抽象化である。実際のプログラミング言語では、オブジェクトまたは文法などとして現れる。JISでは反復子(はんぷくし)と翻訳されている。 ジェネレータ (プログラミング) の記事も参照のこと。.

新しい!!: C++とイテレータ · 続きを見る »

エピステーメー

#エピステーメー(επιστήμη)は、知(Knowledge)または科学(Science)と訳されるギリシャ語。英語ではepisteme、フランス語ではépistémèと表記される。この項目で記述。.

新しい!!: C++とエピステーメー · 続きを見る »

オペレーティングシステム

ペレーティングシステム(Operating System、OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)のために、ソフトウェアの中でも基本的、中核的位置づけのシステムソフトウェアである。通常、OSメーカーが組み上げたコンピュータプログラムの集合として、作成され提供されている。 オペレーティングシステムは通常、ユーザーやアプリケーションプログラムとハードウェアの中間に位置し、ユーザーやアプリケーションプログラムに対して標準的なインターフェースを提供すると同時に、ハードウェアなどの各リソースに対して効率的な管理を行う。現代のオペレーティングシステムの主な機能は、ファイルシステムなどの補助記憶装置管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、更にはGUIなどのユーザインタフェース、TCP/IPなどのネットワーク、などがある。オペレーティングシステムは、パーソナルコンピュータからスーパーコンピュータまでの各種のコンピュータや、更にはスマートフォンやゲーム機などを含む各種の組み込みシステムで、内部的に使用されている。 製品としてのOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)が、マーケティング上の理由などから一緒に含められていることもある。 OSの中で、タスク管理やメモリ管理など特に中核的な機能の部分をカーネル、カーネル以外の部分(シェルなど)をユーザランドと呼ぶ事もある。 現代の主なOSには、Microsoft Windows、Windows Phone、IBM z/OS、Android、macOS(OS X)、iOS、Linux、FreeBSD などがある。.

新しい!!: C++とオペレーティングシステム · 続きを見る »

オーバーライド

ブジェクト指向プログラミングにおいてオーバーライド (override)とは、スーパークラスで定義されたメソッドをサブクラスで定義しなおし、動作を上書きすることである。 あるクラスBaseにメソッドprintがあり、あるクラスDerivedがクラスBaseを継承したとする。そのとき、クラスDerivedはクラスBaseにあるメソッドprintをオーバーライドすることにより、再定義することができる。これはオブジェクト指向プログラミングにおけるポリモーフィズムを実現する際によく使われる。 オーバーライドを可能とする条件として、引数の型と数が統一されている必要がある。 メソッドのオーバーロード(多重定義、)と混同されることがあるが、まったく異なる概念である。 ※Rubyのようにオーバーロードの概念がなく、引数の型や数の条件がなくメソッド名が同一なだけでオーバーライドが成立する言語もある。.

新しい!!: C++とオーバーライド · 続きを見る »

オブジェクトファイル

ブジェクトファイル またはオブジェクトコード とは、コンパイラがソースコードを処理した結果生成される、コード生成の結果であるバイナリコードを含む中間的なデータ表現のファイルである。中身は、機械語バイナリとそれに付随するシンボルテーブルやリロケーションテーブルといった付加情報であり、さらにデバッグ支援情報や近年はリンク時最適化等のための高度な情報が含まれる場合もある。オブジェクトファイル群をリンクすることによって最終的な実行ファイルやライブラリが作成される。オブジェクトファイルのほとんどは機械語である(コンピュータのCPUが直接実行できるコード)。オブジェクトファイルフォーマットはコンパイラやアセンブラが生成するオブジェクトファイルのファイルフォーマットである。.

新しい!!: C++とオブジェクトファイル · 続きを見る »

オブジェクト指向

ブジェクト指向(オブジェクトしこう)とは、オブジェクト同士の相互作用として、システムの振る舞いをとらえる考え方である。英語の object-oriented (直訳は、「対象物志向の」「目的重視の」という意味の形容詞) の日本語訳である。 オブジェクト指向の枠組みが持つ道具立ては、一般的で強力な記述能力を持つ。複雑なシステム記述、巨大なライブラリ(特に部品間で緊密で複雑な相互関係を持つもの)の記述においては、オブジェクト指向の考え方は必須である。.

新しい!!: C++とオブジェクト指向 · 続きを見る »

オブジェクト指向プログラミング

ブジェクト指向プログラミング(オブジェクトしこうプログラミング、)は、コンピュータ・プログラミングのパラダイムのひとつで、オブジェクト指向の概念や手法を取り入れたものである。プログラムを、データとその振舞が結び付けられたオブジェクトの集まりとして構成する、などといった特徴がある。このパラダイムを指向しているプログラミング言語がオブジェクト指向プログラミング言語である。.

新しい!!: C++とオブジェクト指向プログラミング · 続きを見る »

カプセル化

プセル化(カプセルか、)とは、オブジェクト指向を構成する概念の一つ。オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、オブジェクトの実際の型を隠蔽したりすることをいう。データ隠蔽と勘違いされやすいが、データ隠蔽はカプセル化の具体例の1つにすぎず、同一のものではない。.

新しい!!: C++とカプセル化 · 続きを見る »

キーワード (C++)

ーワード (C++)は、プログラミング言語の1つであるC++のキーワード(予約語を参照)に関する説明。この項目は、プログラムの細かい説明には立ち入らず、他の言語と比較できるような説明を目的としている。.

新しい!!: C++とキーワード (C++) · 続きを見る »

クラス (コンピュータ)

ラス()は、クラスベースのオブジェクト指向においてオブジェクトの設計図にあたるもの。抽象データ型の一つ。クラスから生成したオブジェクトのことをインスタンスという。 クラスには、インスタンスの保持するデータ(メンバ変数、フィールド(UMLでは「属性」ともいう))と操作(メソッド、メンバ関数)が記述される。 クラスは、継承・ポリモーフィズム・カプセル化などの、オブジェクト指向プログラミングにおける重要な概念を実現する強力な手段である。.

新しい!!: C++とクラス (コンピュータ) · 続きを見る »

グラフィカルユーザインタフェース

GUIを提供するソフトウェアの1つ、GNOME グラフィカルユーザインタフェース('''G'''raphical '''U'''ser '''I'''nterface、GUI)は、コンピュータグラフィックスとポインティングデバイスなどを用いる、グラフィカル(ビジュアル)であることを特徴とするユーザインタフェース。キャラクタユーザインタフェース (CUI) やテキストユーザインタフェース (TUI) と対比して語られることが多い。.

新しい!!: C++とグラフィカルユーザインタフェース · 続きを見る »

コメント (コンピュータ)

緑で示されているのが'''コメント'''である。 コメント()とは、コンピュータ言語(プログラミング言語やデータ記述言語)によって書かれたソースコードのうち、人間のために覚えとして挿入された注釈のことである。この部分はコンピュータが処理を行うときにはないものとして無視されるため、自由に文を挿入することができる。.

新しい!!: C++とコメント (コンピュータ) · 続きを見る »

コンパイラ

ンパイラ(英:compiler)とは、コンピュータ・プログラミング言語の処理系(言語処理系)の一種で、高水準言語によるソースコードから、機械語に(あるいは、元のプログラムよりも低い水準のコードに)変換するプログラムである。.

新しい!!: C++とコンパイラ · 続きを見る »

コンテナ (データ型)

ンピュータプログラミングにおいて、コンテナとはオブジェクトの集まりを表現するデータ構造、抽象データ型またはクラスの総称である。コレクションとも言う。コンテナには複数の種類があり、それぞれ独自の方法でオブジェクトを組織的に格納する。 よく知られたものには、.

新しい!!: C++とコンテナ (データ型) · 続きを見る »

シリコングラフィックス

リコングラフィックス(Silicon Graphics International Corp.、略称:SGI、NASDAQ:)は、業務用コンピュータの開発・製造・販売を行うアメリカの企業である。本拠地はカリフォルニア州マウンテンビューに置かれていたが、2009年にサンノゼが本社所在地となった。 元々は、1982年にSilicon Graphics, Inc.として設立された。 コンピュータグラフィックスに特化した最先端の製品を開発し続け、コンピュータグラフィックス全般に絶大な影響を与えた企業である。同社のCGワークステーションは、1990年代までは世界最高の性能を堅持していた。特に、大規模な商業映画におけるCG制作でデファクトスタンダードとして扱われていたことは有名である。現在も世界中のIT端末で使われているOpenGLは、同社のCGワークステーション向けに開発されたIRISGLがオープン化されたAPIである。 2000年代に入り画像処理分野にも安価で十分な性能を持つx86アーキテクチャが普及すると、高価で大して性能面の優位性もない上に互換性もない自社専用アーキテクチャの開発を停止した。x86アーキテクチャへの転換により画像処理分野における優位性が失われたため、科学技術計算用の大型計算機を中心としたビジネスに移行した。 2009年4月1日、連邦倒産法第11章の適用を申請して倒産。同日、Rackable Systems社による事業買収の合意が発表された。5月8日にRackable Systems社による買収が完了、5月18日にRackable Systems社は社名を「Silicon Graphics International Corp.(SGI)」へと変更した(NASDAQのティッカーシンボルもRACKからSGIに変更)。 2016年11月1日、ヒューレット・パッカード・エンタープライズ (HPE) による買収が完了し、公開会社としてのSGIは廃止された。買収金額は2億7500万ドルであった。 日本法人に日本SGIがある。2001年に日本SGIがNECの出資を受けてSGIより独立したが、2011年に再度、SGIの100%子会社となった。2016年にはHPEの傘下となった。.

新しい!!: C++とシリコングラフィックス · 続きを見る »

ジョージ・オーウェル

ョージ・オーウェル(、1903年6月25日 - 1950年1月21日)は、イギリスの作家、ジャーナリスト。生誕地はイギリス植民地時代のインド。本名はエリック・アーサー・ブレア()。エリック・ブレアとも。全体主義的ディストピアの世界を描いた『1984年』の作者で知られる。『1984年』のような世界を描いた監視管理社会を「オーウェリアン」(Orwellian)と呼ぶ。 『1984年』は、1998年にランダム・ハウス、モダン・ライブラリーが選んだ「英語で書かれた20世紀の小説ベスト100」、2002年にノルウェー・ブック・クラブ発表の「史上最高の文学100」に選ばれ、オーウェルは20世紀のイギリス文化における最高の記録保持者とみなされている。.

新しい!!: C++とジョージ・オーウェル · 続きを見る »

ジェネリックプログラミング

ェネリック(総称あるいは汎用)プログラミング(generic programming)はデータ形式に依存しないコンピュータプログラミング方式である。.

新しい!!: C++とジェネリックプログラミング · 続きを見る »

スレッド (コンピュータ)

レッド(thread)とは、CPU利用の単位。プロセスに比べて、プログラムを実行するときのコンテキスト情報が最小で済むので切り替えが速くなる。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。 プログラミングの観点からみると、アプリケーションの処理の「実行の脈絡」は1つでないことが多い。これをシングルスレッドで実現しようとするとシグナルやタイマーを駆使してコーディングすることになる。また、複数のプロセスに分割してプロセス間通信で協調動作させるという方法もある。しかし、いずれの場合もそれらの機能を使うための余分な、本来のアルゴリズムと関係ないコーディングが必要となる。スレッドを使用したプログラミングは本来のアルゴリズムに集中しやすくなり、プログラムの構造が改善されるという効果がある。.

新しい!!: C++とスレッド (コンピュータ) · 続きを見る »

ソフトウェアテスト

フトウェアテスト()は、コンピュータのプログラムから仕様にない振舞または欠陥(バグ)を見つけ出す作業のことである。ソフトウェアテストで見つかったプログラム中の欠陥を修正する作業をデバッグという。ソフトウェアテストに成功するとは、テストで欠陥が発見されるか、規定した試験項目にすべて合格するか、規定した品質目標に到達することである。目標とした品質には、規定した試験項目にすべて合格することもある。例えば、OS, プログラミング言語では、仕様を満たしているかどうかの適合試験を規定している。ソフトウェアテストでは、欠陥が存在することを示すことはできるが、欠陥が存在しないことは証明できない。ソフトウェアに仕様にない振舞がないことを保証する作業を証明といい、証明用のシステム、証明しやすい言語も多数存在している。本項では動的なソフトウェアテストを中心に扱う。.

新しい!!: C++とソフトウェアテスト · 続きを見る »

入出力

入出力(にゅうしゅつりょく、input/output)は、データなどの「ものごと」の流れにおける出入りのことで、入力と出力の2つを総称した概念のことである。input/outputの頭文字をとってI/Oと略される。.

新しい!!: C++と入出力 · 続きを見る »

動的メモリ確保

動的メモリ確保 (動的メモリアロケーション・動的メモリ割り当て・dynamic memory allocation) とは、メモリ管理のひとつである、プログラムを実行しながら、並行して必要なメモリ領域の確保と解放を行う仕組みである。 メモリの利用状況は、自身の実行状況や他のプログラムの実行状況に応じて常に変動するため、それらの動作に支障を来さぬよう必要なメモリ領域を適切なアドレスに対して臨機応変に確保・解放を行う必要がある。.

新しい!!: C++と動的メモリ確保 · 続きを見る »

国際化と地域化

情報処理における国際化と地域化(こくさいか と ちいきか)は、ソフトウェアを開発した環境とは異なる環境、特に外国や異文化に適合させる手段である。 国際化(internationalization internationalisation、i18n) は、ソフトウェアに技術的な変更を加えることなく多様な言語や地域に適合できるようにする、ソフトウェア設計の工程である。 地域化(localization localisation、L10N)は、地域固有の構成部品や翻訳テキストを追加することによって、ソフトウェアを特定の地域や言語に適合させる工程である。 かつては、ソフトウェアの地域化や多言語化のために必要に応じて技術的な変更が行われてきた。しかし、このようなやり方ではソフトウェアの規模拡大や対応する言語が多くなるに従い、開発や保守に多くの時間と費用がかかるため対応が難しい。1990年代にプログラミング言語やオペレーティングシステムの国際化対応が標準化されると、ソフトウェアを予め国際化することにより、地域固有データの追加や最小限の変更で地域化が行われるようになった。 両者の概念は時々集合的にグローバライゼーション (globalization、G11N) と呼ばれる。ただし、この言葉はソフトウェア工学の範囲を越えて社会的な国際化の意味で使われることも多い。.

新しい!!: C++と国際化と地域化 · 続きを見る »

国際電気標準会議

国際電気標準会議(こくさいでんきひょうじゅんかいぎ、International Electrotechnical Commission、IEC)は、電気工学、電子工学、および関連した技術を扱う国際的な標準化団体である。国際規格作成のための規則群(Directives)、規格適合(ISO/IEC 17000シリーズ)、IT技術(ISO/IEC JTC1)など一部は国際標準化機構(ISO)と共同で開発している。公用語は、英語とフランス語。.

新しい!!: C++と国際電気標準会議 · 続きを見る »

国際標準化機構

国際標準化機構(こくさいひょうじゅんかきこう、International Organization for Standardization)、略称 ISO(アイエスオー、イソ、アイソ)は、各国の国家標準化団体で構成される非政府組織である。 スイス・ジュネーヴに本部を置く、スイス民法による非営利法人である。1947年2月23日に設立された。国際的な標準である国際規格(IS: international standard)を策定している。 国際連合経済社会理事会に総合協議資格(general consultative status)を有する機関に認定された最初の組織の1つである。.

新しい!!: C++と国際標準化機構 · 続きを見る »

BASIC

BASIC(ベーシック)は手続き型プログラミング言語のひとつ。 名前は「beginner's all-purpose symbolic instruction code」(「初心者向け汎用記号命令コード」を意味する)のバクロニムである。.

新しい!!: C++とBASIC · 続きを見る »

BCPL

BCPL (Basic Combined Programming Language、Basic-CPL)は1966年にケンブリッジ大学のマーティン・リチャーズ (Martin Richards)が設計したプログラミング言語である。.

新しい!!: C++とBCPL · 続きを見る »

B言語

B言語(ビーげんご)は、AT&Tベル研究所のケン・トンプソン (Ken Thompson) によって開発されたプログラミング言語である。ケン・トンプソンがデニス・リッチー(Dennis Ritchie)監修の元で設計し、1969年頃に登場した。.

新しい!!: C++とB言語 · 続きを見る »

Boost

Boost (ブースト)とは、C++の先駆的な開発者のコミュニティ、およびそのコミュニティによって公開されているオープンソースライブラリのことを指す。コミュニティとしてのBoostはC++標準化委員会の委員により設立されており、現在でもその多くが構成員として留まっている。このような経緯もあり、BoostコミュニティはC++の標準化において大きな影響力を有している。実際に標準化委員会が発表した「TR1」の2/3以上がBoostライブラリを基にしている。Random, Regex, ThreadなどはいずれもC++11規格の標準ライブラリとして正式に導入・標準化されている。このことから、Boostは考案された新機能を標準化させる前の試験運用の場であるとも言える。 Boostで公開されるライブラリはコミュニティの公開レビューによって精選されている。Boostを使用して作成したプログラムは、商用、非商用を問わず無償のの下でライセンスされる。 Boostはテンプレートなどを活用して積極的にメタプログラミングやジェネリックプログラミングの技法を取り入れて行く傾向がある。そのためBoostライブラリの利用者にはC++の現代的な記述に慣れていることを要求される。 。.

新しい!!: C++とBoost · 続きを見る »

C Sharp

C#(シーシャープ)は、アンダース・ヘルスバーグが設計(デザイン)したプログラミング言語であり、構文(syntax)は(名前にもある通り)C言語や、C言語風に構文が設計されたC++やJavaなどの影響があるが、構文以外についてはヘルスバーグが以前の所属であるBorlandで設計したDelphiからの影響がある。 Microsoftによる謳い文句としては、マルチパラダイムプログラミング言語、強い型付け、命令型、宣言型、手続き型、関数型、ジェネリック、オブジェクト指向の要素を持つ、などといった点が強調されている。 CLIといった周辺も含め、Microsoftのフレームワーク「.NET Framework」の一部である他、VJ++で「非互換なJava」をJavaに持ち込もうとしたような以前のMicrosoftとは異なり、その多くの仕様を積極的に公開し標準化機構に託して自由な利用を許す(ECMA-334、ISO/IEC 23270:2003、JIS X 3015)など、同社の姿勢の変化があらわれている一面でもある(実際に「Mono」という、フリーソフトウェアの定義に合致したライセンスの、コミュニティによる実装がある)。.

新しい!!: C++とC Sharp · 続きを見る »

C++ Builder

C++ Builder(C++ビルダー)は、エンバカデロ・テクノロジーズのC/C++統合開発環境 (IDE) である。同社の代表製品である「Delphi」のC/C++版とも言えるRADツールで、Delphiと同様に構成部品を貼り付けていくようなユーザインタフェース (UI) 設計を可能としている。元々はボーランド(インプライズ)で開発され、コードギアへ移管、同社の買収に伴って現在へ至る。ボーランド社の時代は、Borland C++ Builder(ボーランド C++ビルダー; BCB)とも呼ばれていた。.

新しい!!: C++とC++ Builder · 続きを見る »

C++ Technical Report 1

C++ Technical Report 1 (TR1、Technical Report on C++ Library Extensions)は、ISO/IEC TR 19768:2007 の非公式名称で、標準C++ライブラリの拡張についての標準規格である。これには正規表現、スマートポインタ、ハッシュ表、擬似乱数生成器などが含まれている。TR1の目標は「拡張された標準C++ライブラリの使用方法について慣習を確立してほしい」とのことである。.

新しい!!: C++とC++ Technical Report 1 · 続きを見る »

C++/CLI

C++/CLIは、.NET Frameworkの共通言語基盤 (CLI)上で実行するプログラムを作るためにC++を拡張したプログラミング言語である。前身であるC++マネージ拡張に比べて単純でわかりやすい構文になり、可読性も向上している。 C++/CLIはEcma Internationalで標準化されている。C++/CLIに対応したコンパイラとしてVisual C++ 2005以降がある。ほかにもClang上で実装する試みも存在する。.

新しい!!: C++とC++/CLI · 続きを見る »

C++11

C++11は、プログラミング言語 C++ のISO標準 ISO/IEC 14882:2011 の略称である。規格の策定中は2009年中の標準化を目指していたため、C++0x という仮称で呼ばれていた。 ISO/IEC 14882:2003 (C++03) に代わるものとして、2011年8月12日にISOによって承認された。後継のC++14が2014年8月18日に承認されている。 コア言語への機能追加や標準C++ライブラリの拡張を施し、C++TR1ライブラリの大部分を(数学的特殊関数ライブラリを除いて)取り込んでいる。.

新しい!!: C++とC++11 · 続きを見る »

C++14

C++14 は、プログラミング言語 C++ のISO標準 ISO/IEC 14882:2014 の略称である。C++11 の後継であり、マイナーアップデートの位置付けとなっている。C++11 が2009年中の標準化を目指していたため C++0x と呼んでいたのを受けて、C++14 は制定中は C++1y という仮称で呼ばれていた。 委員会草案 N3690 が2013年5月15日に発表され、作業草案 N3936 が2014年3月2日に発表され、投票が2014年8月15日までに行われ、その結果が2014年8月18日に発表され承認され、2014年12月15日に出版された。.

新しい!!: C++とC++14 · 続きを見る »

C++17

C++17は、プログラミング言語C++の国際規格ISO/IEC 14882:2017の略称である。.

新しい!!: C++とC++17 · 続きを見る »

C11 (C言語)

C11 (旧名は C1X) とは、C言語の現行規格であるISO/IEC 9899:2011の通称で、その前の規格であったC99の後継である。新しい規格であるC11では、複数実行スレッドのサポートを改善する詳細なメモリモデルなどの、一般的な現代のコンパイラでサポート済みの機能を主に規格化している。C99の実装では適合が遅れたため、C11では中核となる言語規格に準拠し易いよう特定の機能をオプションにしている。 2011年4月にC11の最終ドラフトであるN1570が発行され、2011年10月10日に新しいC11規格はその最終ドラフトレビューをパスして公式にISOによって承認された。それから2011年12月8日に参加国による決議が必要な批評もなく、ISO/IEC 9899:2011として発行された。 標準マクロである__STDC_VERSION__には、C11のサポートが利用可能であることを表すため201112Lという値が定義されている。C11の機能のいくつかは、GCCではバージョン4.6から、Clangではバージョン3.1から、そしてではバージョン12.1からサポートが開始されている。.

新しい!!: C++とC11 (C言語) · 続きを見る »

C99

C99は、ISOで定められたC言語の規格である。正式な規格名は ISO/IEC 9899:1999。.

新しい!!: C++とC99 · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: C++とC言語 · 続きを見る »

Cfront

Cfront(シーフロント)はビャーネ・ストロヴストルップが1983年頃に開発したC++コンパイラの元祖であり、後の"C with Classes"である。C++のソースコードをC言語にコンパイルした。プリプロセッサはソースコードをプログラミング言語として解釈せず文字列を変換するものに過ぎないが、Cfrontは完全なパーサを搭載し、 シンボルテーブルを構築し、クラスや関数のツリーを構築する。 Cfrontはそれ自体がC++で記述されている。当初はC++コンパイラ自体が存在しておらずブートストラップ問題があった。C++で記述されたCfrontのソースコードを提供するのと同時に、そのCfrontでコンパイルしてC言語に変換した「半分処理済み」の特別バージョンも提供された。このコードはネイティブなC言語コンパイラでコンパイルでき、C++で記述されたCfrontのコードをコンパイルできる実行ファイルを出力できた。 Cfrontを新しいマシンに移植する際には特に標準入出力周りの部分が問題になった。C++のストリームはC言語標準ライブラリのバッファつきI/Oストリームに強く依存していたが、C言語のその他のライブラリとは関連性が弱かった。System V系のシステムへの移植は若干の手直しで動作したが、BSD系ではC言語のライブラリや関連する標準入出力の構造体に方言が多いためより多くの修正が必要だった。 Cfrontは1990年頃までそれ自体が言語規格そのものであり、C++は「C++からC言語へのコンバータ」に過ぎず非常にマイナーな存在だった。今日のC++にはCfrontのコンバータとしての名残がまだある。名前修飾は当時の比較的原始的なリンカがシンボルの型情報をサポートしなかったことからCfrontで実装されたものであり、また一部のテンプレートのインスタンス化に関する仕様もCfrontの初期の試行錯誤から発展したものである。 C++(およびCfront)は、タイプチェックやweak symbol(同じシンボルがある場合はweak symbolが無視される)などのような機能をリンク時に必要とする言語として初めて広く普及し、Unixにおけるリンカとオブジェクトファイルのファイルフォーマットの発展に重要な役割を直接的に果たした。 例外処理の完成を見ずにCfront 4.0は途中放棄され、現在では販売されていないようである。C++はCfrontの限界を超えた言語に成長してしまったが、同様のアプローチを取りつつより標準に準拠したComeau C/C++が後に登場した。.

新しい!!: C++とCfront · 続きを見る »

Clang

Clang (:クランのように発音)は、プログラミング言語 C、C++、Objective-C、Objective-C++ 向けのコンパイラフロントエンドである。バックエンドとして LLVM を使用しており、LLVM 2.6以降は LLVM の一部としてリリースされている。 プロジェクトの目標は、GNUコンパイラコレクション (GCC) を置き換えることのできるコンパイラを提供することである。開発は完全にオープンソースの方法で進められており、アップルやGoogleといった大企業も参加・資金提供している。ソースコードは、ライセンスで提供されている。 macOSおよびiOS(ともにXcodeの付属として)、ならびにFreeBSDにおいて標準のコンパイラとして採用されている。 Clang プロジェクトではコンパイラのフロントエンドに加えてClang静的コード解析ツールも開発している。.

新しい!!: C++とClang · 続きを見る »

CLU

CLU は、1974年から1975年にかけてMITのバーバラ・リスコフが学生らと共に開発したプログラミング言語である。抽象データ型のコンストラクタ(操作コードを含む)を備えており、オブジェクト指向プログラミングへの重要なステップとなった。しかし、それ以外のオブジェクト指向の機能は欠けているか不完全であり、継承もなく、文法が扱いにくいことが欠点であった。CLU と Alphard はどちらも完全なオブジェクト指向言語となる可能性を秘めていたが、実際にはそうならなかった。.

新しい!!: C++とCLU · 続きを見る »

米国国家規格協会

米国国家規格協会(べいこくこっかきかくきょうかい、)は、アメリカ合衆国の国内における工業分野の標準化組織であり、公の合意形成のためにさまざまな規格開発を担っている。 略称はANSI(アンシ、アンジ、アンシー)。訳は米国国家標準協会とも。また、元は旧称 (ASA) の訳だった米国規格協会・米国標準協会とも呼ばれる。本部はワシントンD.C.にあるが、事務局はニューヨークにある。 電子工業会 (EIA)、電気通信工業会 (TIA) などの国内規格作成団体による仕様を承認し、ANSI規格とする。 ANSI規格は、日本の日本工業規格 (JIS) に相当するとされる。ただし、政府(大臣)が制定する規格であるJISと違い、ANSI規格を制定するのは政府から独立した私的な非営利組織のANSIである。 国際標準化機構 (ISO) 設立メンバーであり、ISO、国際電気標準会議 (IEC)、国際認定フォーラム (IAF) にアメリカ代表として参加している。アメリカの国内規格機関ではあるが、ISO等の規格に先だって決まることも多く、ANSI規格がISO規格になることも多い。また、製造業における国際標準化団体としてIPC (エレクトロニクス)があるが、ANSIの標準開発組織として正式に認可されている。ASCIIの文字コード規格 (X.34) が、ISO646になるなどの例がある。.

新しい!!: C++と米国国家規格協会 · 続きを見る »

継承 (プログラミング)

継承(けいしょう、inheritance:インヘリタンス)とはオブジェクト指向を構成する概念の一つである。あるオブジェクトが他のオブジェクトの特性を引き継ぐ場合、両者の間に「継承関係」があると言われる。 主にクラスベースのオブジェクト指向言語で、既存クラスの機能、構造を共有する新たなクラスを派生することができ(サブクラス化)、そのようなクラスは「親クラス(スーパークラス)を継承した」という。具体的には変数定義や操作(メソッド)などが引き継がれる。またJavaのインタフェース継承のように機能セットの仕様のみを引き継ぐ場合もある。 一般的に、BがAを継承する場合、B is a A. (BはAの一種である)という意味的な関係(Is-a関係)が成り立つ。従って、同じふるまいを持つからと言って、意味的に無関係なクラス間に継承関係を持たせるのは適切でない場合が多い。 プロトタイプベースのオブジェクト指向言語(Self、NewtonScript等)のように「クラス」という概念を持たない場合でも、クローン元となるオブジェクトを指して「継承」と呼ぶ。 継承と類似の概念に「委譲」があるが、継承では一度定まった継承関係は通常変更されないのに対して、委譲対象は必要に応じて変更されうるものである。 Is-a関係を持つ継承とは階層が異なる概念として集約 (aggregation) とコンポジション集約 (composition) があるが、これはクラス間の関係がHas-aである包含関係であり、クラス間の関係は継承よりも疎である。.

新しい!!: C++と継承 (プログラミング) · 続きを見る »

D言語

D言語(ディーげんご、D programming language)は、プログラミング言語のひとつ。C言語をベースとしABI互換を保ちつつも、テンプレートによるジェネリックプログラミングやオブジェクト指向プログラミング、関数型プログラミングなどをサポートするマルチパラダイムプログラミング言語である。.

新しい!!: C++とD言語 · 続きを見る »

Embedded C++

Embedded C++(エンベデッドシープラスプラスorエンベッディドシープラスプラス)はプログラミング言語の一種である。EC++と略記される。.

新しい!!: C++とEmbedded C++ · 続きを見る »

Extensible Markup Language

Extensible Markup Language(エクステンシブル マークアップ ランゲージ)は、基本的な構文規則を共通とすることで、任意の用途向けの言語に拡張することを容易としたことが特徴のマークアップ言語の総称である。一般的にXML(エックスエムエル)と略称で呼ばれる。JISによる訳語は「拡張可能なマーク付け言語」。 SGMLからの移行を目的として開発された。文法はSGMLの構文解析器と互換性を保つようにSGMLのサブセットに定められシンプルになり、機能はSGMLに無いものが追加されている。 XML の仕様は、World Wide Web Consortium (W3C) により策定・勧告されている。1998年2月に XML 1.0 が勧告された。2010年4月現在、XML 1.0 と XML 1.1 の2つのバージョンが勧告されている(#バージョン)。 ちなみに、「eXtensible Markup Language の略である」と書かれることがあるが、これは間違いであり、XはExの発音を表している。.

新しい!!: C++とExtensible Markup Language · 続きを見る »

静的型付け

静的型付け(せいてきかたづけ、static typing)とは、プログラミング言語で書かれたプログラムにおいて、変数や、サブルーチンの引数や返り値などの値について、その型が、コンパイル時など、そのプログラムの実行よりも前にあらかじめ決められている、という型システムの性質のことである。 また、そのような性質の言語を、静的型付き言語(せいてきかたつきげんご、statically typed language)という。これに対し、型は実行時の実際の値による、というのが動的型付けである。型推論を利用していて、構文上は型の記述が省略可能な言語もあるが、そういった言語も静的型付けである(MLなど)。 一口に静的型と言ってもその実体は言語により様々である。手続き型のオブジェクト指向言語の多くでは、静的に型が付いていても、キャストなどによりインスタンスの妥当性は保証されない。より制限の強い言語であっても、ミュータブルな値により不正参照などのリスクが残されている。また静的型でもリフレクションを多用する設計を行なうと、実質的に動的型とほとんど変わらないスタイルになることから、静的と動的の境目は必ずしも明確でない場合があるといえる。 一般的な傾向として、大規模プログラミングやシステム記述用の言語は静的な型付けを行なうものが多い。.

新しい!!: C++と静的型付け · 続きを見る »

表明

表明(ひょうめい、assertion)とは、プログラミングにおける概念のひとつであり、そのプログラムの前提条件を示すのに使われる。アサーションとも呼ばれる。表明は、プログラムのその箇所で必ず真であるべき式の形式をとる。多くの言語ではそのような前提条件のチェックに表明を使用するが、設計上の判断を文書化するのに使う場合もある。表明が偽となった場合、プログラムにバグが潜在していることを示している。これを「表明違反; assertion failure」と呼ぶ。表明を言語構文や標準ライブラリとしてサポートするプログラミング言語も存在する。 プログラマは、開発過程でソースコードに表明を追加する。デバッグを単純化し、問題を早期に検出するためである。表明違反はバグを示していることが多いため、表明の実装では問題の元を示すために追加情報を表示するようになっていることが多い(ソースコードのファイル名と行番号、スタックトレースなど)。ほとんどの実装では、そのプログラムの実行が即座に停止する。.

新しい!!: C++と表明 · 続きを見る »

関数型言語

関数型言語(かんすうがたげんご、functional language)は、以下に述べる関数型プログラミングを基本スタイルとして推奨する機能を持つプログラミング言語、関数型プログラミング言語の略称である。.

新しい!!: C++と関数型言語 · 続きを見る »

連結リスト

連結リスト(れんけつリスト、Linked list)は、最も基本的なデータ構造の1つであり、他のデータ構造の実装に使われる。リンクリスト、リンクトリストとも表記される。 一連のノードが、任意のデータフィールド群を持ち、1つか2つの参照(リンク)により次(および前)のノードを指している。連結リストの主な利点は、リスト上のノードを様々な順番で検索可能な点である。連結リストは自己参照型のデータ型であり、同じデータ型の別のノードへのリンク(またはポインタ)を含んでいる。連結リストは場所が分かっていれば、ノードの挿入や削除を定数時間で行うことができる(場所を探すのにかかる時間はリスト上の順番の条件などにも依存するし、後述する片方向リストなのか双方向リストなのかにも依存する)。連結リストにはいくつかの種類があり、片方向リスト、双方向リスト、線形リスト、循環リストなどがある。 連結リストは多くのプログラミング言語で実装可能である。LISP や Scheme 、Prologといった言語は組み込みでこのデータ構造を持っていて、連結リストにアクセスするための操作も組み込まれている。手続き型やオブジェクト指向型の言語(C言語、C++、Java)では、連結リストを作るには mutable(更新可能)な参照を必要とする。.

新しい!!: C++と連結リスト · 続きを見る »

連想配列

連想配列(れんそうはいれつ、associative array.)とは、コンピュータプログラミングにおいて、添え字にスカラー数値以外のデータ型(文字列型等)も使用できる配列である。抽象データ型のひとつ。連想リスト、連想コンテナ、辞書(あるいはカタカナでディクショナリ dictionary)、ハッシュ(hash)、マップ(map)とも呼ばれる。 歴史的には、最初に LISP の連想リストとして広く認知された。その後、SNOBOL で table として、AWK で連想配列として実装したことで、その潜在能力がさらに広く知られるようになった。現在、Ruby など一部の言語では、添え字にはどのようなデータでも使えるものもある。.

新しい!!: C++と連想配列 · 続きを見る »

FORTRAN

FORTRAN(フォートラン)は、1954年にIBMのジョン・バッカスによって考案された、コンピューターにおいて広く使われた世界最初の高級言語である。.

新しい!!: C++とFORTRAN · 続きを見る »

GLR法

GLR法または一般化LR法(英: GLR parser)とは、非決定的で曖昧な文法を扱うようLR法を拡張したもの("Generalized LR parser")である。1986年、冨田勝が発表した。冨田法、並列構文解析法とも呼ばれる。 元々の形から進化し続けているが、その基本は変わっていない。冨田は自然言語を完全かつ効率的に構文解析することを目標としている。標準のLR法では自然言語の非決定的で曖昧な性質に対処できないが、GLR法では可能である。.

新しい!!: C++とGLR法 · 続きを見る »

GNUコンパイラコレクション

GNU Compiler Collection(グニューコンパイラコレクション)は、GNUのコンパイラ群である。略称は「GCC(ジーシーシー)」。GNUツールチェーンの中核コンポーネント。.

新しい!!: C++とGNUコンパイラコレクション · 続きを見る »

Hello world

Hello world(ハロー・ワールド)は、画面に「Hello, World!」に類する文字列を表示するプログラムの通称である。多くのプログラミング言語において非常に単純なプログラムであり、プログラミング言語の入門書で、プログラムを動かすためのプログラミング言語の基本文法の解説例として提示される。.

新しい!!: C++とHello world · 続きを見る »

Intel C++ Compiler

Intel C++ Compiler (インテル シープラスプラス コンパイラ)とはインテルが開発・販売しているC++コンパイラである。日本での販売・サポートはXLsoftが行なっている。略称はICC、あるいはICL(それぞれ、Linux/macOS用およびWindows用コンパイラの実行プログラム名にもとづいている)。.

新しい!!: C++とIntel C++ Compiler · 続きを見る »

Java

Java(ジャバ)は、狭義ではプログラミング言語Javaを指す。広義では言語仕様以外にも、仕様が与えられているJavaクラスライブラリやJava仮想マシン、さらにはJDKやJREなどの公式のものをはじめとする、場合によってはサードパーティのものなどを含め曖昧にJavaプラットフォームと総称されるようなものなどのエコシステムなどを指すこともある。構文についてはJavaの文法の記事を参照。.

新しい!!: C++とJava · 続きを見る »

JavaとC++の比較

JavaとC++の比較(ジャバとシープラスプラスのひかく)の記事では、JavaとC++の比較について説明する。.

新しい!!: C++とJavaとC++の比較 · 続きを見る »

LALR法

LALR法(LALR parser)は、構文解析手法の一種であり、Lookahead(先読み)LR法の略である。単純LR法(SLR法)の構文解析器よりも多くの文脈自由文法を扱うことができる。構文解析表の大きさがあまり大きくなく、多くの文法を扱えることから、最も一般的な構文解析器となっている。yacc や GNU bison といったパーサジェネレータの多くもこの種の構文解析器を生成する。 SLR法と同様、LALR法では LR(0) の構文解析表を必要とする。SLR 法では Follow-set を使って reduce アクションを構築するのに対して、LALR法では Lookahead-set を使う。Lookahead-set は構文解析により特化している。Follow-set は関連する記号の集合だが、Lookahead-set はLR(0)アイテムと構文解析状態に特化した集合である。 ある LR(0) 文法での状態 S におけるアイテム I の Follow-set は、文法上 I の左辺の非終端記号の後に出現可能な全記号を含む。一方、状態 S におけるアイテム I の Lookahead-set は、状態 S で構文解析を開始したときの I の右辺に出現可能な記号のみを含む。follow(I) は左辺が同じ I である全 LR(0)アイテムの Lookahead-set の和集合と等価であり、状態やアイテムの右辺は考慮されていない。従って、Follow-set からは文脈情報が失われている。Lookahead-set は特定の構文解析向けであるため、さらに選別が可能で、Follow-set よりも詳細な識別が可能となる。.

新しい!!: C++とLALR法 · 続きを見る »

Microsoft Visual C++

Visual C++ (マイクロソフト ビジュアル シープラスプラス;マイクロソフト ヴィジュアル シープラスプラス)とはマイクロソフト製のC、C++、C++/CLI用統合開発環境 (IDE) であり、コンパイラやデバッガを含む。通称VCあるいはVC++、MSVCなど。前身はMicrosoft C/C++などである。.

新しい!!: C++とMicrosoft Visual C++ · 続きを見る »

ML (プログラミング言語)

ML(えむえる、Meta-Language)は、関数型言語のひとつである。現代風の関数型言語としては歴史が古いほうで、型推論機能などを持つが、デフォルトの評価戦略は遅延評価ではなく先行評価で、書き換えが可能なレコード型を持つなど、いわゆる「純粋関数型」でない特徴や機能を持つ。.

新しい!!: C++とML (プログラミング言語) · 続きを見る »

Pascal

Pascal(パスカル)は、ニクラウス・ヴィルトの設計(デザイン)によるコンピュータ・プログラミング言語である。ALGOL(直接的にはその一派生である、ヴィルトが関与したALGOL W)などの影響があるが、個人の設計であることに由来する簡素だがよく整った言語仕様(構文と意味)を持つ。用途の中に教育を意識しており、構造化された制御構造など、その当時「良きプログラミングの慣習」と考えられていたことの影響もある。一方で批判者からは、あくまでも教育用に過ぎない言語だ、といったような評もあることにはあったが、PascalコンパイラをPascalで書ける(いわゆる言語処理系のブートストラップ)ことをはじめ、Pascalで書かれた#実用プログラム例は多くある。名前は、哲学者・数学者・科学者で、機械式計算機を製作するなど技術者でもあったブレーズ・パスカルにあやかったものである。.

新しい!!: C++とPascal · 続きを見る »

PHP (プログラミング言語)

PHP(ピー・エイチ・ピー)は "The PHP Group" によってコミュニティベースで開発されているオープンソースの汎用プログラミング言語およびその公式の処理系であり、特にサーバーサイドで動的なウェブページ作成するための機能を多く備えていることを特徴とする。 名称の PHP は再帰的頭字語として、 "PHP: Hypertext Preprocessor" を意味するとされており、「PHPはHTMLのプリプロセッサである」とPHP自身を再帰的に説明している。.

新しい!!: C++とPHP (プログラミング言語) · 続きを見る »

Printf

printf(プリントエフ、print formatted)は、C言語の標準入出力ヘッダー (stdio.h)で宣言されている関数である。引数で与えられた書式付きの文字列を、環境によって設定された標準出力 (stdout) に出力する。JIS X 3010:2003においてその機能は「実引数にstdoutを実引数として付加したfprintf関数と等価とする」と規定されている (7.19.6.3)。 この関数は、第1引数に与えられた文字列を出力する。C言語の他の単純な入出力関数に比べ、比較的複雑な構造を持っており、第1引数の文字列のなかで書式を指定することで、第2引数以降の任意の数の引数を、書式に従って出力することができる。また、整数型(int型)の戻り値を持ち、出力に成功した場合には転送したバイト数、出力に失敗した場合には負数を返却する。.

新しい!!: C++とPrintf · 続きを見る »

Scanf

scanf(スキャンエフ)は、C言語の標準関数。stdio.h で定義されている、書式付き入力関数である。 標準入力(大抵はキーボード)からの入力を、書式に従って変数へ読み込む機能を持つ。「printf()の入力版」と考えると、わかりやすい。 ユーザからの入力を受ける機能を持つにもかかわらず、後述するようにエラーに対する考慮を何もしていないため、テストプログラムや入門書を除いてはあまり使われない。 このファミリーの関数には、入力ストリームを指定できる fscanf() や メモリ上のオブジェクトを入力対象とする sscanf() などがある。.

新しい!!: C++とScanf · 続きを見る »

Simula

SIMULA(シミュラ; SIMUlation LAnguage)は、オルヨハン・ダールとクリステン・ニガードによってALGOL60を拡張する形で1960年代に開発が始められたシミュレーション用途のプログラミング言語である。 ALGOLのbegin...

新しい!!: C++とSimula · 続きを見る »

Smalltalk

Smalltalk(スモールトーク)は、Simula のオブジェクト(およびクラス)、LISPの徹底した動的性、LOGO のタートル操作や描画機能に、アラン・ケイの「メッセージング」というアイデアを組み合わせて作られたクラスベースの純粋オブジェクト指向プログラミング言語、および、それによって記述構築された統合化プログラミング環境の呼称。 Smalltalk で一語であり、「Small Talk」「SmallTalk」などは誤りである。 大規模な開発実績としてはCargill Lynx Projectがあり、国産製品の開発実績としてはMCFrameがある。.

新しい!!: C++とSmalltalk · 続きを見る »

Standard Template Library

Standard Template Library (STL) は、プログラミング言語C++の規格で定義された標準ライブラリの一つ。ヒューレット・パッカード社在籍の研究者(当時)であったアレクサンドル・ステパノフ等によって考案され、後にANSI/ISO標準に組み込まれた。.

新しい!!: C++とStandard Template Library · 続きを見る »

SystemC

SystemC(システムシー)は、電子回路機器の機能設計への使用を目的としたハードウェア記述言語 (HDL) の一種である。SystemC登場以前より存在し、純然たるHDLであるVerilogやVHDLに比べ、動作レベルモデリングなど、よりシステム寄りの記述言語である。.

新しい!!: C++とSystemC · 続きを見る »

XUnit

xUnitとは、コンピュータプログラムの単体テスト(ユニットテスト)を行うためのテスティングフレームワークの総称である。これらのフレームワークでは、関数やクラスなど、ソフトウェアの様々な要素(ユニット)をテストすることができる。xUnitフレームワークの主な利点は、テストを自動化できること、同じテストを何度も書かずに済むこと、個々のテストの結果がどうあるべきかを覚えておかなくても良いことである。 このようなフレームワークの最初の実装は、ケント・ベックが開発したSmalltalk用のテスティングフレームワークSUnitである。その後、各コンピュータプログラム言語や開発環境毎に、同様の設計を持つフレームワークが多数作成されている。xUnitそれ自体は非常に単純なプログラムであるが、近年のソフトウェア開発で採用されつつある。JUnit(Java用のxUnit)の項目も参照。 アジャイルソフトウェア開発(エクストリーム・プログラミングなど)においては、リファクタリング・テストファースト等の前提となる重要な要素である。.

新しい!!: C++とXUnit · 続きを見る »

抽象型

フトウェア工学における抽象型(ちゅうしょうがた、abstract type)は、プログラマが宣言する nominative type system における型である。何らかの宣言された派生型のメンバーも共有するメンバーを含む抽象メソッドやプロパティを含むこともあるし、含まないこともある。多くのオブジェクト指向プログラミング言語では、抽象型を抽象基底クラス (abstract base class)、インタフェース (interface)、Trait、Mixin、flavors、rolesなどと呼ぶ。これらの名称はそれぞれ異なる言語での抽象型の実装を指している。本項目ではこれを総称して抽象クラス (abstract class) と呼ぶ。 抽象クラスの最大の特徴は、オブジェクト指向プログラミングをよりオブジェクト指向的に保つことと、その性質上それが未完成である点である。.

新しい!!: C++と抽象型 · 続きを見る »

抽象化 (計算機科学)

抽象化(ちゅうしょうか、Abstraction)は、計算機科学において詳細を捨象し、一度に注目すべき概念を減らすことおよびその仕組みである。 この概念は数学における「抽象化」からのアナロジーである。数学での抽象化技法の起源は数学的定義である。例えば、コンピュータでも数学でも、数はプログラミング言語上の概念であり、数学上の概念でもある。数の計算概念は数学の概念に基づいているため、実装の詳細はハードウェアとソフトウェアに依存したとしても、それが制約とはならない。 大まかに言えば、抽象化は制御抽象化とデータ抽象化に分けられる。制御抽象化は動作の抽象化であり、データ抽象化はデータ構造の抽象化である。例えば、構造化プログラミングでの制御抽象化とは、サブプログラムや定式化された制御フローの使用を意味する。データ抽象化とは、本来ビット列であるデータを意味のある方法で扱うことを意味する。例えば、データ型の背景にある動機は抽象化である。オブジェクト指向プログラミングはデータとコードを同時に抽象化する試みと見ることもできる。.

新しい!!: C++と抽象化 (計算機科学) · 続きを見る »

抽象データ型

抽象データ型(ちゅうしょうデータがた、abstract data type、ADT)とは、データ構造とそれを直接操作する手続きをまとめてデータ型の定義とすることでデータ抽象を実現する手法またはそのひとまとまりとして定義されたデータ型を言う。通常のデータ型であれば変数宣言で変数に束縛されるものは値であるが、抽象データ型の世界において値に相当するものはデータ構造とその操作のまとまりである。 抽象データ型を用いない場合、データ構造またはデータの操作手続きのアルゴリズムの変更を行うとソースコード中にその変更部分が散在してしまい規模によっては修正困難となるが、データとその操作がひとまとめに記載されることになる抽象データ型においては、型の定義における実装部分を変更するだけで修正が完了する。.

新しい!!: C++と抽象データ型 · 続きを見る »

構造体

構造体(こうぞうたい、structure)はプログラミング言語におけるデータ型の一つで、1つもしくは複数の値をまとめて格納できる型。それぞれのメンバ(フィールド)は型が異なっていてもよい点が配列と異なる。 C/C++やC#などでstructとしてサポートされているほか、Visual Basicのユーザ定義型や、PascalやAdaのrecord型も構造体に相当する。 クラスベースのオブジェクト指向言語では、抽象データ型としてのクラスが構造体の役割をも内包する。Cの文法を継承した言語ではstructキーワードを含むこともあるが、言語によってその役割は異なる。 例えば、C++ではアクセシビリティの初期値がpublicであることを除いては、classと同等の機能を持つことができる。 また、C#では値型として扱われる軽量なオブジェクト型を定義するためにstructキーワードを使用し、制限されたclassとして振る舞う。 同じくCの文法を継承したJavaでは、structキーワードは存在しない。 オブジェクト指向言語でないCなどでオブジェクト指向プログラミングを模倣するために構造体を使うこともある。標準ライブラリのFILE型がその典型的な例である。.

新しい!!: C++と構造体 · 続きを見る »

構文解析

構文解析(こうぶんかいせき、syntactic analysis あるいは parse)とは、文章、具体的にはマークアップなどの注記の入っていないベタの文字列を、自然言語であれば形態素に切分け、さらにその間の関連(修飾-被修飾など)といったような、統語論的(構文論的)な関係を図式化するなどして明確にする(解析する)手続きである。自然言語については自然言語処理における要点のひとつであり、プログラミング言語など形式言語の場合は、形式文法に従い構文木を得る。構文解析を行う機構を構文解析器(parser)と呼ぶ。.

新しい!!: C++と構文解析 · 続きを見る »

構文解析器

構文解析器(こうぶんかいせきき)とは、構文解析をおこなうプログラム。パーサ (parser)とも。プログラミング言語処理系の入力部分が代表的であるが、それに限らず設定ファイルの読み込みなど、構造を持った入力テキストの処理を行う。自然言語処理でも使われる。 構文解析のアルゴリズムには複雑なものも多いが、パーサジェネレータの研究は盛んであり、そういったものを使用zすれば、構文規則を記述するだけで構文解析器を自動的に生成できる(プログラムのソースコードが出力される)。.

新しい!!: C++と構文解析器 · 続きを見る »

標準化

標準化(ひょうじゅんか、英語:standardization(スタンダーダイゼーション))という用語は、文脈によって様々な意味を持つ。「標準(standard)」という用語には、相互運用のための広く合意されたガイドラインという意味が含まれ、「標準化」はそのような標準を確立する過程を指すのが一般的である。 社会科学や経済学では、「標準化」の考え方は協調ゲームの解法と近い。それぞれの利害関係者がそれぞれに何らかの利益を得つつ、全体として一貫した決定に到達する。「標準化」は、よりよい選択をし、その選択結果を標準として批准する過程である。 なお、JISにおける「標準」の定義は次のとおりである。 「関係する人々の間で利益又は利便が公正に得られるように、統一し、単純化を図る目的で、もの(生産活動の産出物)及びもの以外(組織、責任権限、システム、方法など)について定めた取決め。 」 (JIS Z 8002:2006).

新しい!!: C++と標準化 · 続きを見る »

標準C++ライブラリ

標準C++ライブラリは、C++の標準規格で定められたライブラリである。これはクラスと関数などの集合であり、汎用的なコンテナとそれを操作する関数、関数オブジェクト、汎用的な文字列とストリーム(コンソールやファイルとの入出力)、言語機能サポート、平方根を求めるなどといった日用的な関数などから構成される。また、ISO C90の標準Cライブラリも含んでいる。標準C++ライブラリはそのほとんどが名前空間std内にある。 Standard Template Library (STL)は標準C++ライブラリの一部分で、コンテナ、アルゴリズム、イテレータ、関数オブジェクトなどを含むものである。中にはSTLという言葉を標準C++ライブラリと混同して使う者もいる。 標準C++ライブラリのヘッダには末尾に.hが付かない。.

新しい!!: C++と標準C++ライブラリ · 続きを見る »

正規表現

正規表現(せいきひょうげん、regular expression)とは、文字列の集合を一つの文字列で表現する方法の一つである。正則表現(せいそくひょうげん)とも呼ばれ、形式言語理論の分野では比較的こちらの訳語の方が使われる。まれに正規式と呼ばれることもある。 もともと正規表現は形式言語理論において正規言語を表すための手段として導入された。形式言語理論では、形式言語が正規言語であることと正規表現によって表せることは同値である。 その後正規表現はテキストエディタ、ワードプロセッサなどのアプリケーションで(ないし、そもそもそれ以前に単機能の文字列探索ツールの)、マッチさせるべき対象を表すために使用されるようになり、表せるパターンの種類を増やすために本来の正規表現にはないさまざまな記法が新たに付け加えられた。このような拡張された正規表現には正規言語ではない文字列も表せるものも多く、ゆえに正規表現という名前は実態に即していない面もあるが、伝統的に正規表現と呼ばれ続けている。 この記事では主にこのような正規表現を用いたパターンマッチングについて説明している。以下、誤解のない限り、アプリケーションやプログラミングにおいて正規表現を用いた文字列のパターンマッチングを行う機能のことを、単に正規表現という。 ほとんどのプログラミング言語では、ライブラリによって正規表現を使うことができる他、一部の言語では正規表現のリテラルもある。「正規表現によるマッチ」を意味する(専用の)演算子がある言語なども一部ある。具体例として、grep、AWK、sed、Perl、Tcl、lexなどがある。 それぞれの言語やアプリケーションで細部の仕様が異なっている、といったように思われることも多いが(また、古い実装では実際にそういうことも多いが)、近年は同じライブラリを使っていれば同じということも多い。またPOSIXなど標準もある。.

新しい!!: C++と正規表現 · 続きを見る »

演算子

演算子(えんざんし、operator symbol, operator name)は、数式やコンピュータプログラミング言語などで、各種の演算を表わす記号・シンボルである。普通は、演算子は単なる記号ないし記号列であって構文論的なものであり、それに対応する演算は意味論の側にある。たとえばJavaにおいて、演算子 + を使った a + b という式は、構文論上は単にそういう式だというだけである。意味論的には数値の加算であったり、文字列の連結であったりするが、それは a と b の型に依って決まる(理論的には項書き換えのように、構文論的に意味論も与えられた演算子といったものもある)。 演算が作用する対象のことを被演算子(operand; オペランド、被演算数、引数)という。たとえば、n と 3 との和を表す式 "n + 3" において、"+" は演算子であり、その被演算子は "n" と "3" である。また、数式として一般的な被演算子と被演算子の間に演算子を記述する構文は中置記法と呼ばれる。 数学的には、基本的には、関数(単項演算子では1引数の関数、2項演算子は2引数の関数)をあらわすある種の糖衣構文のようなものに過ぎない。しかし、汎函数計算など、演算子を操作するような手法もある。.

新しい!!: C++と演算子 · 続きを見る »

演算子の優先順位

演算子の優先順位とは、数学およびコンピュータプログラミングにおいて、数式のどの部分から先に計算すべきかを明確化する規則である。 例えば、数学や多くのコンピュータ言語では乗法は加法より先に行われる。2 + 3 × 4 という式の計算結果は14になる。(と)、、 といった括弧には計算順序の混乱を防ぐ独自の規則が適用され、例えば先の式は 2 + (3 × 4) とも書けるが、括弧がなくとも乗法が優先されるという規則だけで式の値は一意に定まる。 代数学的記法が導入された際、乗法が加法より優先されるようになった。したがって、3 + 4 × 5.

新しい!!: C++と演算子の優先順位 · 続きを見る »

文字列

文字列(もじれつ)は、単語や文章のような、文字の連なったもの。ストリング (string)、テキスト (text) という場合もある。コンピュータ、特にプログラミングの分野で用いることが多い。.

新しい!!: C++と文字列 · 続きを見る »

手続き型プログラミング

手続き型プログラミング(てつづきがたプログラミング、Procedural programming)は、「手続き呼び出し」の概念に基づくプログラミングパラダイムの一種。命令型プログラミングと同義に扱われることが多い。「手続き」はプロシージャ、ルーチン、サブルーチン、メソッド、関数(数学の関数とは異なる。)など様々な呼称があるが、実行すべき一連の計算ステップを持つものと定義できる。手続きはプログラム実行中の任意の時点で呼び出すことができ、他の手続きからの呼び出しも、自分自身からの呼び出し(再帰呼び出し)も含まれる。 手続き型プログラミングは単純な逐次型プログラミングや非構造化プログラミングよりも多くの場合よりよい選択である。非構造化プログラミングでは複雑なコードを組むことは困難であり、保守性が悪い。手続き型プログラミングには、以下のような利点がある.

新しい!!: C++と手続き型プログラミング · 続きを見る »

10月

『ベリー公のいとも豪華なる時祷書』より10月 10月(じゅうがつ)はグレゴリオ暦で年の第10の月に当たり、31日ある。 日本では、旧暦10月を神無月(かんなづき、かみなしづき)と呼び、新暦10月の別名としても用いる。 英語での月名 October は、ラテン語表記に同じで、これはラテン語で「第8の」という意味の "octo" の語に由来している。一般的な暦では10番目の月であるが、紀元前46年まで使われていたローマ暦では、一般的な暦の3月が年始であり、3月から数えて8番目という意味である。.

新しい!!: C++と10月 · 続きを見る »

12月

12月(じゅうにがつ)は、グレゴリオ暦で年の第12の月(最後の月)に当たり、31日ある。 日本では、旧暦12月を「師走」、「師馳」(しわす・しはす)又は「極月」(きわまりづき・ごくげつ・ごくづき)と呼んできた。 今では「師走」及び「極月」は、新暦12月の別名としても用いられる。 英語での月名 December は、「10番目の月」の意味で、ラテン語で「第10の」という意味の「decem」の語に由来している。 実際の月の番号とずれているのは、紀元前46年まで使われていたローマ暦が3月起算で(そのため年末の2月は日数が少ない)、3月から数えて10番目という意味である。 グレゴリオ暦の12月1日はその年の9月1日と同じ曜日になる(→365日)。 明治時代に日本が太陰暦から太陽暦に変更した際に、政府が年末の給料を削減するために12月の日数を2日とした(明治5年12月2日の翌日を明治6年1月1日とした)。.

新しい!!: C++と12月 · 続きを見る »

1979年

記載なし。

新しい!!: C++と1979年 · 続きを見る »

1983年

この項目では、国際的な視点に基づいた1983年について記載する。.

新しい!!: C++と1983年 · 続きを見る »

1984年 (小説)

『1984年』(1984ねん、Nineteen Eighty-Four)は、イギリスの作家ジョージ・オーウェルの小説。1949年刊行。単に『1984』とも。.

新しい!!: C++と1984年 (小説) · 続きを見る »

1985年

この項目では、国際的な視点に基づいた1985年について記載する。.

新しい!!: C++と1985年 · 続きを見る »

1988年

この項目では、国際的な視点に基づいた1988年について記載する。.

新しい!!: C++と1988年 · 続きを見る »

1989年

この項目では、国際的な視点に基づいた1989年について記載する。.

新しい!!: C++と1989年 · 続きを見る »

1990年

この項目では、国際的な視点に基づいた1990年について記載する。.

新しい!!: C++と1990年 · 続きを見る »

1998年

この項目では、国際的な視点に基づいた1998年について記載する。.

新しい!!: C++と1998年 · 続きを見る »

2000年代

2000年代(にせんねんだい).

新しい!!: C++と2000年代 · 続きを見る »

2003年

この項目では、国際的な視点に基づいた2003年について記載する。.

新しい!!: C++と2003年 · 続きを見る »

2011年

この項目では、国際的な視点に基づいた2011年について記載する。.

新しい!!: C++と2011年 · 続きを見る »

2014年

この項目では、国際的な視点に基づいた2014年について記載する。.

新しい!!: C++と2014年 · 続きを見る »

2017年

この項目では国際的な視点に基づいた2017年について記載する。.

新しい!!: C++と2017年 · 続きを見る »

ここにリダイレクトされます:

C plus plusC++言語ISO/IEC 14882JIS X 3014

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »