複製鏈接
請複製以下鏈接發送給好友

可變長數組

鎖定
可變長數組是計算機程序設計中,數組對象的長度在運行時(而不是編譯時)確定。
中文名
可變長數組
外文名
Variable-length array
語    言
Ada, Algol 68 , APL
領    域
計算機

目錄

可變長數組簡介

支持可變長數組的程序設計語言有:Ada,Algol 68(for non-flexible rows),APL,C99(以及C11) ,C#,COBOL,Fortran 90,J
C/C++的柔性數組成員是另外一個語言特性。 [1] 

可變長數組例子

下述C99函數內部的局部變量為可變長數組。
float read_and_process(int n){   
     float vals[n];  
     for (int i = 0; i < n; i++)        
     vals[i] = read_val();    
     return process(vals, n);}
同樣的功能用Ada表示:
type Vals_Type is array (Positive range <>) of Float;
function Read_And_Process (N : Integer) return Float is   Vals : Vals_Type (1 .. N);
begin   for I in 1 .. N loop      
Vals (I) := Read_Val;   
end loop;   
return Process (Vals);
end Read_And_Process;
等價的Fortran 90函數:
function read_and_process(n) result(o)    
integer,intent(in)::n    
real::o    
real,dimension(n)::vals    
real::read_val, process    
integer::i     
do i = 1,n      
vals(i) = read_val()   
end do    
o = process(vals, n)end function read_and_process

可變長數組Ada

Ada,是一種程序設計語言。它源於美國軍方的一個計劃,旨在集成美軍系統中運行着上百種不同的程序設計語言編寫的程序,並提高除錯能力與效率,由Pascal及其他語言擴展而成,比較接近自然語言和數學表達式,並用“Ada”命名以紀念埃達·洛夫萊斯(Ada Lovelace)。 [2] 

可變長數組APL語言

APLA Programming LanguageArray Processing Language的縮寫。肯尼斯·艾佛森在1962年設計這個語言時他正在哈佛大學工作,1979年他因對數學表達式和編程語言理論的貢獻而得到圖靈獎。在過去數十年的使用歷史中,APL 從它的原始版本開始不斷改變和發展,今天的版本與1963年發表時的版本已經非常不一樣了。但它始終是一種解釋執行的計算機語言。現代的 APL 版本支持其初始版本不支持的結構和模式編程。APL 至今依然使用一種非標準化的字母表,這一直是他人對 APL 的批評。 [2] 

可變長數組C99

在ANSI的標準確立後,C語言的規範在一段時間內沒有大的變動,然而C++在自己的標準化創建過程中繼續發展壯大。《標準修正案一》在1994年為C語言創建了一個新標準,但是隻修正了一些C89標準中的細節和增加更多更廣的國際字符集支持。不過,這個標準引出了1999年ISO 9899:1999的發表。它通常被稱為C99。C99被ANSI於2000年3月採用。 [2] 

可變長數組ALGOL 68

ALGOL 68(源自英語:ALGOrithmic Language 1968的縮寫),一種指令式編程語言,為ALGOL家族的成員,被認為是ALGOL 60的後繼者。它設計的目標,是提供更廣泛的應用,以及更嚴格的語法定義。 [2] 

可變長數組C#

C#微軟推出的一種基於.NET框架的、面向對象的高級編程語言。C#以.NET框架類庫作為基礎,擁有類似Visual Basic的快速開發能力。C#由安德斯·海爾斯伯格主持開發,微軟在2000年發佈了這種語言,希望藉助這種語言來取代Java。C#已經成為Ecma國際國際標準組織的標準規範。 [2] 

可變長數組COBOL

COBOL,其名稱來自於通用商業語言(英語:Common Business Oriented Language,又譯為面向常規業務型語言/常規商業信息處理語言)的縮寫,是最早的高階編程語言、以及是世界上最早實施標準化計算機語言之一。屬於編譯語言 [1] 

可變長數組Fortran

Fortran語言是為了滿足數值計算的需求而發展出來的。1953年12月,IBM公司工程師約翰·巴科斯(J. Backus)因深深體會編寫程序很困難,而寫了一份備忘錄給董事長斯伯特·赫德(Cuthbert Hurd),建議為IBM704系統設計全新的電腦語言以提升開發效率。當時IBM公司的顧問馮·諾伊曼強烈反對,因為他認為不切實際而且根本不必要。但赫德批准了這項計劃。1957年,IBM公司開發出第一套FORTRAN語言,在IBM704電腦上運作。歷史上第一支FORTRAN編程在馬里蘭州的西屋貝地斯核電廠試驗。1957年4月20日星期五的下午,一位IBM軟件工程師決定在電廠內編譯第一支FORTRAN編程,當代碼輸入後,經過編譯,打印機列出一行消息:“源程序錯誤……右側括號後面沒有逗號”,這讓現場人員都感到訝異,修正這個錯誤後,打印機輸出了正確結果。而西屋電氣公司因此意外地成為FORTRAN的第一個商業用户。1958年推出FORTRAN Ⅱ,幾年後又推出FORTRAN Ⅲ,1962年推出FORTRAN Ⅳ後,開始廣泛被使用。 [2] 
參考資料
  • 1.    ISO 9899:2011 Programming Languages - C 6.7.6.2 4
  • 2.    Michael B. Feldman,Elliot B. Koffman:Ada 95, Addison-Wesley, ISBN 0-201-36123-X