• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            穩(wěn)定盈利的期貨交易方法-量化趨勢交易

            alantop -專業(yè)量化投資者

            愛好:量化投資,逆向工程,滲透
            隨筆 - 595, 文章 - 0, 評論 - 921, 引用 - 0
            數(shù)據(jù)加載中……

            IDL是什么?

            IDL(Interface Definition Language)即接口定義語言,是CORBA規(guī)范的一部分,是跨平臺開發(fā)的基礎。IDL提供一套通用的數(shù)據(jù)類型,并以這些數(shù)據(jù)類型來定義更為復雜的數(shù)據(jù)類型。可變化 IDL 基本類型 整數(shù)類型 OMG IDL 摒棄int 類型在不同平臺上取值范圍不同帶來的多義性的問題。常數(shù)定義常數(shù)可以是整數(shù)、字符、浮點數(shù)、字符串、Boolean、octet 或枚舉型,不能是 any 類型或用戶定義的類型。OMG IDL數(shù)組類型IDL array 和 sequence,可以輕易地被映射到實現(xiàn)語言中。序列可以包含所有類型的元素,不管是基本類型還是用戶定義的類型。

            IDL(Interface Definition Language)即接口定義語言,是CORBA規(guī)范的一部分,是跨平臺開發(fā)的基礎。IDL提供一套通用的數(shù)據(jù)類型,并以這些數(shù)據(jù)類型來定義更為復雜的數(shù)據(jù)類型。可變化 IDL 基本類型 整數(shù)類型 OMG IDL 摒棄int 類型在不同平臺上取值范圍不同帶來的多義性的問題。常數(shù)定義常數(shù)可以是整數(shù)、字符、浮點數(shù)、字符串、Boolean、octet 或枚舉型,不能是 any 類型或用戶定義的類型。OMG IDL數(shù)組類型IDL array 和 sequence,可以輕易地被映射到實現(xiàn)語言中。序列可以包含所有類型的元素,不管是基本類型還是用戶定義的類型。


            OMG IDL文件概述
              從本質上講,OMG IDL接口定義語言不是作為程序設計語言體現(xiàn)在CORBA體系結構中的,而是用來描述產生對象調用請求的客戶對象和服務對象之間的接口的語言。OMG IDL文件描述數(shù)據(jù)類型和方法框架,而服務對象則為一個指定的對象實現(xiàn)提供上述數(shù)據(jù)和方法。
              OMG IDL文件描述了服務器提供的服務功能,客戶機可以根據(jù)該接口文件描述的方法向服務器提出業(yè)務請求。在大多數(shù)CORBA產品中都提供IDL到相關編程語言的編譯器。程序設計人員只需將定義的接口文件輸入編譯器,設定編譯選項后,就可以得到與程序設計語言相關的接口框架文件和輔助文件。

            IDL文件應用過程如圖1所示。

            圖1 OMG IDL文件編譯過程


              在語法規(guī)則方面,類似于C++或Java中關于接口或對象的定義,OMG IDL增加了一些構造方法支持IDL特有的方法調用機制。OMG IDL只是一種說明性的語言,支持C++語法中的常量、類型和方法的聲明。采用OMG IDL這樣的說明性語言,其目的在于克服特定編程語言在軟件系統(tǒng)集成及互操作方面的限制,這正是CORBA的誘人之處,同樣也體現(xiàn)出采用CORBA構造分布式應用程序在網(wǎng)絡時代的強大生命力。OMG IDL已經(jīng)為C、C++、Java等主要高級程序設計語言制定了IDL到高級編程語言的映射標準。項目開發(fā)人員可以根據(jù)需要選擇自己最熟悉的編程語言來獨立開發(fā)基于CORBA的應用,而對軟件系統(tǒng)的互操作能力不產生影響。
            OMG IDL的語法規(guī)則
            1. OMG IDL文件舉例
              module Compute
              { typedef double radius;
              typedef long times;
              interface PI
              { double getResult( in radius aRadius, in times time); }
              }
              上述接口定義文件主要用于客戶端向服務對象提出請求:計算π值。因此,模塊中定義了一個方法getResult(),以圓的直徑(aRadius)和迭代次數(shù)(times)作為該方法的輸入?yún)?shù)。
            2. OMG IDL詞法規(guī)則
              OMG IDL采用ASCII字符集構成接口定義的所有標識符。標識符由字母、數(shù)字和下劃線的任意組合構成,但第一個字符必須是ASCII字母。IDL認為大寫字母和小寫字母具有相同的含義,例如anExample和AnExample是相同的。
              與C++和Java類似,采用以“/*”開始,以“*/”結束來注釋一段代碼,以“//”開始注釋從“//”開始直至行尾的所有內容。
              另外,IDL保留了47個關鍵字,程序設計人員不能將關鍵字用作變量或方法名。需要注意的是關鍵字的大小寫,例如:
              typedef double context;
              //錯誤:定義的變量context是關鍵字
              typedef double CONTEXT;
              //錯誤:CONTEXT與關鍵字context沖突
            3. 數(shù)據(jù)類型
              (1)基本數(shù)據(jù)類型:OMG IDL基本數(shù)據(jù)類型包括short、long和相應的無符號(unsigned)類型,表示的字長分別為16、32位。
              (2)浮點數(shù)類型:OMG IDL浮點數(shù)類型包括float、double和long double類型。其中float表示單精度浮點數(shù),double表示雙精度浮點數(shù),long double表示擴展的雙精度浮點數(shù)。
              (3)字符和超大字符類型:OMG IDL定義字符類型char為面向字節(jié)的碼集中編碼的單字節(jié)字符; 定義類型wchar為從任意字符集中編碼的超大字符。
              (4)邏輯類型:用boolean關鍵字定義的一個變量,取值只有true和false。
              (5)八進制類型:用octet關鍵字定義,在網(wǎng)絡傳輸過程中不進行高低位轉換的位元序列。
              (6)any數(shù)據(jù)類型:引入該類型用于表示OMG IDL中任意數(shù)據(jù)類型。
            4. 常量
              OMG IDL用const關鍵字聲明一個常量,用于模塊(module)或接口(interface)中定義保持不變的量,如:
              const double PI = 3.1415926;
              在IDL中,可以定義long、unsigned long、unsigned short、char、boolean、float、double、string類型的常量。
            5. 構造數(shù)據(jù)類型
              類似于C和C++的語法規(guī)則,OMG IDL中構造數(shù)據(jù)類型包括結構、聯(lián)合、枚舉等形式。如下例:
            (1)結構類型:
              typedef long GoodsNumber;
              struct
              { GoodsNumber number;
              string name;
              float price; }
            (2)聯(lián)合類型:
              union stockIn switch( short )
              { case 1: stocker : long;
              case 2: goodsName1 : string;
              case 3: goodsName2 : string; }
            (3)枚舉類型:
              enum GoodsStatus { GOODS_SALED, GOODS_INSTOCK};
            6. 數(shù)組類型
              OMG IDL的數(shù)組類型提供了多維定長、統(tǒng)一數(shù)據(jù)格式的數(shù)據(jù)存儲方式——數(shù)組。每一維的長度必須在定義時給定,所有數(shù)據(jù)單元必須存儲相同類型的元素。如下例定義一個長度為20×100的整數(shù)數(shù)組:
              typedef long aDimension[20][100];
            7.模板(template)類型
              OMG IDL提供兩種類型的模板:
            (1) 序列(sequence)類型:
              用該方法定義長度可變的任意數(shù)值類型的存儲序列,通常在定義時可以指定長度,也可以不指定,如:
              typedef sequence <long,80> aSequence;
              //長度定義為80
              typedef sequence <long> anotherSequence;
              //長度不定
            (2) 字符串(string)序列:
              同樣對于字符串序列類型,也有兩種定義方式:
              typedef string <80> aName; //長度定義為80
              typedef string anotherName; //長度不定
            8.接口(interface)
              在前幾講中,均提到了CORBA接口,接口作為服務對象功能的詳細描述,封裝了服務對象提供服務方法的全部信息,客戶對象利用該接口獲取服務對象的屬性、訪問服務對象中的方法。
              接口用關鍵字interface聲明,其中包含的屬性和方法對所有提出服務請求的客戶對象是公開的,如下例:
              interface JobManager
              { readonly attribute string FirstName;
              attribute string status;
              string QueryJobStatus( in long Number, out string property); }

            posted on 2007-07-09 12:22 AlanTop 閱讀(4409) 評論(2)  編輯 收藏 引用 所屬分類: COMC++VC++

            評論

            # re: IDL是什么?  回復  更多評論   

            hava a look
            2007-07-09 13:57 | pass86

            # re: IDL是什么?  回復  更多評論   

            關注一下 國產社區(qū) 謝謝~~用專業(yè)的眼光 改版一下
            2008-11-20 23:19 | kings xu
            99久久精品免费看国产| 99久久国产综合精品成人影院| 久久免费国产精品| 久久亚洲精品无码VA大香大香| 男女久久久国产一区二区三区 | 热re99久久6国产精品免费| 精品永久久福利一区二区| 丁香五月综合久久激情| 久久久久久精品无码人妻| 色综合久久最新中文字幕| 久久精品国产亚洲AV不卡| 久久99精品国产| 亚洲精品无码成人片久久| 亚洲午夜久久影院| 精品人妻久久久久久888| 中文字幕久久精品| 国产精品美女久久久久AV福利| 精品国产乱码久久久久久呢| 伊人久久精品线影院| 久久99精品久久久久久动态图| 久久AⅤ人妻少妇嫩草影院| 国产精品久久波多野结衣| 精品久久人人爽天天玩人人妻| 国产精品免费久久| 久久精品成人免费网站| 久久中文骚妇内射| 亚洲AV无码久久精品成人| 亚洲国产精品嫩草影院久久| 久久se精品一区二区影院 | 99久久夜色精品国产网站| 国产成人久久精品一区二区三区 | 一本色道久久HEZYO无码| 久久久久一级精品亚洲国产成人综合AV区| 无码专区久久综合久中文字幕| 精产国品久久一二三产区区别| 久久精品女人天堂AV麻| 久久精品国产99久久香蕉| 久久久久亚洲精品中文字幕| 日韩久久无码免费毛片软件| 久久精品无码av| 99久久免费国产精品特黄|