程序設計(Programming)是給出解決特定問題程序的過程,是軟件構造活動中的重要組成部分。程序設計往往以某種程序設計語言為工具,給出這種語言下的程序。程序設計過程應當包括分析、設計、編碼、測試、排錯等不同階段。專業的程序設計人員常被稱為程序員。
某種意義上,程序設計的出現甚至早于電子計算機的出現。英國著名詩人拜倫的女兒Ada Lovelace曾設計了巴貝奇分析機上解伯努利方程的一個程序。她甚至還建立了循環和子程序的概念。由于她在程序設計上的開創性工作,Ada Lovelace被稱為世界上第一位程序員。
任何設計活動都是在各種約束條件和相互矛盾的需求之間尋求一種平衡,程序設計也不例外。在計算機技術發展的早期,由于機器資源比較昂貴,程序的時間和空間代價往往是設計關心的主要因素;隨著硬件技術的飛速發展和軟件規模的日益龐大,程序的結構、可維護性、復用性、可擴展性等因素日益重要。
另一方面,在計算機技術發展的早期,軟件構造活動主要就是程序設計活動。但隨著軟件技術的發展,軟件系統越來越復雜,逐漸分化出許多專用的軟件系統,如操作系統、數據庫系統、應用服務器,而且這些專用的軟件系統愈來愈成為普遍的計算環境的一部分。這種情況下軟件構造活動的內容越來越豐富,不再只是程序設計活動了,還包括數據庫設計、用戶界面設計、接口設計、通信協議設計和復雜的系統配置過程。
程序設計(Programming)是指設計、編制、調試程序的方法和過程。它是目標明確的智力活動。由于程序是軟件的本體,軟件的質量主要通過程序的質量來體現的,在軟件研究中,程序設計的工作非常重要,內容涉及到有關的基本概念、工具、方法以及方法學等。
按照結構性質,有結構化程序設計與非結構化程序設計之分。前者是指具有結構性的程序設計方法與過程。它具有由基本結構構成復雜結構的層次性,后者反之。按照用戶的要求,有過程式程序設計與非過程式程序設計之分。前者是指使用過程式程序設計語言的程序設計,后者指非過程式程序設計語言的程序設計。按照程序設計的成分性質,有順序程序設計、并發程序設計、并行程序設計、分布式程序設計之分。按照程序設計風格,有邏輯式程序設計、函數式程序設計、對象式程序設計之分。
程序設計的基本概念有程序、數據、子程序、子例程、協同例程、模塊以及順序性、并發性、并行性、和分布性等。程序是程序設計中最為基本的概念,子程序和協同例程都是為了便于進行程序設計而建立的程序設計基本單位,順序性、并發性、并行性和分布性反映程序的內在特性。
程序設計規范是進行程序設計的具體規定。程序設計是軟件開發工作的重要部分,而軟件開發是工程性的工作,所以要有規范。語言影響程序設計的功效以及軟件的可靠性、易讀性和易維護性。專用程序為軟件人員提供合適的環境,便于進行程序設計工作。
計算機程序或者軟件程序(通常簡稱程序)是指一組指示計算機每一步動作的指令,通常用某種程序設計語言編寫,運行于某種目標體系結構上。打個比方,一個程序就像一個用漢語(程序設計語言)寫下的紅燒肉菜譜(程序),用于指導懂漢語的人(體系結構)來做這個菜。 通常,計算機程序要經過編譯和鏈接而成為一種人們不易理解而計算機理解的格式,然后運行。未經編譯就可運行的程序通常稱之為腳本程序。
程序設計語言(ProgrammingLanguage)是用于編寫計算機程序的語言。語言的基礎是一組記號和一組規則。根據規則由記號構成的記號串的總體就是語言。在程序設計語言中,這些記號串就是程序。程序設計語言包含三個方面,即語法、語義和語用。語法表示程序的結構或形式,亦即表示構成程序的各個記號之間的組合規則,但不涉及這些記號的特定含義,也不涉及使用者。語義表示程序的含義,亦即表示按照各種方法所表示的各個記號的特定含義,但也不涉及使用著,語用表示程序與使用的關系。
程序設計語言的基本成分有:①數據成分,用于描述程序所涉及的數據;②運算成分,用以描述程序中所包含的運算;③控制成分,用以描述程序中所包含的控制;④傳輸成分,用以表達程序中數據的傳輸。
程序設計語言程序設計程序設計語言計算機IT按照語言級別可以分為低級語言和高級語言。低級語言有機器語言和匯編語言。低級語言與特定的機器有關、功效高,但使用復雜、繁瑣、費時、易出差錯。機器語言是表示成數碼形式的機器基本指令集,或者是操作碼經過符號化的基本指令集。匯編語言是機器語言中地址部分符號化的結果,或進一步包括宏構造。高級語言的表示方法要比低級語言更接近于待解問題的表示方法,其特點是在一定程度上與具體機器無關,易學、易用、易維護。
程序設計語言按照用戶的要求有過程式語言和非過程式語言之分。過程式語言的主要特征是,用戶可以指明一列可順序執行的運算,以表示相應的計算過程,如FORTRAN、COBOL、PASCAL等。
按照應用范圍,有通用語言與專用語言之分。如FORTRAN、COLBAL、PASCAL、C等都是通用語言。目標單一的語言稱為專用語言,如APT等。
按照使用方式,有交互式語言和非交互式語言之分。具有反映人機交互作用的語言成分的語言成為交互式語言,如BASIC等。不反映人機交互作用的語言稱為非交互式語言,如FORTRAN、COBOL、ALGOL69、PASCAL、C等都是非交互式語言。
按照成分性質,有順序語言、并發語言和分布語言之分。只含順序成分的語言稱為順序語言,如FORTRAN、C等。含有并發成分的語言稱為并發語言,如PASCAL、Modula和Ada等。
程序設計語言是軟件的重要方面,其發展趨勢是模塊化、簡明化、形式化、并行化和可視化