當前位置:首頁 » 編程軟體 » 編譯綜述信息要求

編譯綜述信息要求

發布時間: 2022-11-16 19:05:29

『壹』 匯編語言編程

高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。 像最簡單的編程語言PASCAL語言也屬於高級語言.
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。
一.漢語編程定義:
「漢語編程」一種採用漢民族語言文字進行電腦編程的語言系統,支持基於漢語字、詞編程,符合計算機符號語言規范,並繼續向自然語言發展。
表面漢化菜單的而未將關鍵字漢化的編程語言,我們不應稱之為漢語編程語言,而應稱之為「漢化編程」語言,如VB中文版等。
為什麼嚴格來說稱「漢語編程」而不稱之為「中文編程」呢?因為中國是個多民族的國家,語種眾多,有:漢語,藏語,滿語等;中文字體也非常多,如篆書、金書、隸書、楷書等。但一般情況下,稱中文編程時,也特指漢語編程。
二.漢語編程知多少
已知的漢語編程工具或系統據不完全統計有三十個以上,列出如下:
四.漢語編程的發展和需求
上世紀七十年代以來,中國開發了一個DOS下的中文編程語言,但由於WINDOWS的流行,還未等推廣,就被淘汰。
八十年代開始,台灣已見到繁體中言語版本的LOGO語言。
九十年代,沈志斌的漢語編程初步推出。並申請了「漢語編程單片機」專利。年,易語言成為漢語編程
筆者發現一個有趣的現象:某個國家的最初發明,傳到其他國家,就會有所發展,如足球最早是中國發明的,傳到歐洲,就發展地比中國要好;乒乓球是英國發明的,傳到中國,中國人人人都會打兩下,有廣大的群眾基礎,就發展地比其他地區都好。因此筆者認為,編程雖然是外國人發明的,但傳到中國來,中國人民以他們的聰明才智,轉化為自己的東西,不僅沒有固步自封,而且會實現更大的融合。
4.嵌入式系統難以應用漢語嗎?
幾十年前,有專家預言,漢語不適合計算機,看過了不久,計算機就可以顯示漢字了。還有的專家說,中文輸入沒有英文快,但過了不久,五筆字型推出了,專業打字員輸入的速度甚至比英文還快。看來專家學者的預言並不可靠,我們不能迷信個別專家,而是要靠自己的努力去改變。
嵌入式系統大多數人已接觸到了,打個現實的比方,現在的手機功能已越來越接近電腦了,很多電腦有的功能,手機都有,而且上面所運行的可以是WINCE、Mobile、linux系統,有的甚至可以用英文寫段java代碼直接運行了。因此,強求用指令集用漢語確實沒有什麼優勢,但從編程這點考慮,漢語實現嵌入式系統的編程不是沒有可能,既然英語可以直接轉換為機器碼,漢語也可以直接轉換為機器碼,可以通過漢語直接調用指令集的辦法實現。
中國科學技術發展的確晚於歐美國家,中國已錯過了前兩次技術革命,再也不能錯過這第三次了,不能因為別人什麼都有了自己就不做了,如果有這樣的思想,中國的兩彈一星也不要了,大飛機也別造了,嫦娥也別奔月了。
總之,一個新生事物,可能會暫時存在一些缺點,普及和應用漢語編程還有很長的路要走,中國要想成為軟體大國,就一定要普及大眾化,象打乒乓球一樣,人人都能寫程序,都可以用自己的母語編程,形成廣大的用戶基礎,就不愁軟體行業不發展。筆者不會引用很資深的專家學者的話樹立權威,希望大家共同思考這個問題。我相信,在中國人的努力下,一定會開創一個更美好的未來。
七.目前流行的一些漢語編程的簡介
由於有些語言已不再開發和推廣了,及篇幅關系,下文中以目前一些流行的語言進行介紹。
【易語言】
於2000年開始開發,是一款全中文、全可視、跨平台的編程語言。易語言漢語編程環境由核心層、擴展層、環境層和應用層組成。核心層的易語言及其編譯器構成了基礎編程平台;擴展層提供了專業編程人員的開發運行平台;環境層提供了用戶集成開發環境;應用層支持用戶創建本行業、領域的開發平台的框架。
易語言漢語編程環境是一個支持基於漢語字、詞編程的、全可視化的、跨主流操作系統平台的編程環境;擁有簡、繁漢語以及英語、日語等多語種版本;能與常用的編程語言互相調用;具有充分利用API,COM、DLL、OCX組件,各種主流資料庫,各種實用程序等多種資源的介面和支撐工具。
【易語言.飛揚】
於2006年開始開發,是一款簡單易學、高效實用、面向對象、跨平台的計算機通用編程語言。它是完全面向對象的編程語言,因而在面向對象機制上,與同為面向對象的Java、C#等編程語言,有相似甚至相同之處。它的語法脫胎自「類c語言」,因而在語法上,與C、C++、Java、C#等編程語言,有相似甚至相同之處。
「易語言.飛揚」的主要特性
更具現代性:完全面向對象,跨平台,支持Unicode、多線程,垃圾自動回收,類型反射,靜態編譯,動態類型裝載等等。
更簡單易學:繁瑣、晦澀、不常用的語言特性被盡量精簡,且補充了很多便於使用的語言特性,支持中英文雙語關鍵字,在語法格式和關鍵字方面,盡量與現有類似編程語言相同,減少了學習量。
對系統環境的適應和控制能力更強:定義有語言無關的「EF對象模型」,從而允許使用其它各種編程語言來直接書寫「易語言.飛揚」本地類,和用「易語言.飛揚」本身書寫的類完全融合互補,沒有任何差別,可用作快速建立強大高效的本地應用環境,同時可充分利用現有代碼資源。
【搭建之星】
原名「發燒積木」屬於搭建式的編程工具,完全可視化編程,有各種各樣的構件,用拖放的方式拼成程式的流程。
特點:1.安裝簡單、迅速,純中文界面。構件豐富,設計過程直觀、自由;無需掌握電腦語言,所有編程構件化、命令化、可視化。2.互動式開發,只需要四種類型的「命令」,便可建立各種構件之間的聯系;象搭積木一樣簡單,並可快速的搭建出具有專業水平的軟體作品。3.微解釋執行,命令解釋量小,執行速度快。可以和編譯後的可執行文件相媲美。
基本功能:多媒體軟體製作,支持多種聲音、動畫、圖像、視頻文件格式。有關教學構件,平面直角坐標系、表達式、變數組、函數圖像、函數列表、樹形瀏覽等;另外還新了動態流程圖、瀏覽器構件、軟體服務號等。提供打包工具,使您即刻將自製軟體安裝到其它機器上運行;自動對開發項目加密;使您的項目,在未經授權下,別人無法「瀏覽、修改」項目的構件關系與搭建方法。
【漢語編程】
它的發展早於 1993 年,看起來像Forth,「漢語編程」是中國人自己研發的完全以漢語為描述語言的計算機程序設計語言,它完全具有中國自主知識產權。作為一種計算機語言,它和現在流行的大部分計算機語言具有一些共同的特點,都是人機對話必須的工具語言。但該語言絕非曾流行過的任何一種計算機語言的簡單漢化,或是為某種軟體製造一個中文環境。這是一個完全由中國人自行開發,由中國人自我掌握全部源代碼,從形式到內容全面符合中國人的思維方式,使用漢文字表達的面向對象、面向問題計算機程序設計語言。「漢語編程」具有自成平台、面向對象、面向問題、所見即所得、高度安全性、強大的繁衍功能、高度兼容性以及資源佔用少、速度快等特點,開辟了計算機語言發展的新紀元。
【雅奇MIS】
無代碼編程的領先者。
該軟體採用「可視化語言」,實現了軟體開發的「無代碼圖示編程」。任何人只要會打字,就能在30分鍾內學會編程。可視化的無代碼編程,使開發效率提高百倍。1小時完成的開發,相當於代碼編程方式 2個月的工作量總和。「窗體、報表、計算」等各種功能設計,可達到「秒級」的設計效率。適合於普通辦公人員開發「財務、人事、工資、進銷存」等各行各業的管理信息系統。
【易樂谷】
「易樂谷ELOGO」是一個以LOGO語言語法為基本語法規則,易語言中文化為實現目標,以流程圖為教學輔助,提供幼兒園、小學、退休人員及小學教學師作為入門級學習編程的一種簡單工具。本程序由大連大有吳濤易語言軟體開發有限公司向幼兒園、小學校、教師、退休人員等編程愛好入門者提供。
本程序使用易語言編程,用易語言實現了一種新的解釋型的中文編程語言工具,在易語言中有豐富的圖形組件、動畫組件,多媒體命令、網路功能、3D支持庫,目前這些功能已在易樂谷中體現,大家在學習「易樂谷ELOGO」的同時,也可以學會這些多媒體支持庫的應用方法。「易樂谷ELOGO」與易語言的類似地方在於:同樣都是中文編程,語法名稱等同易語言的風格;不同地方在於:更加符合自然語言,讓小學生們更易於理解,並且更利於小學教師的教學工作。
【創新LOGO】
CX-LOGO語言是一種結構化程序設計語言。它是互動式的,為少年兒童提供了良好的編程環境;它是模塊化的,便於程序的修改與擴充;它是過程化的,包含了過程、參數、變數等重要概念,並允許遞歸調用;它有豐富的數據結構類型,有生動的圖形處理功能。
CX-LOGO語言獨創的流程圖工作方式和過程庫的建立,可方便的使用「搭積木」的方法,構建「知識」,使學習更容易、操作更簡便,學生只需簡單的學習就可以操作。
CX-LOGO語言不僅具備多種優秀程序設計語言的優點,而且更接近自然語言,生動有趣,簡單易學,它能用直觀的運動來體現編程的結果,讓少年兒童在游戲中進行思考,在趣味中學習,深受少年兒童的歡迎。通過CX-LOGO語言的教學,以學習一種「玩具」為出發點,可以培養學生學習計算機的興趣,使他們初步了解計算機是如何工作的,為他們今後學習其他高級程序語言設計鋪設道路
CX-LOGO語言是專為我國少年兒童開發的創新平台,孩子們可以在電腦上指揮七色瓢蟲移動、轉向、行走、發光、響應外界刺激等。這些具有創造性的學習工具所倡導的「做中學」的學習理念,非常適合課堂教學,極大地激發了孩子們學習的興趣。
學習編程,從何入手
如果您想學習編程,卻又不知從何入手,那麼您不妨看看下面的幾種學習方案,可能會給您一些啟示吧!
==============================================
VB方案一 Basic語言 & Visual Basic
優點
(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。
缺點
(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。 (Visual Basic 5以及以前的版本產生的代碼是偽代碼,Visual Basic 6 編譯出來的代碼是真正的可執行代碼。)
綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。
Basic/Visual Basic簡介
==============================================
Delphi方案二 Pascal語言 & Delphi
優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。
缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。
綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。
Pascal語言簡介
Delphi簡介
==============================================
方案三 C語言 & Visual C++
優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。
缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業使得一般的編程愛好者學習起來會有不小的困難。
綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。
C語言簡介
==============================================
C++方案四 C++語言 & C++ Builder
優點
(1)C++語言的優點全部得以繼承。
(2)完全的可視化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。
缺點
由於推出的時間太短,關於它的各種資料還不太多。
綜述:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。
C語言簡介
==============================================
方案五 SQL語言 & Power Builder
對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。
[NextPage]
JSP簡介
JAVA語言在Sun正式發布JSP(Java Server Pages)之後,這種新的Web應用開發技術很快引起了人們的關注。JSP為創建高度動態的Web應用提供了一個獨特的開發環境。按照 Sun 的說法,JSP能夠適應市場上包括Apache WebServer 、IIS4.0在內的85%的伺服器產品。
JSP與ASP的簡單比較
JSP與Microsoft的ASP技術非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。在ASP或JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴於Web伺服器,而ASP和JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP和JSP都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
ASP的編程語言是VBScript之類的腳本語言,JSP使用的是Java,這是兩者最明顯的區別。
此外,ASP與JSP還有一個更為本質的區別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執行;在JSP下,代碼被編譯成Servlet並由Java虛擬機執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。
運行環境
執行 JSP 代碼需要在伺服器上安裝 JSP 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便於學習,這個軟體包提供了大量可供修改的示例。安裝 JSWDK 之後,只需執行 startserver 命令即可啟動伺服器。在默認配置下伺服器在埠 8080 監聽,使用 http://localhost:8080 即可打開預設頁面。
在運行 JSP 示例頁面之前,請注意一下安裝 JSWDK 的目錄,特別是" work "子目錄下的內容。執行示例頁面時,可以在這里看到 JSP 頁面如何被轉換成 Java 源文件,然後又被編譯成 class 文件(即 Servlet )。 JSWDK 軟體包中的示例頁面分為兩類,它們或者是 JSP 文件,或者是包含一個表單的 HTML 文件,這些表單均由 JSP 代碼處理。與 ASP 一樣, JSP 中的 Java 代碼均在伺服器端執行。因此,在瀏覽器中使用"查看源文件"菜單是無法看到 JSP 源代碼的,只能看到結果 HTML 代碼。所有示例的源代碼均通過一個單獨的" examples "頁面提供。
Java Servlet是一種開發Web應用的理想構架。 JSP以Servlet技術為基礎,又在許多方面作了改進。JSP頁面看起來象普通HTML頁面,但它允許嵌入執行代碼,在這一點上,它和ASP技術非常相似。利用跨平台運行的JavaBean 組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為ASP技術的有力競爭者。
[NextPage]
SQL語言簡介
SQL全稱是「結構化查詢語言(Structured Query Language)」,最早的是IBM的聖約瑟研究實驗室為其關系資料庫管理系統SYSTEM R開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的資料庫管理系統,還是像Visual Foxporo,PowerBuilder這些微機上常用的資料庫開發系統,都支持SQL語言作為查詢語言。
Structured Query Language包含4個部分:
數據查詢語言DQL-Data Query Language SELECT
數據操縱語言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
數據定義語言DQL-Data Definition Language CREATE, ALTER, DROP
數據控制語言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK
SQL的歷史
在70年代初,E.E.Codd首先提出了關系模型。70年代中期,IBM公司在研製 SYSTEM R關系資料庫管理系統中研製了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS資料庫系統中也實現了SQL。
1986年10月,美國ANSI採用SQL作為關系資料庫管理系統的標准語言(ANSI X3. 135-1986),後為國際標准化組織(ISO)採納為國際標准。
1989年,美國ANSI採納在ANSI X3.135-1989報告中定義的關系資料庫管理系統的SQL標准語言,稱為ANSI SQL 89, 該標准替代ANSI X3.135-1986版本。該標准為下列組織所採納:
● 國際標准化組織(ISO),為ISO 9075-1989報告「Database Language SQL With Integrity Enhancement」
● 美國聯邦政府,發布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的關系資料庫管理系統支持某些形式的SQL語言, 大部分資料庫打算遵守ANSI SQL89標准。
SQL的優點
SQL廣泛地被採用正說明了它的優點。它使全部用戶,包括應用程序員、DBA管理員和終端用戶受益匪淺。
(1) 非過程化語言
SQL是一個非過程化的語言,因為它一次處理一個記錄,對數據提供自動導航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作,可操作記錄集。所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。 SQL不要求用戶指定對數據的存放方法。 這種特性使用戶更易集中精力於要得到的結果。所有SQL語句使用查詢優化器,它是RDBMS的一部分,由它決定對指定數據存取的最快速度的手段。查詢優化器知道存在什麼索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什麼類型的索引。
(2) 統一的語言
SQL可用於所有用戶的DB活動模型,包括系統管理員、資料庫管理員、 應用程序員、決策支持系統人員及許多其它類型的終端用戶。基本的SQL 命令只需很少時間就能學會,最高級的命令在幾天內便可掌握。 SQL為許多任務提供了命令,包括:
● 查詢數據
● 在表中插入、修改和刪除記錄
● 建立、修改和刪除數據對象
● 控制對數據和數據對象的存取
● 保證資料庫一致性和完整性
以前的資料庫管理系統為上述各類操作提供單獨的語言,而SQL 將全部任務統一在一種語言中。
(3) 是所有關系資料庫的公共語言
由於所有主要的關系資料庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉到另一個。所有用SQL編寫的程序都是可以移植的。
[NextPage]
Java語言簡介
一. Java的由來
當1995年SUN推出Java語言之後,全世界的目光都被這個神奇的語言所吸引。那麼Java到底有何神奇之處呢?
Java語言其實最是誕生於1991年,起初被稱為OAK語言,是SUN公司為一些消費性電子產品而設計的一個通用環境。他們最初的目的只是為了開發一種獨立於平台的軟體技術,而且在網路出現之前,OAK可以說是默默無聞,甚至差點夭折。但是,網路的出現改變了OAK的命運。
在Java出現以前。Internet上的信息內容都是一些乏味死板的HTML文檔。這對於那些迷戀於WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEN中看到一些互動式的內容,開發人員也極希望能夠在WEB上創建一類無需考慮軟硬體平台就可以執行的應用程序,當然這些程序還要有極大的安全保障。對於用戶的這種要求,傳統的編程語言顯得無能為力,面SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術應用於WEB上,並且開發出了HotJava的第一個版本。當SUN公司1995年正式以Java這個名字推出的時候,幾乎所有的WEB開發人員都想到:噢,這正是我想要的。於是Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。
二. Java的定義
Java是一種簡單的,面象對象的,分布式的,解釋的,健壯的安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。
Java的開發環境有不同的版本,如sun公司的Java Developers Kit, 簡稱 JDK。後來微軟公司推出了支持Java規范的Microsoft Visual J++ Java開發環境,簡稱 VJ++。
三. Java的特點
1. 平台無關性
平台無關性是指Java能運行於不同的平台。Java引進虛擬機 原理,並運行於虛擬機,實現不同平台的Java介面之間。使 用Java編寫的程序能在世界范圍內共享。Java的數據類型與 機器無關,Java虛擬機(Java Virtual Machine)是建立在 硬體和操作系統之上,實現Java二進制代碼的解釋執行功能, 提供於不同平台的介面的。
2. 安全性
Java的編程類似C++,學習過C++的讀者將很快掌握Java的精 髓。Java舍棄了C++的指針對存儲器地址的直接操作,程序 運行時,內存由操作系統分配,這樣可以避免病毒通過指 針侵入系統。Java對程序提供了安全管理器,防止程序的 非法訪問

『貳』 論文信息編譯是什麼意思

論文信息編譯就是把論文中高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。它不像直譯語言一樣,由解釋器將代碼一句一句運行,而是以編譯器,先將代碼編譯為機器碼,再加以運行。理論上,任何編程語言都可以是編譯式,或直譯式的。它們之間的區別,僅與程序的應用有關。

『叄』 cmd中使用javac對整個包編譯怎麼辦對包裡面的某幾個java文件編譯怎麼辦

JAVAC 命令詳解

結構
javac [ options ] [ sourcefiles ] [ @files ]
參數可按任意次序排列。
options
命令行選項。
sourcefiles
一個或多個要編譯的源文件(例如 MyClass.java)。
@files
一個或多個對源文件進行列表的文件。
說明
javac
有兩種方法可將源代碼文件名傳遞給 javac:
?如果源文件數量少,在命令行上列出文件名即可。
?如果源文件數量多,則將源文件名列在一個文件中,名稱間用空格或回車行來進行分隔。然後在 javac 命令行中使用該列表文件名,文件名前冠以 @ 字元。
源代碼文件名稱必須含有 .java 後綴,類文件名稱必須含有 .class 後綴,源文件和類文件都必須有識別該類的根名。例如,名為 MyClass 的類將寫在名為 MyClass.java的源文件中,並被編譯為位元組碼類文件 MyClass.class。
內部類定義產生附加的類文件。這些類文件的名稱將內部類和外部類的名稱結合在一起,例如 MyClass$MyInnerClass.class。
應當將源文件安排在反映其包樹結構的目錄樹中。例如,如果將所有的源文件放在 /workspace 中,那麼 com.mysoft.mypack.MyClass 的代碼應該在 \workspace\com\mysoft\mypack\MyClass.java 中。
預設情況下,編譯器將每個類文件與其源文件放在同一目錄中。可用 -d 選項(請參閱後面的選項)指定其它目標目錄。
工具讀取用 Java 編程語言編寫的類和介面定義,並將它們編譯成位元組碼類文件。
查找類型
當編譯源文件時,編譯器常常需要它還沒有識別出的類型的有關信息。對於源文件中使用、擴展或實現的每個類或介面,編譯器都需要其類型信息。這包括在源文件中沒有明確提及、但通過繼承提供信息的類和介面。
例如,當擴展 java.applet.Applet 時還要用到 Applet 的祖先類:java.awt.Panel 、 java.awt.Container、 java.awt.Component 和 java.awt.Object。
當編譯器需要類型信息時,它將查找定義類型的源文件或類文件。編譯器先在自舉類及擴展類中查找,然後在用戶類路徑中查找。用戶類路徑通過兩種途徑來定義:通過設置 CLASSPATH 環境變數或使用 -classpath 命令行選項。(有關詳細資料,請參閱設置類路徑)。如果使用 -sourcepath 選項,則編譯器在 sourcepath 指定的路徑中查找源文件;否則,編譯器將在用戶類路徑中查找類文件和源文件。可用-bootclasspath 和 -extdirs 選項來指定不同的自舉類或擴展類;參閱下面的聯編選項。
成功的類型搜索可能生成類文件、源文件或兩者兼有。以下是 javac 對各種情形所進行的處理:
?搜索結果只生成類文件而沒有源文件: javac 使用類文件。
?搜索結果只生成源文件而沒有類文件: javac 編譯源文件並使用由此生成的類文件。
?搜索結果既生成源文件又生成類文件: 確定類文件是否過時。若類文件已過時,則 javac 重新編譯源文件並使用更新後的類文件。否則, javac 直接使用類文件。
預設情況下,只要類文件比源文件舊, javac 就認為它已過時。( -Xdepend 選項指定相對來說較慢但卻比較可靠的過程。)
javac
注意: javac 可以隱式編譯一些沒有在命令行中提及的源文件。用 -verbose 選項可跟蹤自動編譯。

文件列表
為縮短或簡化 javac 命令,可以指定一個或多個每行含有一個文件名的文件。在命令行中,採用 '@' 字元加上文件名的方法將它指定為文件列表。當 javac 遇到以 `@' 字元開頭的參數時,它對那個文件中所含文件名的操作跟對命令行中文件名的操作是一樣的。這使得 Windows 命令行長度不再受限制。
例如,可以在名為 sourcefiles 的文件中列出所有源文件的名稱。該文件可能形如:
MyClass1.java
MyClass2.java
MyClass3.java
然後可用下列命令運行編譯器:
C:> javac @sourcefiles
選項
編譯器有一批標准選項,目前的開發環境支持這些標准選項,將來的版本也將支持它。還有一批附加的非標准選項是目前的虛擬機實現所特有的,將來可能要有變化。非標准選項以 -X 打頭。
標准選項
-classpath 類路徑
設置用戶類路徑,它將覆蓋 CLASSPATH 環境變數中的用戶類路徑。若既未指定 CLASSPATH 又未指定 -classpath,則用戶類路徑由當前目錄構成。有關詳細信息,請參閱設置類路徑。
若未指定 -sourcepath 選項,則將在用戶類路徑中查找類文件和源文件。
-d 目錄
設置類文件的目標目錄。如果某個類是一個包的組成部分,則 javac 將把該類文件放入反映包名的子目錄中,必要時創建目錄。例如,如果指定 -d c:\myclasses 並且該類名叫 com.mypackage.MyClass,那麼類文件就叫作 c:\myclasses\com\mypackage\MyClass.class。
若未指定 -d 選項,則 javac 將把類文件放到與源文件相同的目錄中。
注意: -d 選項指定的目錄不會被自動添加到用戶類路徑中。
-deprecation
顯示每種不鼓勵使用的成員或類的使用或覆蓋的說明。沒有給出 -deprecation 選項的話, javac 將顯示這類源文件的名稱:這些源文件使用或覆蓋不鼓勵使用的成員或類。
-encoding
設置源文件編碼名稱,例如 EUCJIS/SJIS。若未指定 -encoding 選項,則使用平台預設的轉換器。
-g
生成所有的調試信息,包括局部變數。預設情況下,只生成行號和源文件信息。
-g:none
不生成任何調試信息。
-g:{關鍵字列表}
只生成某些類型的調試信息,這些類型由逗號分隔的關鍵字列表所指定。有效的關鍵字有:
source
源文件調試信息
lines
行號調試信息
vars
局部變數調試信息
-nowarn
禁用警告信息。
-O
優化代碼以縮短執行時間。使用 -O 選項可能使編譯速度下降、生成更大的類文件並使程序難以調試。
在 JDK 1.2 以前的版本中,javac 的 -g 選項和 -O 選項不能一起使用。在 JDK 1.2 中,可以將 -g 和 -O 選項結合起來,但可能會得到意想不到的結果,如丟失變數或重新定位代碼或丟失代碼。-O 選項不再自動打開 -depend 或關閉 -g 選項。同樣, -O 選項也不再允許進行跨類內嵌。
-sourcepath 源路徑
指定用以查找類或介面定義的源代碼路徑。與用戶類路徑一樣,源路徑項用分號 (;) 進行分隔,它們可以是目錄、JAR 歸檔文件或 ZIP 歸檔文件。如果使用包,那麼目錄或歸檔文件中的本地路徑名必須反映包名。
注意:通過類路徑查找的類,如果找到了其源文件,則可能會自動被重新編譯。
-verbose
冗長輸出。它包括了每個所載入的類和每個所編譯的源文件的有關信息。
聯編選項
預設情況下,類是根據與 javac 一起發行的 JDK 自舉類和擴展類來編譯。但 javac 也支持聯編,在聯編中,類是根據其它 Java平台實現的自舉類和擴展類來進行編譯的。聯編時, -bootclasspath 和 -extdirs 的使用很重要;請參閱下面的聯編程序示例。
-target 版本
生成將在指定版本的虛擬機上運行的類文件。預設情況下生成與 1.1 和 1.2 版本的虛擬機都兼容的類文件。JDK 1.2 中的 javac 所支持的版本有:
1.1
保證所產生的類文件與 1.1 和 1.2 版的虛擬機兼容。這是預設狀態。
1.2
生成的類文件可在 1.2 版的虛擬機上運行,但不能在 1.1 版的虛擬機上運行。
-bootclasspath 自舉類路徑
根據指定的自舉類集進行聯編。和用戶類路徑一樣,自舉類路徑項用分號 (;) 進行分隔,它們可以是目錄、JAR 歸檔文件或 ZIP 歸檔文件。
-extdirs 目錄
根據指定的擴展目錄進行聯編。目錄是以分號分隔的目錄列表。在指定目錄的每個 JAR 歸檔文件中查找類文件。
非標准選項
-X
顯示非標准選項的有關信息並退出。
-Xdepend
遞歸地搜索所有可獲得的類,以尋找要重編譯的最新源文件。該選項將更可靠地查找需要編譯的類,但會使編譯進程的速度大為減慢。
-Xstdout
將編譯器信息送到System.out 中。預設情況下,編譯器信息送到 System.err 中。
-Xverbosepath
說明如何搜索路徑和標准擴展以查找源文件和類文件。
-J選項
將選項傳給 javac 調用的 java 啟動器。例如, -J-Xms48m 將啟動內存設為 48 兆位元組。雖然它不以 -X 開頭,但它並不是 javac 的『標准選項』。用 -J 將選項傳給執行用 Java 編寫的應用程序的虛擬機是一種公共約定。
注意: CLASSPATH 、 -classpath 、 -bootclasspath 和 -extdirs 並 不 指定用於運行 javac 的類。如此濫用編譯器的實現通常沒有任何意義而且總是很危險的。如果確實需要這樣做,可用 -J 選項將選項傳給基本的 java 啟動器。
程序示例
編譯簡單程序
一個源文件 Hello.java ,它定義了一個名叫 greetings.Hello 的類。greetings 目錄是源文件和類文件兩者的包目錄,且它不是當前目錄。這讓我們可以使用預設的用戶類路徑。它也使我們沒必要用 -d 選項指定單獨的目標目錄。
C:> dir
greetings/
C:> dir greetings
Hello.java
C:> cat greetings\Hello.java
package greetings;
public class Hello {
public static void main(String[] args) {
for (int i=0; i < args.length; i++) {
System.out.println("Hello " + args[i]);
}
}
}
C:> javac greetings\Hello.java
C:> dir greetings
Hello.class Hello.java
C:> java greetings.Hello World Universe Everyone
Hello World
Hello Universe
Hello Everyone
編譯多個源文件
該示例編譯 greetings 包中的所有源文件。
C:> dir
greetings\
C:> dir greetings
Aloha.java GutenTag.java Hello.java Hi.java
C:> javac greetings\*.java
C:> dir greetings
Aloha.class GutenTag.class Hello.class Hi.class
Aloha.java GutenTag.java Hello.java Hi.java
指定用戶類路徑
對前面示例中的某個源文件進行更改後,重新編譯它:
C:> cd
\examples
C:> javac greetings\Hi.java
由於 greetings.Hi 引用了 greetings 包中其它的類,編譯器需要找到這些其它的類。上面的示例能運行是因為預設的用戶類路徑剛好是含有包目錄的目錄。但是,假設我們想重新編譯該文件並且不關心我們在哪個目錄中的話, 我們需要將 \examples 添加到用戶類路徑中。可以通過設置 CLASSPATH 達到此目的,但這里我們將使用 -classpath 選項來完成。
C:>javac -classpath \examples \examples\greetings\Hi.java
如果再次將 greetings.Hi 改為使用標題實用程序,該實用程序也需要通過用戶類路徑來進行訪問:
C:>javac -classpath \examples:\lib\Banners.jar \
\examples\greetings\Hi.java
要執行 greetings 中的類,需要訪問 greetings 和它所使用的類。
C:>java -classpath \examples:\lib\Banners.jar greetings.Hi
將源文件和類文件分開
將源文件和類文件置於不同的目錄下經常是很有意義的,特別是在大型的項目中。我們用 -d 選項來指明單獨的類文件目標位置。由於源文件不在用戶類路徑中,所以用 -sourcepath 選項來協助編譯器查找它們。
C:> dir
classes\ lib\ src\
C:> dir src
farewells\
C:> dir src\farewells
Base.java GoodBye.java
C:> dir lib
Banners.jar
C:> dir classes
C:> javac -sourcepath src -classpath classes:lib\Banners.jar \
src\farewells\GoodBye.java -d classes
C:> dir classes
farewells\
C:> dir classes\farewells
Base.class GoodBye.class
注意:編譯器也編譯了 src\farewells\Base.java,雖然我們沒有在命令行中指定它。要跟蹤自動編譯,可使用 -verbose 選項。
聯編程序示例
這里我們用 JDK 1.2 的 javac 來編譯將在 1.1 版的虛擬機上運行的代碼。
C:> javac -target 1.1 -bootclasspath jdk1.1.7\lib\classes.zip \
-extdirs "" OldCode.java
-target 1.1
JDK 1.2 javac 在預設狀態下也將根據 1.2 版的自舉類來進行編譯,因此我們需要告訴 javac 讓它根據 JDK 1.1 自舉類來進行編譯。可用 -bootclasspath 和 -extdirs 選項來達到此目的。不這樣做的話,可能會使編譯器根據 1.2 版的 API 來進行編譯。由於 1.1 版的虛擬機上可能沒有該 1.2 版的 API,因此運行時將出錯。
選項可確保生成的類文件與 1.1 版的虛擬機兼容。在 JDK1.2 中, 預設情況下 javac 編譯生成的文件是與 1.1 版的虛擬機兼容的,因此並非嚴格地需要該選項。然而,由於別的編譯器可能採用其它的預設設置,所以提供這一選項將不失為是個好習慣。

『肆』 學哪種編譯語言好

計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。

電腦每做的一次動作,一個步驟,都是按照以經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。

計算機所能識別的語言只有機器語言,即由0和1構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。

目前通用的編程語言有兩種形式:匯編語言和高級語言。

匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。

高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。

高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。

高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:

解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。

編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。

[NextPage]

學習編程,從何入手

如果樓主想學習編程,卻又不知從何入手,那麼樓主不妨看看下面的幾種學習方案,可能會給樓主一些啟示吧!

方案一 Basic語言 & Visual Basic

優點
(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。

缺點
(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。

綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。

Basic/Visual Basic簡介
方案二 Pascal語言 & Delphi

優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。

缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。

綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。

Pascal語言簡介
Delphi簡介
方案三 C語言 & Visual C++

優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。

缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業溝靡話愕謀喑貪 謎哐 捌鵠椿嵊脅恍〉睦 選?

綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。

C語言簡介
方案四 C++語言 & C++ Builder

優點
(1)C++語言的優點全部得以繼承。
(2)完全的可是化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。

缺點
由於推出的時間太短,關於它的各種資料還不太多。

綜述:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。

C語言簡介
方案五 SQL語言 & Power Builder

對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。

[NextPage]
JSP簡介

在Sun正式發布JSP(Java Server Pages)之後,這種新的Web應用開發技術很快引起了人們的關注。JSP為創建高度動態的Web應用提供了一個獨特的開發環境。按照 Sun 的說法,JSP能夠適應市場上包括Apache WebServer 、IIS4.0在內的85%的伺服器產品。

JSP與ASP的簡單比較

JSP與Microsoft的ASP技術非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。在ASP或JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴於Web伺服器,而ASP和JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP和JSP都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。

ASP的編程語言是VBScript之類的腳本語言,JSP使用的是Java,這是兩者最明顯的區別。

此外,ASP與JSP還有一個更為本質的區別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執行;在JSP下,代碼被編譯成Servlet並由Java虛擬機執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。

運行環境

執行 JSP 代碼需要在伺服器上安裝 JSP 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便於學習,這個軟體包提供了大量可供修改的示例。安裝 JSWDK 之後,只需執行 startserver 命令即可啟動伺服器。在默認配置下伺服器在埠 8080 監聽,使用 http://localhost:8080 即可打開預設頁面。

在運行 JSP 示例頁面之前,請注意一下安裝 JSWDK 的目錄,特別是" work "子目錄下的內容。執行示例頁面時,可以在這里看到 JSP 頁面如何被轉換成 Java 源文件,然後又被編譯成 class 文件(即 Servlet )。 JSWDK 軟體包中的示例頁面分為兩類,它們或者是 JSP 文件,或者是包含一個表單的 HTML 文件,這些表單均由 JSP 代碼處理。與 ASP 一樣, JSP 中的 Java 代碼均在伺服器端執行。因此,在瀏覽器中使用"查看源文件"菜單是無法看到 JSP 源代碼的,只能看到結果 HTML 代碼。所有示例的源代碼均通過一個單獨的" examples "頁面提供。

Java Servlet是一種開發Web應用的理想構架。 JSP以Servlet技術為基礎,又在許多方面作了改進。JSP頁面看起來象普通HTML頁面,但它允許嵌入執行代碼,在這一點上,它和ASP技術非常相似。利用跨平台運行的JavaBean 組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為ASP技術的有力競爭者。

[NextPage]
SQL語言簡介

SQL全稱是「結構化查詢語言(Structured Query Language)」,最早的是IBM的聖約瑟研究實驗室為其關系資料庫管理系統SYSTEM R開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的資料庫管理系統,還是像Visual Foxporo,PowerBuilder這些微機上常用的資料庫開發系統,都支持SQL語言作為查詢語言。

Structured Query Language包含4個部分:

數據查詢語言DQL-Data Query Language SELECT
數據操縱語言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
數據定義語言DQL-Data Definition Language CREATE, ALTER, DROP
數據控制語言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK

SQL的歷史

在70年代初,E.E.Codd首先提出了關系模型。70年代中期,IBM公司在研製 SYSTEM R關系資料庫管理系統中研製了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。

1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS資料庫系統中也實現了SQL。

1986年10月,美國ANSI採用SQL作為關系資料庫管理系統的標准語言(ANSI X3. 135-1986),後為國際標准化組織(ISO)採納為國際標准。

1989年,美國ANSI採納在ANSI X3.135-1989報告中定義的關系資料庫管理系統的SQL標准語言,稱為ANSI SQL 89, 該標准替代ANSI X3.135-1986版本。該標准為下列組織所採納:

● 國際標准化組織(ISO),為ISO 9075-1989報告「Database Language SQL With Integrity Enhancement」
● 美國聯邦政府,發布在The Federal Information Processing Standard Publication(FIPS PUB)127

目前,所有主要的關系資料庫管理系統支持某些形式的SQL語言, 大部分資料庫打算遵守ANSI SQL89標准。

SQL的優點

SQL廣泛地被採用正說明了它的優點。它使全部用戶,包括應用程序員、DBA管理員和終端用戶受益非淺。

(1) 非過程化語言

SQL是一個非過程化的語言,因為它一次處理一個記錄,對數據提供自動導航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作,可操作記錄集。所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。 SQL不要求用戶指定對數據的存放方法。 這種特性使用戶更易集中精力於要得到的結果。所有SQL語句使用查詢優化器,它是RDBMS的一部分,由它決定對指定數據存取的最快速度的手段。查詢優化器知道存在什麼索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什麼類型的索引。

(2) 統一的語言

SQL可用於所有用戶的DB活動模型,包括系統管理員、資料庫管理員、 應用程序員、決策支持系統人員及許多其它類型的終端用戶。基本的SQL 命令只需很少時間就能學會,最高級的命令在幾天內便可掌握。 SQL為許多任務提供了命令,包括:

● 查詢數據
● 在表中插入、修改和刪除記錄
● 建立、修改和刪除數據對象
● 控制對數據和數據對象的存取
● 保證資料庫一致性和完整性

以前的資料庫管理系統為上述各類操作提供單獨的語言,而SQL 將全部任務統一在一種語言中。

(3) 是所有關系資料庫的公共語言

由於所有主要的關系資料庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉到另一個。所有用SQL編寫的程序都是可以移植的。

[NextPage]
Java語言簡介

一. Java的由來

當1995年SUN推出Java語言之後,全世界的目光都被這個神奇的語言所吸引。那麼Java到底有何神奇之處呢?

Java語言其實最是誕生於1991年,起初被稱為OAK語言,是SUN公司為一些消費性電子產品而設計的一個通用環境。他們最初的目的只是為了開發一種獨立於平台的軟體技術,而且在網路出現之前,OAK可以說是默默無聞,甚至差點夭折。但是,網路的出現改變了OAK的命運。

在Java出現以前。Internet上的信息內容都是一些乏味死板的HTML文檔。這對於那些迷戀於WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEN中看到一些互動式的內容,開發人員也極希望能夠在WEB上創建一類無需考慮軟硬體平台就可以執行的應用程序,當然這些程序還要有極大的安全保障。對於用戶的這種要求,傳統的編程語言顯得無能為力,面SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術應用於WEB上,並且開發出了HotJava的第一個版本。當SUN公司1995年正式以Java這個名字推出的時候,幾乎所有的WEB開發人員都想到:噢,這正是我想要的。於是Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。

二. Java的定義

Java是一種簡單的,面象對象的,分布式的,解釋的,鍵壯的安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。

Java的開發環境有不同的版本,如sun公司的Java Developers Kit, 簡稱 JDK。後來微軟公司推出了支持Java規范的Microsoft Visual J++ Java開發環境,簡稱 VJ++。

三. Java的特點

1. 平台無關性

平台無關性是指Java能運行於不同的平台。Java引進虛擬機 原理,並運行於虛擬機,實現不同平台的Java介面之間。使 用Java編寫的程序能在世界范圍內共享。Java的數據類型與 機器無關,Java虛擬機(Java Virtual Machine)是建立在 硬體和操作系統之上,實現Java二進制代碼的解釋執行功能, 提供於不同平台的介面的。

2. 安全性

Java的編程類似C++,學習過C++的讀者將很快掌握Java的精 髓。Java舍棄了C++的指針對存儲器地址的直接操作,程序 運行時,內存由操作系統分配,這樣可以避免病毒通過指 針侵入系統。Java對程序提供了安全管理器,防止程序的 非法訪問。

3. 面向對象

Java 吸取了C++面向對象的概念,將數據封裝於類中,利用類 的優點,實現了程序的簡潔性和便於維護性。類的封裝性、 繼承性等有關對象的特性,使程序代碼只需一次編譯,然後 通過上述特性反復利用。程序員只需把主要精力用在類和接 口的設計和應用上。Java 提供了眾多的一般對象的類,通 過繼承即可使用父類的方法。在 Java 中,類的繼承關系是單一的非多重的,一個子類 只有一個父類,子類的父類又有一個父類。Java 提供的 Object 類及其子類的繼承關系如同一棵倒立的樹形,根類 為 Object 類, Object 類功能強大,經常會使用到它及其 它派生的子類。

4. 分布式

Java建立在擴展TCP/IP網路平台上。庫函數提供了用HTTP和FTP協議傳送和接受信息的方法。這使得程序員使用網路上的文件和使用本機文件一樣容易。

5. 鍵壯性

Java致力於檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發早期出現的錯誤。Java自已操縱內存減少了內存出錯的可能性。Java還實現了真數組,避免了覆蓋數據的可能。這些功能特徵大大提高了開發Java應用程序的周期。Java提供: Null指針檢測、 數組邊界檢測、 異常出口、 Byte code校驗。

四. Java與C/C++語言

Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特徵。C++安全性不好,但C和C++被大家接受,所以Java設計成C++形式,讓大家很容易學習。

Java去掉了C++語言的許多功能,讓Java的語言功能很精煉,並增加了一些很有用的功能,如自動收集碎片。

Java去掉了以下幾個C和C++功能:
指針運算
結構
typedefs
#define
需要釋放內存

這將減少了平常出錯的50%。而且,Java很小,整個解釋器只需215K的RAM。

面象對象:Java實現了C++的基本面象對象技術並有一些增強,(為了語言簡單,刪除了一些功能)。Java處理數據方式和用對象介面處理對象數據方式一樣。

五. Java與Internet

我們知道,早先的 www 僅可以傳送文本和圖片,Java的出現實現了互動的頁面,是一次偉大的革命。

Java並不是為 Internet,WWW而設計的,它也可以用來編寫獨立的應用程序。Java 是一種面向對象語言。Java 語言類似於 C++ 語言,所以已熟練掌握 C++語言的編程人員,再學習 Java 語言就容易得多!Java 程序需要編譯。實際上有兩種 Java 程序:一種 Java 應用程序是一個完整的程序,如 Web 瀏覽器。一種 Java 小應用程序是運行於 Web 瀏覽器中的一個程序.

Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運行程序的方法。你能從你的瀏覽器里直接播放聲音。你還能播放頁面里的動畫。Java還能告訴你的瀏覽器怎樣處理新的類型文件。當我們能在2400 baud線上傳輸視頻圖象時,HotJava將能顯示這些視頻。

當今Internet的一大發展趨勢是電子商務,而Internet的安全問題是必須解決的問題,通常大的部門應設置防火牆,阻止非法侵入。

電子商務是當今的熱門話題,然而傳統的編程語言難以勝任電子商務系統,電子商務要求程序代碼具有基本的要求:安全、可靠、同時要求能 與運行於不同平台的機器的全世界客戶開展業務。Java以其強安全性、平台無關性、硬體結構無關性、語言簡潔同時面向對象,在網路編程語言中占據無可比擬的優勢,成為實現電子商務系統的首選語言。

Java程序被放置在Internet伺服器上,當用戶訪問伺服器時,Java程序被下載到本地的用戶機上,由瀏覽器解釋運行。

[NextPage]
PowerBuilder簡介

PowerBuilder的產生

PowerBuilder是美國著名的資料庫應用開發工具生產廠商PowerSoft推出的成功產品,其第一版於1991年6月正式投入市場。它是完全按照客戶/伺服器體系結構研製設計的,採用面向對象技術,圖形化的應用開發環境,是資料庫的前端開發工具。

PowerBuilder的特點

它支持應用系統同時訪問多種資料庫,其中既包括Oracel,Sybase之類的大型資料庫,又包括FOXPRO之類支持ODBC介面的小型資料庫,PowerBuilder是完全可視化的資料庫開發工具,它提供了大量的控制項,大大加快了項目的開發速度,也使開發者更容易掌握資料庫的開發。

它使用的編程語言叫做工PowerScripr,它也是一種高級的,結構化的編程語言。PowerScript提供了一套完整的嵌入式SQL語句,開發人員可以像使用其它語句一樣自由地使用SQL語言,這樣就大大增強了程序操縱和訪問資料庫的能力。可以說PowerBuilder既適合初學者快速學習資料庫的開發,又可以讓有經驗的開發人員開發出功能強大的資料庫,是一種適用面非常廣的開發工具。

PowerBuilder是一個用來進行客戶/伺服器開發的完全的可視化開發環境。使用PowerBuilder,你可以用一種可視的直觀的方式來創建應用程序的用戶界面和資料庫介面。這是一個總的概念,實際上是開發人員使用PowerBuilder去開發應用程序,由於所開發的各種應用程序充分利用了圖形用戶介面(GUI)的優點,所以PowerBuilder被認為是一個圖形工具。

在客戶/伺服器結構的應用中,PowerBuilder具有描述多個資料庫連接與檢索的能力。特別是PowerBuilder能從大多數流行的RDBMS中存取數據,且不管數據存放在什麽地方;另外,各種應用程序又可以獨立於RDBMS,因為PowerBuilder可以使用資料庫的標准操作語言SQL(結構化查詢語言)進行。

使用PowerBuilder,可以很容易地開發出功能強大的圖形界面的訪問伺服器資料庫的應用程序,PowerBuilder提供了建立符合工業標準的應用程序(例如訂單登記、會計及製造系統)所需的所有工具。

PowerBuilder應用程序由窗口組成,這些窗口包含用戶與之交互的控制項。開發人員可以使用所有標准空間(如按鈕、復選框、下拉式列表框或編輯框)以及PowerBuilder提供的特殊的使應用程序更易於開發和使用的控制項。

通常人們把PowerBuilder看成是一種開發工具,實際上它比其他工具強得多,是一種強有力的開發環境。開發人員不僅能用它來開發用戶容易使用的各種應用程序還可以通過PowerBuilder修改資料庫,利用400多個內部定義函數,可以開發能和其他應用程序進行的各種應用程序。

PowerBuilder正在成為客戶/伺服器應用開發的標准。相對於其他任何客戶/伺服器開發環境,PowerBuilder使開發人員的工作更快、成本更低、質量更高、功能更強。

PowerBuilder為應用開發提供了全面綜合性的支持,可以分別概括為如下幾點:

事件驅動的應用程序
功能強大的編程語言與函數
面向對象的編程
跨平台開發
開放的資料庫連結系統

PowerBuilder開發環境

PowerBuilder開發環境由一系列集成的圖形畫板(Painter)組成,應用開發人員通過簡單的滑鼠操作即可設計、建立、交互檢驗和測試客戶/伺服器應用程序。
[NextPage]
Delphi簡介

Delphi這個名字源於古希臘的城市名。它集中了第三代語言的優點。以Object Pascal為基礎,擴充了面向對象的能力,並且完美地結合了可視化的開發手段。Delphi自1995年3 月一推出就受到了人們的關注,並在當年一舉奪得了多項大獎。

Delphi的出現打破了V承可視化編程領域一統天下的局面。並且Delphi使用了本地編譯器直接生成技術,使程序的執行性能遠遠高於其它產品生成的程序。它還是真正的面向對象的編程語言。PASCAL語言的嚴謹加上可視化的優勢和強大的資料庫功能使得它有充分的資本和微軟的VB叫板。許多人當時都認為Pascal 是最有前途的程序設計語言,並預測Delphi將會成為可視化編程的主流環境。

Delphi在你編好程序後自動轉換成.EXE文件它運行時速度比VB快,而且編譯後不需要其他的支持庫就能運行。它的資料庫功能也挺強的,是開發中型資料庫軟體理想的編程工具。 Delphi適用於應用軟體、資料庫系統、系統軟體等類型的開發。而且它擁有和VB差不多一樣的功能,而且一樣能應用API函數,這在控制Windows很有用。

Delphi是全新的可視化編程環境,為我們提供了一種方便、快捷的Windows應用程序開發工具。它使用了Microsoft Windows圖形用戶界面的許多先進特性和設計思想,採用了彈性可重復利用的完整的面向對象程序語言(Object-Oriented Language)、當今世界上最快的編輯器、最為領先的資料庫技術。對於廣大的程序開發人員來講,使用Delphi開發應用軟體,無疑會大大地提高編程效率,而且隨著應用的深入,您將會發現編程不再是枯燥無味的工作——Delphi的每一個設計細節,都將帶給您一份欣喜。

Delphi的基本形式

Delphi實際上是Pascal語言的一種版本,但它與傳統的Pascal語言有天壤之別。一個Delphi程序首先是應用程序框架,而這一框架正是應用程序的「骨架」。在骨架上即使沒有附著任何東西,仍可以嚴格地按照設計運行。您的工作只是在「骨架」中加入您的程序。預設的應用程序是一個空白的窗體(form),您可以運行它,結果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質:可以被放大縮小、移動、最大最小化等,但您卻沒有編寫一行程序。因此,可以說應用程序框架通過提供所有應用程序共有的東西,為用戶應用程序的開發打下了良好的基礎。

Delphi已經為您做好了一切基礎工作——程序框架就是一個已經完成的可運行應用程序,只是不處理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代碼而已。 在空白窗口的背後,應用程序的框架正在等待用戶的輸入。由於您並未告訴它接收到用戶輸入後作何反應,窗口除了響應Windows的基本操作(移動、縮放等)外,它只是接受用戶的輸入,然後再忽略。Delphi把Windows編程的回調、句柄處理等繁復過程都放在一個不可見的Romulam覆蓋物下面。

『伍』 怎麼寫醫學綜述

1、題目

題目必須與內容相稱、貼切,不能小題大作或大題小作,更不能文不對題。好的題目可一目瞭然,看題目可知內容梗概。

2、摘要

摘要是對論文內容的概括,包括四部分內容:背景資料、問題、研究目的、實驗設計及方法、結果、解釋和結論。一般情況下,審稿人會根據摘要內容來決定是否有興趣或者值得花時間審閱此稿,因此,作者寫摘要一定不能馬虎。

3、關鍵詞

SCI論文關鍵詞是縮寫詞的引用,這些縮寫詞的重復率在文中必然是很高的,分類或者列表提取關鍵詞會使論文結構更清晰。關鍵詞的設置一般為3~5個。

4、前言

與一般科技論文一樣,前言又稱引言,是將讀者導人論文主題的部分,主要敘述綜述的目的和作用,概述主題的有關概念和定義,簡述所選擇主題的歷史背景、發展過程、現狀、爭論焦點、應用價值和實踐意義,同時還可限定綜述的范圍.使讀者對綜述的主題有一個初步的印象。這部分約200~300字。

5、主體部分

綜述主體部分的篇幅范圍特別大,短者5000字左右,長者可達幾萬字,其敘述方式靈活多樣,沒有必須遵循的同定模式,常由作者根據綜述的內容,自行設計創造。一般可根據主體部分的內容多寡分成幾個大部分,每部分標上簡短而醒目的小標題。

(1)歷史發展:按時間順序,簡述該主題的來龍去脈,發展概況及各階段的研究水平。

(2)現狀評述:重點是論述當前國內外的研究現狀,著重評述哪些問題已經解決,哪些問題還沒有解決,提出可能的解決途徑;目前存在的爭論焦點,比較各種觀點的異同並作出理論解釋,亮明作者的觀點;詳細介紹有創造性和發展前途的理論和假說,並引出論據,指出可能的發展趨勢。

(3)發展前景預測:通過縱橫對比,肯定該主題的研究水平,指出存在的問題,提出可能的發展趨勢,指明研究方向,提示研究的捷徑。

6、總結部分

總結部分又稱為結論、小結或結語。書寫總結時,可以根據主體部分的論述,提出幾條語言簡明、含義確切的意見和建議;也可以對主體部分的主要內容作出扼要的概括,並提出作者自己的見解,表明作者贊成什麼,反對什麼;對於篇幅較小的綜述,可以不單獨列出總結,僅在主體各部分內容論述完後,用幾句話對全文進行高度概括。

7、參考文獻

參考文獻是綜述的原始素材.也是綜述的基礎,因此,擁有並列出足夠的參考文獻顯得格外重要。它除了表示尊重被引證作者的勞動及表明引用的資料有其科學依據以外,更重要的是為讀者深入探討該主題提供查找有關文獻的線索。

(5)編譯綜述信息要求擴展閱讀

醫學綜述的特點:

①綜合性:綜述要「縱橫交錯」,既要以某一專題的發展為縱線,反映當前課題的進展;又要從本單位、省內、國內到國外,進行橫的比較。只有如此,文章才會佔有大量素材,經過綜合分析、歸納整理、消化鑒別,使材料更精練、更明確、更有層次和更有邏輯,進而把握本專題發展規律和預測發展趨勢。

②評述性: 是指比較專門地、全面地、 深入地、系統地論述某一方面的問題,對所綜述的內容進行綜合、分析、評價,反映作者的觀點和見解,並與綜述的內容構成整體。一般來說,綜述應有作者的觀點,否則就不成為綜述,而是手冊或講座了。

③先進性:綜述不是寫學科發展的歷史,而是要搜集最新資料,獲取最新內容,將最新的醫學信息和科研動向及時傳遞給讀者。綜述不應是材料的羅列,而是對親自閱讀和收集的材料,加以歸納、總結,做出評論和估價。並由提供的文獻資料引出重要結論。

『陸』 編譯器錯誤信息: CS0201: 只有 assignment、call、increment、decrement 和 new 對象表達式可用作語句

不是<%ywselect1;%>,是<%=ywselect1%>

不推薦這樣寫,最後在後台代碼中操作生成html,不要沿用asp的習慣。
你對變數的命名也不是很規范,建議看看C#編程指南

『柒』 編譯原理試題·

Lex和Yacc應用方法(一).初識Lex
草木瓜 20070301
Lex(Lexical Analyzar 詞法分析生成器),Yacc(Yet Another Compiler Compiler
編譯器代碼生成器)是Unix下十分重要的詞法分析,語法分析的工具。經常用於語言分
析,公式編譯等廣泛領域。遺憾的是網上中文資料介紹不是過於簡單,就是跳躍太大,
入門參考意義並不大。本文通過循序漸進的例子,從0開始了解掌握Lex和Yacc的用法。

一.Lex(Lexical Analyzar) 初步示例
先看簡單的例子(註:本文所有實例皆在RetHat Linux下完成):
一個簡單的Lex文件 exfirst.l 內容:
%{
#include "stdio.h"
%}
%%
[\n] ;
[0-9]+ printf("Int : %s\n",yytext);
[0-9]*\.[0-9]+ printf("Float : %s\n",yytext);
[a-zA-Z][a-zA-Z0-9]* printf("Var : %s\n",yytext);
[\+\-\*\/\%] printf("Op : %s\n",yytext);
. printf("Unknown : %c\n",yytext[0]);
%%
在命令行下執行命令flex解析,會自動生成lex.yy.c文件:
[root@localhost liweitest]flex exfirst.l
進行編譯生成parser可執行程序:
[root@localhost liweitest]cc -o parser lex.yy.c -ll
[注意:如果不加-ll鏈結選項,cc編譯時會出現以下錯誤,後面會進一步說明。]
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:77: undefined reference to `main'
/tmp/cciACkbX.o(.text+0x37b): In function `yylex':
: undefined reference to `yywrap'
/tmp/cciACkbX.o(.text+0xabd): In function `input':
: undefined reference to `yywrap'
collect2: ld returned 1 exit status

創建待解析的文件 file.txt:
title
i=1+3.9;
a3=909/6
bcd=4%9-333
通過已生成的可執行程序,進行文件解析。
[root@localhost liweitest]# ./parser < file.txt
Var : title
Var : i
Unknown : =
Int : 1
Op : +
Float : 3.9
Unknown : ;
Var : a3
Unknown : =
Int : 909
Op : /
Int : 6
Var : bcd
Unknown : =
Int : 4
Op : %
Int : 9
Op : -
Int : 333
到此Lex用法會有個直觀的了解:
1.定義Lex描述文件
2.通過lex,flex工具解析成lex.yy.c文件
3.使用cc編譯lex.yy.c生成可執行程序

再來看一個比較完整的Lex描述文件 exsec.l :

%{
#include "stdio.h"
int linenum;
%}
%%
title showtitle();
[\n] linenum++;
[0-9]+ printf("Int : %s\n",yytext);
[0-9]*\.[0-9]+ printf("Float : %s\n",yytext);
[a-zA-Z][a-zA-Z0-9]* printf("Var : %s\n",yytext);
[\+\-\*\/\%] printf("Op : %s\n",yytext);
. printf("Unknown : %c\n",yytext[0]);
%%
showtitle()
{
printf("----- Lex Example -----\n");
}
int main()
{
linenum=0;
yylex(); /* 進行分析 */
printf("\nLine Count: %d\n",linenum);
return 0;
}
int yywrap()
{
return 1;
}
進行解析編譯:
[root@localhost liweitest]flex exsec.l
[root@localhost liweitest]cc -o parser lex.yy.c
[root@localhost liweitest]./parser < file.txt
----- Lex Example -----
Var : i
Unknown : =
Int : 1
Op : +
Float : 3.9
Unknown : ;
Var : a3
Unknown : =
Int : 909
Op : /
Int : 6
Var : bcd
Unknown : =
Int : 4
Op : %
Int : 9
Op : -
Int : 333
Line Count: 4
這里就沒有加-ll選項,但是可以編譯通過。下面開始著重整理下Lex描述文件.l。

二.Lex(Lexical Analyzar) 描述文件的結構介紹
Lex工具是一種詞法分析程序生成器,它可以根據詞法規則說明書的要求來生成單詞識
別程序,由該程序識別出輸入文本中的各個單詞。一般可以分為<定義部分><規則部
分><用戶子程序部分>。其中規則部分是必須的,定義和用戶子程序部分是任選的。

(1)定義部分
定義部分起始於 %{ 符號,終止於 %} 符號,其間可以是包括include語句、聲明語句
在內的C語句。這部分跟普通C程序開頭沒什麼區別。
%{
#include "stdio.h"
int linenum;
%}
(2) 規則部分
規則部分起始於"%%"符號,終止於"%%"符號,其間則是詞法規則。詞法規則由模式和
動作兩部分組成。模式部分可以由任意的正則表達式組成,動作部分是由C語言語句組
成,這些語句用來對所匹配的模式進行相應處理。需要注意的是,lex將識別出來的單
詞存放在yytext[]字元數據中,因此該數組的內容就代表了所識別出來的單詞的內容。
類似yytext這些預定義的變數函數會隨著後面內容展開一一介紹。動作部分如果有多
行執行語句,也可以用{}括起來。
%%
title showtitle();
[\n] linenum++;
[0-9]+ printf("Int : %s\n",yytext);
[0-9]*\.[0-9]+ printf("Float : %s\n",yytext);
[a-zA-Z][a-zA-Z0-9]* printf("Var : %s\n",yytext);
[\+\-\*\/\%] printf("Op : %s\n",yytext);
. printf("Unknown : %c\n",yytext[0]);
%%
A.規則部分的正則表達式
規則部分是Lex描述文件中最為復雜的一部分,下面列出一些模式部分的正則表達式字
符含義:
A-Z, 0-9, a-z 構成模式部分的字元和數字。
- 指定范圍。例如:a-z 指從 a 到 z 之間的所有字元。
\ 轉義元字元。用來覆蓋字元在此表達式中定義的特殊意義,
只取字元的本身。

[] 表示一個字元集合。匹配括弧內的任意字元。如果第一個字
符是^那麼它表示否定模式。例如: [abC] 匹配 a, b, 和C
的任何一個。

^ 表示否定。
* 匹配0個或者多個上述模式。
+ 匹配1個或者多個上述模式。
? 匹配0個或1個上述模式。
$ 作為模式的最後一個字元時匹配一行的結尾。
{ } 表示一個模式可能出現的次數。 例如: A{1,3} 表示 A 可
能出現1次或3次。[a-z]{5} 表示長度為5的,由a-z組成的
字元。此外,還可以表示預定義的變數。

. 匹配任意字元,除了 \n。
( ) 將一系列常規表達式分組。如:{Letter}({Letter}|{Digit})*
| 表達式間的邏輯或。
"一些符號" 字元的字面含義。元字元具有。如:"*" 相當於 [\*]。
/ 向前匹配。如果在匹配的模式中的"/"後跟有後續表達式,
只匹配模版中"/"前面的部分。如:模式為 ABC/D 輸入 ABCD,
時ABC會匹配ABC/D,而D會匹配相應的模式。輸入ABCE的話,
ABCE就不會去匹配ABC/D。

B.規則部分的優先順序

規則部分具有優先順序的概念,先舉個簡單的例子:

%{
#include "stdio.h"
%}
%%
[\n] ;
A {printf("ONE\n");};
AA {printf("TWO\n");};
AAAA {printf("THREE\n");};
%%
此時,如果輸入內容:
[root@localhost liweitest]# cat file1.txt
AAAAAAA
[root@localhost liweitest]# ./parser < file1.txt
THREE
TWO
ONE
Lex分析詞法時,是逐個字元進行讀取,自上而下進行規則匹配的,讀取到第一個A字元
時,遍歷後發現三個規則皆匹配成功,Lex會繼續分析下去,讀至第五個字元時,發現
"AAAA"只有一個規則可用,即按行為進行處理,以此類推。可見Lex會選擇最長的字元
匹配規則。
如果將規則
AAAA {printf("THREE\n");};
改為
AAAAA {printf("THREE\n");};
./parser < file1.txt 輸出結果為:
THREE
TWO

再來一個特殊的例子:
%%
title showtitle();
[a-zA-Z][a-zA-Z0-9]* printf("Var : %s\n",yytext);
%%
並輸入title,Lex解析完後發現,仍然存在兩個規則,這時Lex只會選擇第一個規則,下面
的則被忽略的。這里就體現了Lex的順序優先順序。把這個例子稍微改一下:
%%
[a-zA-Z][a-zA-Z0-9]* printf("Var : %s\n",yytext);
title showtitle();
%%
Lex編譯時會提示:warning, rule cannot be matched.這時處理title字元時,匹配
到第一個規則後,第二個規則就無效了。
再把剛才第一個例子修改下,加深下印象!
%{
#include "stdio.h"
%}
%%
[\n] ;
A {printf("ONE\n");};
AA {printf("TWO\n");};
AAAA {printf("THREE\n");};
AAAA {printf("Cannot be executed!");};
./parser < file1.txt 顯示效果是一樣的,最後一項規則肯定是會忽略掉的。

C.規則部分的使用變數
且看下面示例:
%{
#include "stdio.h"
int linenum;
%}
int [0-9]+
float [0-9]*\.[0-9]+
%%
{int} printf("Int : %s\n",yytext);
{float} printf("Float : %s\n",yytext);
. printf("Unknown : %c\n",yytext[0]);
%%
在%}和%%之間,加入了一些類似變數的東西,注意是沒有;的,這表示int,float分
別代指特定的含義,在兩個%%之間,可以通過{int}{float}進行直接引用,簡化模
式定義。

(3) 用戶子程序部分
最後一個%%後面的內容是用戶子程序部分,可以包含用C語言編寫的子程序,而這些子
程序可以用在前面的動作中,這樣就可以達到簡化編程的目的。這里需要注意的是,
當編譯時不帶-ll選項時,是必須加入main函數和yywrap(yywrap將下後面說明)。如:
...
%%
showtitle()
{
printf("----- Lex Example -----\n");
}
int main()
{
linenum=0;
yylex(); /* 進行Lex分析 */
printf("\nLine Count: %d\n",linenum);
return 0;
}
int yywrap()
{
return 1;
}

三.Lex(Lexical Analyzar) 一些的內部變數和函數
內部預定義變數:
yytext char * 當前匹配的字元串
yyleng int 當前匹配的字元串長度
yyin FILE * lex當前的解析文件,默認為標准輸出
yyout FILE * lex解析後的輸出文件,默認為標准輸入
yylineno int 當前的行數信息
內部預定義宏:
ECHO #define ECHO fwrite(yytext, yyleng, 1, yyout) 也是未匹配字元的
默認動作

內部預定義的函數:
int yylex(void) 調用Lex進行詞法分析
int yywrap(void) 在文件(或輸入)的末尾調用。如果函數的返回值是1,就停止解
析。 因此它可以用來解析多個文件。代碼可以寫在第三段,這
樣可以解析多個文件。 方法是使用 yyin 文件指針指向不同的
文件,直到所有的文件都被解析。最後,yywrap() 可以返回1
來表示解析的結束。

lex和flex都是解析Lex文件的工具,用法相近,flex意為fast lexical analyzer generator。
可以看成lex的升級版本。

相關更多內容就需要參考flex的man手冊了,十分詳盡。

四.關於Lex的一些綜述
Lex其實就是詞法分析器,通過配置文件*.l,依據正則表達式逐字元去順序解析文件,
並動態更新內存的數據解析狀態。不過Lex只有狀態和狀態轉換能力。因為它沒有堆棧,
它不適合用於剖析外殼結構。而yacc增加了一個堆棧,並且能夠輕易處理像括弧這樣的
結構。Lex善長於模式匹配,如果有更多的運算要求就需要yacc了。

『捌』 編程要學習哪些知識

1、首先要明確自己的學習目的,為什麼要學習編程。如果是要考級,那麼建議學VB,因為它語句比較簡單,易上手;如果是真的要掌握一項技術搞研發之用,那麼建議學習C++或Java,因為它們語句功能很強大,雖然難度大一點但很實用;
2、選擇自己要學習語言種類,如VB,C++,Java等
3、最好找一個輔導班配合書本同步學習,因為程序的問題如果自己只是看書的話很難理解,有前輩指點會有事半功倍的效果;
4、語句和循環是最基本的結構,所以無論學習任何語言都要把它們掌握好,這是在學習過程中一定要注意的;
5、一定要多上機操作。程序是抽象的,有時看程序看的懂,但自己去編卻不一定能編的出來;而有時候雖然程序沒看懂,但如果經常著手去編,就會非常熟悉該程序用的時候應該怎麼去處理,時間久了自然就理解了;
6、有了一點的操作基礎以後,就要去背一些簡單的語句體了,這些小的語句在你以後編的大程序里是基礎的基礎
7、最後就是獨立編程了,看到一個編程要求之後,首先要在腦中有一個大體的輪廓,獨立構思,不要看參考揭示,只有這樣才可以達到真正的訓練目的,才可以一步步地把思路培養出來
總之呢,學習編程一定要樹立信心,首先從思想上就不要去害怕它,只有以此為前提,才可以學的更好。

『玖』 PROC編譯

可以把問題描述清楚一點,這樣才能更快獲得幫助。
使用proc來轉換源文件的命令通常是:
proc parse=full USERID=user/pwd@dns SQLCHECK=SEMANTICS yourfile.pc include="/oracle/app/oracle/proct/9.2.0/precomp/public"
其中,parse=full一般是固定的,
USERID後面跟上連接到oracle資料庫的連接字元串,格式為:用戶/密碼@伺服器名
SQLCHECK=SEMANTICS 指明SQLCHECK參數,一般也是固定的
include=&quo肌埂冠忌攉渙圭惟氦隸t;/oracle/app/oracle/proct/9.2.0/precomp/public"指明預編譯時候需要的頭文件路徑
其中/oracle/app/oracle/proct/9.2.0是你的oracle數字路徑,後面的precomp/public是固定的
yourfile.pc 你想要轉換的使用嵌入式SQL編寫好的源文件。
執行之後,如果沒錯,就會生成.c源文件,編譯就可以了。
如果執行出錯,會生成*.lis文件,指出出錯的地方,按照錯誤說明修改之後再試。
需要注意相關環境變數要配置正確,.pc源文件里所用到的表,欄位,存儲過程等在資料庫中要存在,並且,連接上去的用戶要有相關表的訪問許可權。

『拾』 SCI醫學論文寫作的格式和技巧--Editideas(輯思編譯)

SCI醫學英文寫作的格式和技巧,對於是否能不能論文發表成功起到很大的作用;因此,怎樣寫出高水平的SCI醫學論文,是擺在每個醫務工作者面前的一個重要課題。

要寫好SCI醫學英語論文,總體分兩步走:充分准備和論文結構。

充分准備就是指收集資料,看文獻,從中找出靈感和方向,需比較全面地閱讀本領域文章,總結其觀點,密切關注國際研究動態,有關領域學術動態,對領域外的東西或交叉學科也可以借鑒、從而產生新的觀點,多參加座談會,研討會,和同行探討,從中獲得啟示,找出切入點,完善自己的觀點。

論文結構是重點,醫學英語論文寫作有著自己的一套規則和格式,在文章結構和文字表達上都有其特點,只有嚴格遵循國際標准和相應刊物的規定,才能提高所投稿件的錄用率。

整體規劃論文,有一個方法值得借鑒,即劍橋大學愛席比教授提出的概念圖:先把文章大框寫好,從整體考慮文章結構,分類整理,隨時記錄出現的新想法,採用這個方法,不論正式下筆時是從哪一部分寫起,都能夠做到大局不亂。

醫學英語論文的基本格式包括

Title-論文題目Author(s)-作者姓名Affiliation(s)andaddress(es)-聯系方式Abstract-摘要Keywords-關鍵詞Body-正文Acknowledgement-致謝References-參考文獻Appendix-附錄,可空缺Resume-作者簡介視刊物而定Coveringletter投稿信其中正文為論文的主體部分,包括以下五部分:

Introction-引言/概述,MaterialsandMethods-材料和方法,Results-結果,Discussion-討論,Conclusion-結論/總結。醫學英語論文寫作格式分析,Title-論文題目應該恰當、光鮮、醒目,簡明扼要地概括論文的基本思想,突出新的觀點,有新見解,重點突出,一目瞭然,必須吸引讀者。

由名詞片語或名詞短語構成,也可用陳述句。在必須使用動詞的情況下,一般用分詞或動名詞形式,介詞、冠詞小寫。

國際尺度化組織(ISO/215號文件)規定除各國通用的縮寫詞和特殊符號外,標題內不得使用縮寫詞和特殊符號,10-20個詞。

Author(s)-作者姓名按照歐美國家的習慣,名字(firstname)在前,姓氏(surname/familyname/lastname)在後,逐一寫出各自的姓名,以下幾種寫法都可以。

LuxinYang/YangLuxin/ZHANGhong-jun論文的署名是一個很重要的問題。署名一則是分享成果的榮譽,二則是一種責任。

實驗的實施者和執筆者為第一作者。實驗的設計者(指導者)等(如導師或科研團隊的領隊)可為通訊作者,列在排名的最後一位。

Affiliation(s)andaddress(es)-聯系方式在作者姓名的下方還應註明作者的工作單位,郵政編碼,電子郵件地址或聯系電話等。

Abstract-摘要是對論文內容的簡短陳述,為讀者閱讀、信息檢索提供方便,不宜太詳盡,也不宜太簡短,100~250個英文單詞。

摘要主要有兩大類

說明性摘要只向讀者指出論文的主要議題是什麼,不涉及具體的研究方法和結果。一般適用於綜述性文章,也用於討論、評論性文章,以介紹某學科近期發展動態的論文居多。

資料性摘要多用於專題研究論文和實驗報告型論文,盡量完整和准確地體現原文的具體內容,強調指出研究的目的,材料,方法和結果、結論等四要素。

隨著信息科學和電子出版物的發展,近年來又出現了一種新的摘要形式即結構性摘要。先用短語歸納要點,再用句子加以簡明扼要的說明。

Keywords-關鍵詞

關鍵詞是論文主題的濃縮,3-8個關鍵詞。讀者從中可以判斷論文的主題、研究方向、方法等。是為了滿足文獻標引或檢索工作的需要,可從論文中選出的詞或片語,以名詞或名詞短語居多,如果使用縮略詞,則應為公認和普遍使用的縮略語。

Introction引言

用簡短的文字介紹寫作背景和目的,主要內容包括:介紹相關研究的歷史、現狀、進展,目前研究的熱點和存在的問題,說明自己對已有成果的看法,以往工作的不足之處,以及自己所做研究的創新性或重要價值,意義和前景。

要保持鮮明的層次感和極強的邏輯性,這兩點緊密結合,在符合邏輯性的基礎上建立層層遞進的關系。

在前言的結尾必須明確提出本文研究的范圍:時間尺度,研究區域等,明確提出你所關心的某一特定區域。

引言的篇幅大小,兩三百字左右為宜。

MaterialsandMethods材料與方法

這個部分如果是介紹實驗為主,需要文字配合圖表介紹實驗流程,按實驗步驟寫出實驗過程和方法,實驗所用的材料和其特性、一些工藝條件也需簡單或重點介紹。

還要敘述測量設備和測量方法,包括設備名稱、型號、測試什麼參數、測量量程或范圍等。

方法部分可按實驗對象、實驗設備、實驗材料、實驗記錄、實驗分析方法等來組織行文。

實驗對象一般是人、動物或一些組織等,他們的基本信息要描述明白。

實驗設備,要對儀器型號、生產廠家、實驗過程中的用途等作詳細說明。

實驗材料,不同學科有不同要求。對為什麼要選擇這種材料以及材料選擇的必要性,最好有一定的說明。

實驗過程,清楚描述實驗的整個操作流程,一般要附以實驗流程圖進行說明。

Results結果有人把結果和討論放在一起寫,但是大多數論文都是分開的。這兩種做法取決於文章的類型。

結果要求真實准確,不能偽造和篡改,不要故意隱瞞或遺漏某些重要結果,有迷惑或出現了什麼問題都要說明。

結果部分一般要求提供表和圖。文字,圖,表相對獨立,但避免重復。

建議大家在提供圖時,盡量用最少的圖提供最多的信息,最多不超過8個,圖片格式的要求每個雜志各不相同。

Discussion討論

討論是最難寫的部分,因為這裡面最能夠顯示一個作者研究問題的深度和廣度,突出本研究的創新及重要性。從深度和廣度兩個方面進行論述,深度就是論文對於提出問題的研究達到了什麼樣的程度,廣度指是否能夠從多個角度來分析解釋實驗結果。

要突出自己研究的創新性,實驗的獨特性,並體現出顯著區別於他人的特點,區別無論大和小,有區別就是創新。其他研究中沒有得到的,那麼這個結果就是重點討論的對象,探討它有什麼實際意義,參考價值和使用前景,從深度方面探討。

其次要系統闡述為什麼會有這樣的結果,從廣度的角度論述:從實驗設計角度,從理論原理角度,從分析方法角度,或借鑒別人分析方法等。

Conclusion結論

對全文進行總結,對研究的主要發現和成果及其普遍性進行概括總結,有什麼理論與實踐上的意義,讓讀者對全文的重點有一個深刻的印象,行文要保持簡潔。

在本部分也可提出當前研究的不足之處,本論文尚難以解決的問題,對研究的前景,後續工作和進一步研究進行展望,提出建議。

如果此文章只是某項目的一部分,稍做說明。

Acknowledgement-致謝

致謝主要分為兩部分 :

表明研究的基金來源,寫基金時一般要標注清楚基金號碼(GrantNumber)。

對參與人員(沒有列在作者中的研究人員)和單位表示感謝,如果通過一審和最終接受發表,還要加上對editor和anonymousreviewers的感謝。

References-參考文獻

不同雜志對參考文獻格式要求不一樣,參考文獻和引用一定要規范,格式要統一,人名的拼寫一定不能出現錯誤,一般要求必須引用閱讀過的重要的、近年的文獻。

參考文獻的選擇是一項極為嚴肅的事醫學。它關繫到論文的可信度和作者的聲譽,文獻發表的刊物、年代、卷號、標題、頁碼同樣應核實無誤。

參閱所投刊物的投稿須知中對參考文獻的要求,注錄格式,使論文的文獻列舉和標注方法與所投刊物相一致。

其餘部分

Appendix-附錄,可空缺。Resume/CV-作者簡介,視刊物而定。Coveringletter附信,投稿信,也是必備。

結語論文被SCI收錄,學術水平是基礎,編排格式是條件,投稿途徑是關鍵。

由於篇幅有限,文章的結構,邏輯關系就變得非常重要。就象其他任何出版物一樣,被SCI收錄的期刊也在不停地開發自己的市場,作為國際性的科學刊物,在歐美有很大的影響,這與歷史、語言和經濟發展程度等因素有關。隨著中國和亞洲各國經濟、科學的不斷發展,一些刊物也希望開拓這一巨大的市場,這給中國科技人員帶來了更好的機遇。可以預見中國科技研究的結果將會更多的出現在國際科學刊物上。

Editideas(輯思編譯)--源自美國華盛頓的母語編輯品牌,上千名母語專家為您服務。

Editideas(輯思編譯)為科研學者提供SCI/SSCI/EI論文潤色、學術翻譯、投稿預審、目標期刊選擇和學術推廣等科研服務。

熱點內容
動圖在線壓縮 發布:2025-05-14 03:35:24 瀏覽:132
w7共享無法訪問 發布:2025-05-14 03:35:24 瀏覽:482
為什麼微信會出現賬號密碼錯誤 發布:2025-05-14 03:03:30 瀏覽:692
幻影腳本官網 發布:2025-05-14 03:01:13 瀏覽:826
servlet的webxml怎麼配置 發布:2025-05-14 02:51:46 瀏覽:772
怎麼取消手勢密碼 發布:2025-05-14 02:51:11 瀏覽:639
openvpn搭建vpn伺服器搭建 發布:2025-05-14 02:47:52 瀏覽:998
密碼忘了從哪裡找 發布:2025-05-14 02:39:09 瀏覽:548
我的世界什麼伺服器有前途 發布:2025-05-14 02:30:31 瀏覽:528
java程序反編譯 發布:2025-05-14 02:18:46 瀏覽:459