非結構化程式設計

非結構化程序設計是歷史上最早的能夠創造圖靈完備算法的程序設計模式。在它之後,歷史上又出現了結構化(過程化)程序設計、面向對象程序設計

非結構化程序設計被批評最嚴重的方面就是會產生很難讀懂的代碼(戲稱麵條式代碼),在創建大型工程方面有時會被認為是很差的,不過,因為賦予程序設計者很大的自由,被人稱讚為如同莫扎特在譜曲。[1].

非結構化程序設計語言既有高階語言,也有低階語言。一些語言通常被印證為非結構化語言,包括JOSSFOCALTELCOMP匯編語言MS-DOS批處理和早期版本的BASICFortranCOBOLMUMPS

特點和典型概念

基本概念

一個使用非結構化語言的程序經常包含按順序排列的命令或聲明,通常每個都占用一行。每一行都有編號或者標籤,這樣程序中的任意行都可以被執行。

非結構化程序設計引入了基本控制流的概念,比如循環、分支和跳轉。儘管在非結構化模式中不存在過程,不過子程序還是可以使用的。和過程不同,子程序可能有多個入口和出口。子程序中是允許直接跳轉入或跳轉出的。這種靈活性可以實現協同程序,而這在過程化程序設計中是相當困難以至於不可能的。

非結構化程序設計中是沒有本地變量的概念的,不過標籤和變量可以在有限的區域中起作用,比如,線組。這意味着在調用子程序時不需要上下文刷新,而所有的變量保持它們之前被調用後的值。這樣,實現遞歸就很困難了。而嵌套的深度被限制在1或2級。

數據類型

非結構化語言只允許基本的數據類型,比如數字、字符串和數組(編號的同類型的變量集合)。儘管非結構化數據類型是被允許使用的,但是在將流數據處理前要注意先對數組定義進行聲明。

參考

  1. ^ William W. Cobern. A positive albeit ambiguous case for BASIC programming in secondary science teaching.

其他來源