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

呼出規約

索引 呼出規約

呼出規約(よびだしきやく)ないし呼出慣例(よびだしかんれい)(calling convention)は、コンピュータの命令セットアーキテクチャごとに取り決められるABIの一部で、サブルーチンが呼出される際に従わねばならない制限などの標準である。名前修飾について、データを渡す「実引数」、戻るべきアドレスである「リターンアドレス」、データを戻す「返戻値」などを、スタックなどに対してどのように格納するのか、また各レジスタを、呼び出し側とサブルーチンのどちらの側が保存するか、等といった取決めの集まりである。言語が同じでも、分割コンパイルされリンカでリンクされる相互のプロシージャ間では、呼出し呼出されるならば同一の呼出規約に従っていなければならない。一方で、違う言語の間でも、同一の呼出規約を経由して相互にプロシージャを呼出すこともできる。.

35 関係: Application Binary Interface名前修飾ランタイムライブラリリンケージエディタボーランドデファクトスタンダードデニス・リッチーベル研究所命令セットアセンブリ言語インテルエンバカデロ・テクノロジーズコンピュータコールスタックサブルーチン再帰BSDC++C言語Component Object ModelDelphi逆アセンブラGNUコンパイラコレクションLinuxLisa (コンピュータ)MacintoshMacOSMicrosoft Macro AssemblerMicrosoft WindowsOS/2PascalThis (プログラミング)Windows APIX64X86

Application Binary Interface

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

新しい!!: 呼出規約とApplication Binary Interface · 続きを見る »

名前修飾

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

新しい!!: 呼出規約と名前修飾 · 続きを見る »

ランタイムライブラリ

ランタイムライブラリ(run-time library)は、標準Cライブラリなど、コンピュータプログラムの実行時(ランタイム)にメインプログラムと常に同時に存在して利用される前提のライブラリである。詳細は環境(OSや言語や処理系)に依存する。.

新しい!!: 呼出規約とランタイムライブラリ · 続きを見る »

リンケージエディタ

リンケージエディタ(リンカ(linker)、連係編集プログラムとも)とは機械語のプログラムの断片を結合し実行可能なプログラムを作成するプログラムのことである。例として、C言語では、ソースファイルをコンパイルするとオブジェクトファイルが生成される。それに他のオブジェクトファイルやライブラリを結合して1つのプログラムが完成する。この結合(リンク)の際リンケージエディタが使われる。.

新しい!!: 呼出規約とリンケージエディタ · 続きを見る »

ボーランド

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

新しい!!: 呼出規約とボーランド · 続きを見る »

デファクトスタンダード

デファクトスタンダード()とは、「事実上の標準」を指す用語である。de factoはラテン語で「事実上、実際には」を意味する。.

新しい!!: 呼出規約とデファクトスタンダード · 続きを見る »

デニス・リッチー

デニス・マカリスター・リッチー(Dennis MacAlistair Ritchie、1941年9月9日 - 2011年10月12日)は、アメリカ合衆国の計算機科学者。 コンピュータ言語のC言語を開発し、ケン・トンプソンと共にオペレーティングシステム(OS)であるUNIX、Multicsなどの開発者として知られる。2007年に引退するまで、ルーセント・テクノロジーズのシステムソフトウェア研究部門を指揮していた。技術的なコミュニティの中では、彼を指して "dmr"(ベル研究所におけるアカウント名)と呼ぶことがある。.

新しい!!: 呼出規約とデニス・リッチー · 続きを見る »

ベル研究所

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

新しい!!: 呼出規約とベル研究所 · 続きを見る »

命令セット

命令セット(めいれいせっと、instruction set)は、コンピュータのハードウェアに対して命令を伝えるための言葉の語彙。.

新しい!!: 呼出規約と命令セット · 続きを見る »

アセンブリ言語

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

新しい!!: 呼出規約とアセンブリ言語 · 続きを見る »

インテル

インテル(英:Intel Corporation)は、アメリカ合衆国カリフォルニア州に本社を置く半導体素子メーカーである。 社名の由来はIntegrated Electronics(集積されたエレクトロニクス)の意味である。.

新しい!!: 呼出規約とインテル · 続きを見る »

エンバカデロ・テクノロジーズ

ンバカデロ・テクノロジーズ (Embarcadero Technologies, Inc.) は、ソフトウェア開発、データベース関連のソフトウェアの開発や販売を行う会社である。1993年10月設立。本社はアメリカ合衆国テキサス州オースティンに置かれている。 日本法人は2008年7月に設立された、エンバカデロ・テクノロジーズ合同会社である。 2008年6月30日、ボーランドよりコードギア部門を買収する。これにより、Delphi、C++ Builderなどの開発環境が同社の製品に加わる。 2015年10月に、アイデラ社により買収される発表がなされた。エンバカデロ社製品のうちデータベースツールはアイデラ社が、開発ツールは引き続きエンバカデロ社が取り扱うことになった。.

新しい!!: 呼出規約とエンバカデロ・テクノロジーズ · 続きを見る »

コンピュータ

ンピュータ(Computer)とは、自動計算機、とくに計算開始後は人手を介さずに計算終了まで動作する電子式汎用計算機。実際の対象は文字の置き換えなど数値計算に限らず、情報処理やコンピューティングと呼ばれる幅広い分野で応用される。現代ではプログラム内蔵方式のディジタルコンピュータを指す場合が多く、特にパーソナルコンピュータやメインフレーム、スーパーコンピュータなどを含めた汎用的なシステムを指すことが多いが、ディジタルコンピュータは特定の機能を実現するために機械や装置等に組み込まれる組み込みシステムとしても広く用いられる。電卓・機械式計算機・アナログ計算機については各項を参照。.

新しい!!: 呼出規約とコンピュータ · 続きを見る »

コールスタック

ールスタック (Call Stack)は、プログラムに実行中にサブルーチンに関する情報を格納するスタックである。実行中のサブルーチンとは、呼び出されたが処理を完了していないサブルーチンを意味する。実行スタック (Execution Stack)、制御スタック (Control Stack)、関数スタック (Function Stack)などとも呼ばれる。また、単に「スタック」と言ったときにコールスタックを指していることが多い。コールスタックを正しく保つことは多くのソフトウェアが正常動作するのに重要であるが、その詳細は高水準言語からは透過的である。.

新しい!!: 呼出規約とコールスタック · 続きを見る »

サブルーチン

ブルーチン(subroutine)は、コンピュータプログラミングにおいて、プログラム中で意味や内容がまとまっている作業をひとつの手続きとしたものである。繰り返し利用されるルーチン作業をモジュールとしてまとめたもので、呼び出す側の「主」となるもの(メインルーチン)と対比して「サブルーチン」と呼ばれる。サブプログラム (subprogram) と呼ばれることもある。また、「サブ」をつけずに「ルーチン」と呼ぶこともある。 プログラムのソース中で、繰り返し現れる作業をサブルーチン化することで、可読性や保守性を高く保つことができる。繰り返し現れる作業でなくても、意味的なまとまりを示すためにサブルーチン化することもある。また、キャッシュのような階層的メモリの設計を持つコンピュータ(現在のパソコンやワークステーションなどほぼすべて)では、よく使われるサブルーチンがキャッシュに格納されることで高速な動作を期待できる。.

新しい!!: 呼出規約とサブルーチン · 続きを見る »

再帰

再帰(さいき)は、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。定義において、再帰があらわれているものを再帰的定義という。 主に英語のrecursionとその派生語の訳にあてられる。他にrecurrenceの訳(回帰#物理学及び再帰性を参照のこと)や、reflexiveの訳として「再帰」が使われることがある。数学的帰納法との原理的な共通性から、recursionの訳として数学では「帰納」を使うことがある。.

新しい!!: 呼出規約と再帰 · 続きを見る »

BSD

BSD(ビーエスディー)は、Berkeley Software Distribution の略語で、1977年から1995年までカリフォルニア大学バークレー校 (University of California, Berkeley, UCB) の Computer Systems Research Group (CSRG) が開発・配布したソフトウェア群、およびUNIXオペレーティングシステム (OS)。なお、今日「BSD」という名称は同OSを元に開発されたBSDの子孫の総称として使われることもあるが、この項では主に前述のUCBによるソフトウェア群およびOSについて述べる。 元となったコードベースと設計はAT&TのUNIXと共通であるため、歴史的にはBSDはUNIXの支流 "BSD UNIX" とみなされてきた。1980年代、ワークステーションクラスのシステムベンダーがプロプライエタリなUNIXとしてBSDを広く採用していた。例えば、DECのUltrix、サン・マイクロシステムズのSunOSなどである。これは、ライセンス条件の容易だったためと、当時の多くの技術系企業の創業者がBSDを熟知していたためである。 それらプロプライエタリ (proprietary:非公開) なBSD派生OSは、1990年代にはUNIX System V Release 4とOSF/1に取って代わられ(どちらもBSDのコードを取り入れており、他の現代のUnixシステムの基盤となった)、後期のBSDリリースはいくつかのオープンソース開発プロジェクトの基盤となった。例えば、FreeBSD、NetBSD、OpenBSD、DragonFly BSDなどが今も開発中である。さらにそれら(の全部あるいは一部)が最近のプロプライエタリなOSにも採用されている。例えば、WindowsのTCP/IPコード(IPv4のみ)やアップルのmacOSである。.

新しい!!: 呼出規約とBSD · 続きを見る »

C++

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

新しい!!: 呼出規約とC++ · 続きを見る »

C言語

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

新しい!!: 呼出規約とC言語 · 続きを見る »

Component Object Model

Component Object Model(COM、コンポーネント オブジェクト モデル)とは、マイクロソフトが提唱するソフトウェアの再利用を目的とした技術のことである。アプリケーションソフトウェア間での通信や、オペレーティングシステムとアプリケーションソフトウェアとのAPIに用いられる。 COMを使用して開発されたソフトウェア部品をCOMコンポーネントと呼ぶ。COMコンポーネントは、特定の開発言語に依存せず、C言語やC++、Visual Basic、Smalltalk、Javaなど、様々な言語により開発を行うことができる。COMという用語はソフトウェア開発の世界ではOLE、OLEオートメーション、ActiveX、COM+、DCOMをカバーする包括的な用語としてよく使われる。COMコンポーネントは、他ソフトウェアと通信するためのインタフェースを有している。アプリケーションソフトウェアは、公開されているインタフェースを介してCOMコンポーネントと通信をし、それらを組み合わせることでサービスを提供する。言語によるメモリやその他計算資源の割り付けの違いは、参照カウントを利用してオブジェクトの生成と破棄をそのオブジェクト自身の責任とすることにより解決する。オブジェクトの異なるインタフェース間のキャストはQueryInterface関数で行う。メソッド呼び出しをデリゲート(委譲)する形でサブオブジェクトの集合(アグリゲーションと呼ぶ)を生成する方法がCOM内における最適な継承方法である。 COMは主としてMicrosoft Windows上で使用されるが、UNIXやMac OSでも使用することができる。COMの前身はOLEである。COMは.NET Frameworkに置き換えられているものも多い。たとえば.NETはDCOMの代替として、Windows Communication Foundation (WCF) を通じてWebサービスをサポートする。WCFがXMLベースのSOAPメッセージを利用するのに対し、ネットワークで接続されたDCOMはバイナリの独自仕様フォーマットを利用する。しかし、Microsoft DirectXなどに代表されるように、ネイティブC++での利用を前提としたパフォーマンス重視のAPIは、依然として.NETではなくCOMが使われる傾向にある。 COMはまたソフトウェアコンポーネントシステムとしてCORBAやJava Beansと競合関係にある。.

新しい!!: 呼出規約とComponent Object Model · 続きを見る »

Delphi

Delphi(デルファイ)は、コンソール (CUI)、デスクトップ (GUI)、Web、モバイルアプリケーション開発のための統合開発環境 (IDE) である。 DelphiのコンパイラはPascal を独自に拡張した Object Pascal (Delphi 言語) を用いて、プラットフォーム毎にネイティブコードを生成する。対応プラットフォームはWindows、macOS、iOS、Android、Linux。 元々DelphiはボーランドがTurbo Pascal / Borland Pascalの後継として開発したWindows用のRADツールである。C++ Builderとは多くのコアコンポーネント、特にIDEとVisual Component Library (VCL) を共有していたが、Borland Developer Studio 2006の登場まではそれぞれ独立した製品だった。 2006年にボーランドの開発ツール部門がコードギアとして完全子会社化され、2008年にエンバカデロ・テクノロジーズに買収された。2015年10月に、上記エンバカデロ・テクノロジーズがアイデラにより買収される発表がなされた。 本項では Delphi Prism として開発されていた 「Embacardero Prism(エンバカデロ プリズム)」 についても述べる。.

新しい!!: 呼出規約とDelphi · 続きを見る »

逆アセンブラ

逆アセンブラ(ぎゃくアセンブラ、disassembler ディスアセンブラ)は、逆コンパイラの一種であるが、実行ファイルないしオブジェクトファイルの機械語コード(とシンボルテーブルなどの付随情報)を基に、アセンブリ言語ソースコードを生成する、すなわちアセンブラの逆の作用をするものを特に指す。技術者の間では俗に逆アセなどとも略される。一般の(高水準言語コードを生成するような)逆コンパイラよりも比較的容易である。.

新しい!!: 呼出規約と逆アセンブラ · 続きを見る »

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

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

新しい!!: 呼出規約とGNUコンパイラコレクション · 続きを見る »

Linux

Linux(リナックス、他の読みは後述)とは、Unix系オペレーティングシステムカーネルであるLinuxカーネル、およびそれをカーネルとして周辺を整備したシステム(GNU/Linuxシステムも参照)である。.

新しい!!: 呼出規約とLinux · 続きを見る »

Lisa (コンピュータ)

Lisa(リサ)は、1983年にアップルコンピュータが製造・販売したオフィス向け16ビットパーソナルコンピュータである。当時としては先進的な機能と操作性を持っていたが、動作の遅さや価格の高さなどの理由で商業的には失敗した。 Apple Lisa.

新しい!!: 呼出規約とLisa (コンピュータ) · 続きを見る »

Macintosh

Macintosh 128K(1984年-) iMac 2007年モデル Macintosh(マッキントッシュ)は、アップルが開発および販売を行っているパーソナルコンピュータ。通称・略称は、Mac(マック)。.

新しい!!: 呼出規約とMacintosh · 続きを見る »

MacOS

macOS(マックオーエス)は、アップルが開発・販売する、Macのオペレーティングシステムである。かつての名称はOS X、Mac OS Xであった(後述)。 技術的に直系ではないが、Classic Mac OS (Mac OS、System) の後継として、新たにBSD系UNIXをベースに開発された。.

新しい!!: 呼出規約とMacOS · 続きを見る »

Microsoft Macro Assembler

Microsoft Macro Assembler(マイクロソフト・マクロ・アセンブラ、MASMと略す)はx86系マイクロプロセッサ用のアセンブラである。マイクロソフトがMS-DOS上の開発のために製造し、DOS上では最も普及したアセンブラであった。豊富なマクロと高水準な繰返し(loop)構造、手続き(procedure)呼び出しなどの構造化プログラミングに対応している。高級アセンブラに分類できる。。 5.1版と6版でOS/2アプリケーションとなり、さらに6.1版からは32ビットWindowsのコンソールアプリケーションになった。当初、6.1版と6.11版ではMS-DOS上で動作させるためPhar Lap TNT DOSエクステンダを同梱していた。6.1版は最終版のWindows NTでは動作しない。.

新しい!!: 呼出規約とMicrosoft Macro Assembler · 続きを見る »

Microsoft Windows

Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群。グラフィカルユーザインタフェース (GUI)を採用している。.

新しい!!: 呼出規約とMicrosoft Windows · 続きを見る »

OS/2

OS/2(オーエス・ツー)は、MS-DOSおよびPC DOSの後継として、IBMとマイクロソフトとの共同で開発された、パーソナルコンピュータ(パソコン)用の16ビットおよび32ビットのオペレーティングシステム (OS) である。.

新しい!!: 呼出規約とOS/2 · 続きを見る »

Pascal

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

新しい!!: 呼出規約とPascal · 続きを見る »

This (プログラミング)

thisは、プログラミング言語に出てくる概念のひとつで、自身の動いているオブジェクトを指す予約語。主にインスタンスメソッド内で使用される。thisの他にself、Meといった語を使う言語もあるが、言語を問わず概念は共通しているので、以下ではthisで代表させて記述することとする。.

新しい!!: 呼出規約とThis (プログラミング) · 続きを見る »

Windows API

Windows API(ウィンドウズ エーピーアイ)とは、Microsoft Windowsのシステムコール用APIのこと。特に32ビットプロセッサで動作するWindows 95以降やWindows NTで利用できるものはWin32 APIと呼ばれる。また、それらのWindowsにおけるWin32 APIの実装をWin32と呼ぶ。.

新しい!!: 呼出規約とWindows API · 続きを見る »

X64

x64またはx86-64とは、x86アーキテクチャを64ビットに拡張した命令セットアーキテクチャ。 実際には、AMDが発表したAMD64命令セット、続けてインテルが採用したIntel 64命令セット(かつてIA-32eまたはEM64Tと呼ばれていた)などを含む、各社のAMD64互換命令セットの総称である。x86命令セットと互換性を持っていることから、広義にはx86にx64を含む場合がある。 なお、インテルはIntel 64の他にIA-64の名前で64ビット命令セットアーキテクチャを開発・展開しているが、これはx64命令セット、x86命令セットのいずれとも互換性がない。.

新しい!!: 呼出規約とX64 · 続きを見る »

X86

x86(エックスはちろく)は、Intel 8086、およびその後方互換性を持つマイクロプロセッサの命令セットアーキテクチャの総称。16ビットの8086で登場し、32ビット拡張の80386(後にIA-32と命名)、64ビット拡張のx64、広義には更にAMDなどの互換プロセッサを含む。 なおインテルのIA-64は全く異なる。.

新しい!!: 呼出規約とX86 · 続きを見る »

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

Cdecl呼び出し規約呼出慣例

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