『壹』 什麼是編程如何編寫一個程序
設計環境 程序也就是指令的集合,它告訴計算機如何執行特殊的任務。
編寫設計環境 程序是一項系統而繁瑣的工作,它不僅需要程序設計人員具有一定的功底,更需要有良好的編程習慣和風格。良好的編程習慣和風格不僅可以使程序代碼更易於讀懂和修改,更重要的是,它可以使程序的結構更加合理,有助於提高程序的執行效率。
對我們要使用程序設計手段去解決的問題進行系統地分析,了解程序是做什麼的,要達到一種什麼樣的效果等。 結構設計:也就是對程序的整體框架進行設計,設計出我們需要使用的模塊等等,並畫出流程圖。
用戶界面設計:在此,我們要設計出用於與用戶交互的輸入輸出界面。
代碼設計:在這個步驟中,我們要進行代碼的編寫。
調試:對程序中正在發生或可能發生的各種錯誤進行處理。
維護:通俗地說,維護就是對程序進行升級,對原有錯誤進行修改。
『貳』 學習編程的一般步驟是什麼
學習編程,從何入手?x0dx0ax0dx0a1、計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。x0dx0a2、電腦每做的一次動作,一個步驟,都是按照以經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。x0dx0a3、計算機所能識別的語言只有機器語言,即由0和1構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。x0dx0a4、目前通用的編程語言有兩種形式:匯編語言和高級語言。x0dx0a5、匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。x0dx0a6、高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。x0dx0a7、高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。x0dx0a8、高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:x0dx0a解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。x0dx0a9、編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。x0dx0ax0dx0a《編程語言,你選哪一個》x0dx0ax0dx0a 雖然不是每個人都會成為編程高手,但你在使用軟體的時候,也許會冷不丁地冒出個問號:這些神奇的軟體是怎麼編出來的?而對那些將投身於此的「大蝦小蝦」們,接下去的可能是:我什麼時候也能編出個更好的軟體來?好吧,那從哪裡開始呢?編程語言名錄繁多,選擇一個適合自己的編程語言,是你首先要邁出的一步。x0dx0a 你了解最常見的編程語言嗎?你知道最流行的程序開發環境嗎?x0dx0a 你知道Basic、Pascal、C、C++和Jave家族這些常見的編程語言各自都有什麼優點嗎?如果你對這些都不是很清楚的話,那麼下面這一部分你可不能錯過。x0dx0a 基礎篇x0dx0a Basic:x0dx0a Basic是一種非常適合初學者學習的編程語言。它簡單易懂,其命令和語句一般都是英文單詞或縮寫,易於理解,便於記憶。只要具有一些英語知識的人都可以很快地掌握它。擴展地Basic語言常見地有:BASICA、GWBASIC、Quick Basic、Ture Basic和Turbo Basic。其中比較好的是Turbo Basic,它是一種可編譯的語言,所以它的速度更快、效率更高。Turbo Basic不僅保持了Basic語言一貫的比較容易學習的特點,還具有像PASCAL語言那樣嚴謹的基本控制結構。x0dx0ax0dx0a Pascal:x0dx0a Pascal語言是一門結構化的語言,它具有豐富的數據類型和控制結構,簡明易懂,所以特別適合與教學。Pascal語言還是一種自編譯的語言,這就使它的可靠性大大提高了。在Pascal的各個版本中,尤以Turbo Pascal的功能最為強大。如今,在許多學校的計算機語言課上,學的都是Pascal語言,用的都是Turbo Pascal。x0dx0ax0dx0a C:x0dx0a C語言作為系統描述語言,既可以用來寫系統軟體,有可以用來寫應用軟體,自然受到廣大用戶的喜愛。C語言有許多優點,它靈活性好、效率高、實用性強,而且對硬體的控制能力很強。人們常把C語言稱作中級語言,意指它是一門介於高級語言和匯編語言之間的語言。x0dx0ax0dx0a C++:x0dx0a 隨著軟體規模的不斷擴大,人們發現,使用傳統的「數據結構+演算法」的結構化編程模式已經難以適應軟體的發展了。這時,「面向對象+消息」的程序設計思想便逐漸被人們所注意。對於C語言,人們發現當C語言程序的規模超過5萬行時,程序就變得難以調試和維護。這時,將面向對象的思想引入C語言變成了程序員的共同心願。於是,C++語言便應運而生了,它以C語言為基礎,引入了面向對象的思想,成為目前最流行的編程語言之一。x0dx0ax0dx0a Java:x0dx0a 如果要用一句話來描述Java,那就是「一種簡單的、面向對象的、解釋型的、健壯的、安全的、結構中立的、可移植的、高性能的、多線程的、動態的語言」。同是面向對象的語言,Java與C++相比更加安全而且具有更高的可移植性。Java程序需要在安裝有Java虛擬機的平台上執行。要求在Java應用程序運行時每一步都強制執行安全措施,這必然會導致編譯執行速度下降,但魚與熊掌不可兼得,畢竟Java已經如此強大了。x0dx0ax0dx0a JavaScript & Java Applet:x0dx0a Java是一種具有獨立功能得強大得語言,與網路沒有必然得聯系;相比之下,JavaScript和Java Applet就更適合在網頁中開發和使用。JavaScript被稱為Java的腳本程序,是Java程序的簡化。通過編程,你可以根據需要動態地創建你的主頁。JavaScript是一種解釋型的語言,所以程序不需要進行預編譯,只有當程序被執行時才被轉化為可執行代碼。x0dx0a 與前者相比,Java Applet才更像是一個程序。它是一類被嵌入到Web頁中的由與Java兼容的瀏覽器控制執行的程序,Java Applet程序需要事先被編譯成class文件,然後將它導入到網頁中由瀏覽器控制執行。x0dx0a 如果能熟練地掌握這兩種語言,你的網頁一定會增色不少。x0dx0ax0dx0a SQL語言:x0dx0a SQL語言簡稱「結構化查詢語言」,它結構簡潔、功能強大、簡單易學,如今無論是像Oracle、Sybace、Informix、SQL Server這些大型的資料庫管理系統,還是像Visual Foxpro、PowerBuilder這些微機上資料庫開發系統,都支持SQL語言作為查詢語言。x0dx0ax0dx0a 開發篇x0dx0a 當前在不同的程序設計領域都有各自的一些著名的軟體開發工具,我們今天就先把目光投向VB、VC、Delphi、C++ Builder、PowerBuilder這些大哥大級的開發工具上吧。x0dx0ax0dx0a Visual Basic:x0dx0a VB除了有強大得資料庫編程能力,還引入了面向對象得程序設計思想。它功能強大,學習簡單。而且,VB還引入「控制項」的概念,使得大量已經編好得VB程序可以被我們直接拿來使用,就像搭積木一樣簡單。如今,VB已經有了6.0版。對於初學者來說,用VB編程是一件很容易上手的事。x0dx0ax0dx0a Visual C++:x0dx0a Visual C++可以說是為專門的程序設計人員而推出的。它的功能在當前的程序設計工具中可以說是最強大的,可以說沒有VC做不到的,只有你想不到的。x0dx0ax0dx0a Delphi:x0dx0a 以Object Pascle為基礎,擴充了面向對象的能力,並且完美地結合了可視化的開發手段。Delphi使用了本地編譯器直接生成技術,使程序的執行性能遠遠高於其它產品生成的程序。它還是真正的面向對象的編程語言,人們預測Delphi將會成為可視化編程的主流環境。x0dx0ax0dx0a C++ Builderx0dx0a CB是將C++的面向對象與可視化緊密結合起來的一個強大的、開發效率高的集成開發環境。CB的兼容性極強,它支持OWL 、VCL和MFC這三種常見的類庫。在BC和VC下通過的程序幾乎不用做任何修改就可以在CB下編譯通過。可以說CB是VC強有力的競爭者。x0dx0ax0dx0a PowerBuilder:x0dx0a PowerBuilder是新一代資料庫應用開發工具,它支持應用系統同時訪問多種資料庫。PowerBuilder是完全可視化的資料庫開發工具,它提供了大量控制項,大大加快了項目的開發速度。其編程語言叫做PowerScript,也是一種高級的、結構化的編程語言。PowerBuilder適合初學者快速學習資料庫開發,是一種適用面非常廣的開發工具。x0dx0ax0dx0a方案一 Basic語言 & Visual Basicx0dx0ax0dx0a優點 x0dx0a(1)Basic 簡單易學,很容易上手。 x0dx0a(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。 x0dx0a(3)眾多的控制項讓編程變得象壘積木一樣簡單。 x0dx0a(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。x0dx0ax0dx0a缺點 x0dx0a(1)Visual Basic 不是真正的面向對象的開發工具。 x0dx0a(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。 x0dx0a(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。x0dx0ax0dx0a結論:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。x0dx0ax0dx0a方案二 Pascal語言 & Delphix0dx0ax0dx0a優點 x0dx0a(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。 x0dx0a(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。 x0dx0a(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。 x0dx0a(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。x0dx0ax0dx0a缺點 x0dx0aDelphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。x0dx0ax0dx0a結論: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。x0dx0ax0dx0a方案三 C語言 & Visual C++x0dx0ax0dx0a優點 x0dx0a(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。 x0dx0a(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。 x0dx0a(3)VC是微軟製作的產品,與操作系統的結合更加緊密。x0dx0a缺點 x0dx0a對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它過於專業x0dx0ax0dx0a結論: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。x0dx0ax0dx0a方案四 C++語言 & C++ Builderx0dx0ax0dx0a優點 x0dx0a(1)C++語言的優點全部得以繼承。 x0dx0a(2)完全的可是化。 x0dx0a(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。 x0dx0a(4)編譯速度非常快。x0dx0a缺點 x0dx0a由於推出的時間太短,關於它的各種資料還不太多。x0dx0ax0dx0a結論:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。x0dx0ax0dx0a方案五 SQL語言 & Power Builderx0dx0ax0dx0a對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。
『叄』 漢語程序設計語言的編譯原理
漢編系統是一個互動式的程序設計環境,最初是為程序員在小型和微型計算機上開發應用程序而設計的。主要應用於科學計算和工業控制,比如儀器、機器人、過程式控制制、圖形和圖像處理、人工智慧和商業應用。漢編語言的主要優點是軟體開發快速、互動式、計算機硬體的高效使用等。
漢編語言與傳統語言最大的不同是它的可擴展性。漢編語言的編程過程就是定義新的詞,詞實際上就是語言的新命令。詞可以用一系列以前定義的詞來定義,這個過程與教育孩子的過程相似:我們總是用孩子們以前理解的概念來教給孩子們新的概念,而這些詞被稱為「高級定義」。同樣,新的詞也可以用匯編代碼定義。
可擴展性的結果是我們在開發一個應用的同時,也間接地開發了一個特殊的、針對這一類應用的「面向應用的模塊,它可以用於或者經過修改之後被用於相似的應用。
漢編語言的可擴展性並不僅僅是為語言自身增加新的命令,所以不要把定義詞與傳統高級語言定義函數、過程等同。漢編系統還能對定義詞(建詞)進行擴展,創建一個可以定義其它詞的詞,這種詞被稱為「定義詞」。在創建這樣一個定義詞的時候,程序員能夠指定它所創建的詞在編譯時間、運行時間或者這兩種狀態下的特殊行為。這個能力允許我們定義特殊的數據類型,並對其行為和結構實施完全的控制。又由於這種詞的運行時行為可以用高級語言或者匯編語言來定義,所以由定義詞創建的詞將具有與其它漢編詞一樣的性能。系統也允許我們增加一個新的「編譯指示符」以實現特殊類型的循環或者其它的控制結構。比如,漢語言定義一個程序變數的詞:給,其代碼大概如下:
編給(32位數-<變數名>-)編譯時
(---32位數)運行時
建詞可用地址4位元組空出寫
動作讀
。
定義變數時
5給變數一
則5被自動寫入變數一的實體域中
運行「變數一」時
變數一
則變數一實體域中的數字5被自動讀取,放到數摞上 漢編詞可以使用以前定義的詞或者匯編代碼來定義,它們與其它語言的子程序相似,也與其它語言的命令等效。漢編系統允許我們在鍵盤上打入一條指令的詞名,這個詞將被立即執行。然而,如果我們把功能的詞名放到定義中,將編譯成對於這個詞的引用。
高級詞是由其它詞的集合來定義的,我們可以把這個過程想像成是其它語言的宏。新的詞被加入到它們可以使用的存儲器中,其定義被加入到詞典中。在一個漢編詞的命名規則中,只有很少的幾個字元不能作為詞名使用。
當遇到一個詞的時候,漢編系統就通過詞典搜索希望找到這個詞的定義,如果找到這個詞定義的功能,或者被立即執行,或者作為引用而被編譯到新的定義中。然而,如果在詞典中沒有找到這個詞,系統就試著把它轉換成一個數。如果轉換成功,就把它放在數摞上。如果不能轉換成數字,就顯示這個未定義的詞名並列印出一個錯誤的信息來報告這個詞是系統所不知道的。
漢編詞的執行流程大概可以用一個詞來模擬如下:
編查詞測試
{詞名串--}
255個位元組空給詞名串
詞名串255填0
詞名串字串傳送
詞名串(查詞)
0=
就
計位元組
串>數
就
♀
否則
字串未定義詞名串字串+傳送
詞名串計位元組
回車印字串
全復位
然後
否則
執行
然後
。★
字串看數摞查詞測試數摞已空!★
字串123456查詞測試★.
看數摞[1]123456★.
顯123456★
字串看方法查詞測試
看方法未定義
漢編系統編譯流程如右圖(流程圖來源:漢編新浪博客)所示。
漢編語言堅持「結構化程序設計」原理:
·詞必須在引用之前被定義;
·邏輯流限制只有順序、條件和循環,有專門的詞用於實現常用的程序控制結構;
·程序員使用許多小的、獨立的模塊(詞)來實現最大的可測試性和可靠性;
這種方法有兩個明顯的優點
·新的詞總是用以前定義和測試過的詞來構造,所以調試更容易。模塊可以單獨執行以測試它的功能;
·固有的模塊性使漢編語言成為一個「設計性語言」,允許自頂向下的設計同時保持自底向上的測試。一個詞可以在不同的程序中使用,但是它的功能只需要定義一次;
這些都保證了漢編軟體能夠快速和有效地被開發,同時,如果管理得當,也可以作為自身文檔的基礎。
漢編語言的5個主要元素決定了它的特點:
·一個詞典;
·兩個數摞,一個是參數摞,另一個是用於嵌套的返回摞;
·鍵盤(輸入流)解釋器;
·一個編譯器;
·虛擬存儲; 詞典是漢編定義詞的數據和代碼存儲空間,也為編譯建立了詞的索引。詞典中的詞包括漢編程序代碼詞、常數定義詞、變數定義詞、不定量定義詞,面向對象部分還有模板、對象、對象事件、消息。
漢編代碼存儲在詞典中。詞典占據了系統存儲器的很大部分,它由一個串線鏈接的可變長度的項目組成,每個項目定義了一個詞。每個定義的內容根據詞的類型(數據項、常數、操作序列等)而有所不同,詞典是可擴展的。
詞是由「定義詞」加入詞典的,最常用的定義詞是「編。」當「編」執行的時候,馬上就把後面的詞名掃描,建立一個詞典項,然後進入「編譯」模式。有許多不同的編譯方法,最常用的是「串線編碼」,這種方法把定義編譯成一系列以前定義詞的地址引用。詞的定義由「。」(句號)結束。下面就是一個詞的定義:
編平方(--)♂*顯。
當一個詞名項被編譯到詞典中的時候(稱為定義的首部),它包含一個指向詞典中前一個首部的指針。新詞的詞名加入詞典(這里就是平方),接著一個指向詞名為「(編)」子程序調用的指針編譯到詞典中作為定義的第一部分,這個指針指向一段在解釋定義體時需要執行的代碼。當然,這里所說的不是唯一的編譯技術,但它的應用最為普遍,這種技術稱為間接串線編碼,因為定義中的第一個項目是一段代碼的引用,這段代碼知道如何解釋定義的其它部分。
定義的其它部分稱為這個定義的體。在編譯模式下,系統將依次尋找每個詞的首部。每個首部地址依次放到定義體中,這樣就產生了一個地址列表。最後在到達「。」時,詞名為「。」的子程序地址被編譯進詞典。「。」子程序用來將控制返回到調用詞,就像一個子程序返回一樣。