2009-07-06 59 views
2

編程已經走過了一段很長的路。我還比較年輕(第一臺計算機:C64),因此我認爲編程中的許多事情是理所當然的,這在某種程度上是明顯引入的,並且促進了現在普遍的編程方式。什麼時候和以什麼語言介紹了某些編程功能?

以下是功能,在這裏我很想知道(不完整)列表,其中的語言,當他們被介紹:

  • 引進功能
  • 編譯語言
  • 解釋語言
  • 條件&環結構
  • 陣列
  • 字典(哈希表)
  • 津貼的多線程
  • 函數式編程(功能數據)
  • 面向對象(我們需要更具體一點嗎?也許繼承了那裏比早先的接口?)
  • 仿製藥
  • 面向方面編程
  • 元編程

如果可以的話,嘗試備份你的發言具有一定的參考。如果您覺得我錯過了一個重要的編程語言功能,那麼也應該讚賞其介紹,請對此問題發表評論,以便將其添加到列表中。

UPDATE: 我想,一個編程語言無法引入任何會不會在彙編有可能,我寧願尋找一個可供「凡人」一定功能的語言。

+6

不得不說:http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html – Stobor 2009-07-06 08:49:16

+0

@Frank,只需點擊「編輯」,然後選中「社區維基「編輯區下方的複選框。 – 2009-07-06 09:08:03

+0

我認爲你可以有沒有繼承和接口的面向對象。 – lhahne 2009-07-06 09:26:50

回答

8

Lisp。 1958年

另外,

  • 引進功能 - 邱奇的演算1930

  • 編譯語言 - 格雷斯料斗,1952年

  • 解釋語言 - Lisp的,1958年,也許之前的東西。

  • 有條件&環結構 - Bletchley公園Bombe 20世紀40年代(跑在一個循環)。提花,1801

  • 陣列 - 作爲一個連續的內存塊與索引,Bletchley公園或曼徹斯特嬰兒,20世紀40年代

  • 字典(哈希表) - ?多線程的

  • 津貼 - 提花,1801; MULTIX 1965

  • 函數編程(用作數據) - 哥德爾,1930

  • 對象取向

    • 西穆拉(達爾和尼高1967),用於基於類OO與繼承
    • CLU(里氏1975)迭代器有一個共同的接口,並允許帶有封裝狀態和行爲
    • Smalltalk中(凱70年代後期)的抽象數據類型「一切都是對象」
    • Eifell(邁耶1986年),契約式設計的影響Java的interface小號
  • 泛型 - 泛型方法LISP(再次)或參數類型(MODULA ??? )?

  • 面向方面編程 - Common Lisp的元對象協議,80年代末

  • 元編程 - Lisp的宏,有時在上世紀50年代或60年代

1

您可以在此處使用語言圖形:http://www.levenez.com/lang/和維基百科以查找答案。對於初學者來說:自Fortran以來,函數,循環和條件都與我們在一起。然後,在1958年Lisp到了,我想有些人會爭辯說,其餘的時候來了:)

+0

不錯的圖表。這將在我的辦公室牆上在辦公室:) – flq 2009-07-06 09:52:07

0

我認爲我們可以放心地說「彙編」。大部分(如果不是全部)這些概念已經存在很長時間了。

1

查找首創總是導致頭髮分裂。我敢打賭,你們中的任何提及被做幾次的事情交給他們打大的時間之前。儘管如此,這是一個嘗試:

  • 函數 - FORTRAN,但不遞歸。 LISP或大陵遞歸。
  • 編譯語言 - FORTRAN
  • 解釋語言 - LISP
  • 條件和循環結構 - FORTRAN,但陵給我們結構化的程序
  • 陣列 - FORTRAN
  • 字典 - SNOBOL,我認爲
  • 允許多線程 - PL/I
  • 函數式編程 - LISP,但可能沒有強烈的意義。
  • 面向對象 - 西穆拉但Smalltalk的是真正的普及者
  • 泛型 - 不知道
  • 方面爲本 - 不知道
  • 元編程 - 也許C++,但隨後碼生成代碼是不是一個新概念
4

據我瞭解(和維基百科的幫助下),我將陳述如下:

  • 功能 - 早期Assembly,使用諸如「跳轉到子程序」等指令。
  • 編譯語言 - 於1952年按理說A-0或[FORTRAN(http://en.wikipedia.org/wiki/FORTRAN於1957年
  • 解釋語言 - ?。Smalltalk()在20世紀70年代
  • 條件&環結構 - 早Assembly,使用分支/跳躍
  • 數組 - 用於最早的計算機(1940年代)。作爲語言功能出現在FORTRAN。請參閱this text
  • 散列表 - 與數組大約在同一時間,因爲它只在數組數據結構上真正使用基本算法。作爲一個班級,也許DictionarySmalltalk
  • 多線程 - 這也是操作系統/庫的一個特性,儘管語言特性當然可以促進多線程編碼。它可能要追溯到20世紀60年代/​​ 70年代,但我想可以在Assemby中完成。
  • 函數式編程 - LISP在20世紀50年代,靈感來自Alan Turing的lambda calculus
  • 面向對象(OOP) - Simula在20世紀60年代。
  • 泛型 - CLU在20世紀70年代。
  • 面向方面的編程 - 在2001年也許AspectJ(有人可能需要糾正我在這個)
  • 元編程 - 早Assembly,自修改代碼。

請隨時修改/更新此任何附加信息。