我使用 ChatGPT 在這十種冷門的編程語言中編寫了相同的程式

圖片9.jpg

幾個星期前,我對使用 ChatGPT 在幾個流行的程式語言中撰寫相同程式進行了一個研究。但作為一個程式語言迷,我想知道 ChatGPT 能走多遠。它能夠處理一個 1950 年代的語言嗎?它能在一個使用其自己字符集的語言中撰寫程式嗎?它能夠寫出自己程式碼的語言之一嗎?

另外: 最佳AI聊天機器人:ChatGPT和其他替代方案可供嘗試

於是,我開始踏入這個領域。我在這裡介紹的程式語言中使用過許多,所以讓我稍作回憶,分享一些我使用它們的經驗。

儘管我沒有運行程式碼本身,但我已經閱讀了所有生成的程式。大部分看起來正確,並顯示出適當的指示符,告訴我們展示的是我要求的語言。

我之所以告訴你這個,是因為所有截圖的標題都是錯誤的。大多數被標記為 SQL。由於某種原因,BAL 被顯示為 VBNet,而 Prolog 被列為 Rust。ChatGPT 上一次沒有犯這個錯誤,但今天對顯示的所有語言都犯了這個錯誤。

那麼,讓我們開始吧。

Fortran

Fortran(或稱 FORTRAN,在那時候被描繪為這樣)是 Formula Translation 的縮寫。它主要用於科學和工程計算。即使它可以追溯到 1950 年代,在 1970 年代和 1980 年代,它常常是工程學生學習的第一門語言。

還有: 這項新技術可能一舉擊敗GPT-4和所有類似的技術

對我來說,這是我學習的第四種程式語言,之前是BASIC、PDP-8組合語言和PDP-8二進位碼(是的,我寫過二進位碼,可以在一台早期小型電腦的前面板上切換)。我爸爸慷慨地帶我開車一小時到紐華克工學院(現在是NJIT),這樣我就可以在我還在高中二年級的時候修習他們的第一年程式設計課程。

Fortran從未受到偏愛,儘管它能完成大部分和計算有關的工作。一種變體的Fortran至今仍在使用,但它在專門的科學工作中相當受限,因為許多其他現代語言可以進行與Fortran相同級別的分析,而且效果更好。

這裡,由於使用了implicit關鍵字,ChatGPT看起來像是表達用 Fortran-77 變體寫的程式碼。

image7.jpg

COBOL

我曾是一名青少年COBOL程式設計師。當時我對COBOL毫無頭緒,但大約在1980年的某個時候,我看到了一個在國際紙業東北區域資料中心(位於新澤西州的丹維爾)招聘COBOL程式設計師的廣告。那個地方距離我父母的家大約40分鐘的車程,而我當時正需要一份暑期工作。一旦我成功安排了一次面試,我就馬上跑到當地的書店,花了一個周末時間吸收所有我能找到的關於COBOL的閱讀資料。

COBOL是為業務導向處理而設計的。如今,同樣類型的客戶往往使用SAP或Salesforce。但是,從下面的COBOL-88代碼中可以看出,COBOL功能強大,但絕對不優雅。

結果他們需要一位全職員工。但由於我在他們的測試中表現出色(顯然我的周末學習勝過了專業人士的分數),他們決定讓我在夏季工作。可以說文化差異是個輕描淡寫的詞。那時正是微型電腦的初期(想像一下個人電腦出現之前的時代),而我熱愛這些東西。與此同時,這些人全都在講究正式服裝、大型數據中心之類的東西。我幾乎立即獲得了“麻煩”的綽號。哎,我當時還只是個孩子。

對我來說,一個重要的時刻是當公司裡的一位經驗豐富的程式設計師拉我到一旁解釋,並引用他的話說:「COBOL就是生命。」我將這個訊息深深銘記心中,於是決定我不想把我的生命奉獻給COBOL。那個夏天是我最後一次寫COBOL的時候。

image11.jpg

RPG(報告程式產生器)

不,這不是火箭推進榴彈發射器或角色扮演遊戲。RPG是一個用於創建報告的程式。您可以在下面顯示的兩個版本中看到語言(以及計算機語言思維,通常情況下)的演進。RPG II可追溯到1950年代末。RPG IV在1990年代進行了更新,並且更加現代(但仍然明顯過時)。

我在大學期間做過一些AS/400上的RPG III程式,但那只是我的業餘愛好,並不是我一直追蹤的事情。

圖片3.jpg

Lisp

我對Lisp有著長久的戀愛關係。Lisp,以 LISt Processor 為名,有時被形容為 Lots of Insipid Stupid Parentheses(註:很多平凡愚蠢的括號)。出於某種原因,這些括號在我的大腦中點燃了火花。Lisp是我進入人工智慧編程的入門藥物,正如ChatGPT處理語言的過程所顯示的,知識可以被表示為字串或列表。

在1980年代,我曾經是一個基於RISC的Common Lisp實現的產品經理,並且在實際編程中使用它一段時間。根據ChatGPT生成的defun greetinglet語法,下面的代碼看起來也是Common Lisp,這是John McCarthy在1950年代末期他原始的Lisp實現的一個後期變體。McCarthy是AI研究的開創者之一,所以AI使用他的語言寫程式非常合適。

照片4.jpg

阿爾高語

ALGOL(ALGOthymic Language)超前於它的時代。它允許將函數作為參數傳遞,並且允許遞迴的使用。這是現代編程的兩個關鍵組成部分,在ALGOL引入之時卻缺失於流行的Fortran和COBOL等語言中。

如果FORTRAN、BASIC和組合語言教會了我自上而下的編程,ALGOL教會了我如何結構化代碼。它是一種基礎語言,為我使用C、Pascal、Java、JavaScript以及我們今天使用的大多數現代結構化語言打下了基礎。

image5.jpg

模擬

如你所想,Simula是為模擬和建模而開發的。就像ALGOL一樣,Simula也領先於其時代,支援使用物件和類別。物件導向程式設計後來成為如今許多最有效的程式語言的基礎。

使用OUTFIX關鍵字告訴我ChatGPT可能是用Simula-67語言寫下以下程式碼。

image6.jpg

BAL(IBM 360/370組合語言)

BAL(基本組合語言)是1970年代和1980年代IBM大型計算機的組合語言。組合語言被認為比高階語言更"低階",這意味著每個指令和關鍵字對應到單個處理器指令。在高階語言中(像我們今天使用的大部分語言),語言常常與底層機器架構相去甚遠,更多地設計用於編程效率而非硬體的高效使用。

我在大學修了一個學期的BAL課程。這真的很辛苦。那位教授大部分時間都背對著學生,在黑板上不停地寫著、喃喃自語地講述著他的講義。我坐在後排,旁邊是一個名叫Laura的女孩。有一天,Laura和我決定偷偷從後窗爬出去買咖啡。我們一拿到咖啡,又爬回了窗戶裡。那位教授從來沒有注意到。

真不可思議我們中的任何人都通過了考試,但幾乎沒有人選擇以BAL編程作為我們的編碼武器。

image8.jpg

APL

APL,或稱為A Programming Language,是另一種程式語言。APL最引人注目的一個特點是,它使用非標準字符集來表示一些運算符和編碼。您可以在下面的圖片中看到這一點。這些小符號是ChatGPT從其所使用的字型中提取出來的,但APL設計使用APL385 Unicode字型,該字型是專屬於APL程式設計的。

由於它具有簡潔的語法和良好的大數據集管理能力,它在許多科學、金融和分析項目中被廣泛使用。

圖片10.jpg

Prolog

Prolog(源於「Programming in Logic」的縮寫)是另一個注重人工智慧的程式語言。Prolog是一種聲明式語言,列出規則和條件,然後對這些聲明進行查詢。根據ChatGPT的說法:

Prolog 是 ChatGPT 開發中使用的其中一種程式語言,特別用於文字生成。它用於 Prolog-to-English 模組,將 Prolog 中的邏輯形式轉換為自然語言句子。

圖片1.jpg

Smalltalk

Smalltalk很特別。它是在影響了滑鼠和視窗環境發展的同一研究實驗室Xerox PARC所開發的。它結合了Simula在物件導向編程中的一些創新並進一步發展。它也是第一批積極運用基於GUI的交互式編程環境的語言之一。許多當今頂級的語言,包括Java、Python和Ruby,都受到了Smalltalk的很大影響。

當時我只是稍微涉獵學習Smalltalk,主要是為了認識它。當時我住在矽谷,與Smalltalk的設計師們相識,他們後來成立了ParcPlace Systems,試圖將Smalltalk推向Xerox公司僵化的企業外部市場。我對於在帕洛奧圖一家破舊的燒烤店裡,享用著燒排骨和涼拌捲心菜的同時,討論著編程理論的美好回憶至今仍然懷念。

在我任職的電腦公司,有一位副總裁曾試圖找我開創一家企業,將 Smalltalk 運用於企業市場,但當時我還未受到初創公司的誘惑。Smalltalk 從未在市場上取得成功。儘管我對我生活的選擇非常滿意,但有時候我還是會想知道如果我接受了他的提議,會發生什麼事。

圖片2.jpg

我有些想法

我沒有執行這段程式碼,而且由於對這些語言的熟悉程度不如對 PHP 和 JavaScript 的熟悉,我無法確定我的視覺檢閱能保證上方顯示的程式碼能夠成功運行。如同本週稍早我們在探索巴德的新程式設計技巧時所看到的,可能會寫出不可運行的程式碼。

還有: 我讓 ChatGPT 寫了一個我需要的 WordPress 擴充功能,它在不到5分鐘內完成了

我們確實知道每個例子中至少有一個錯誤:標題是錯誤的。所以儘管 AI 能夠生成大量相對冷門的編程語言代碼是非常酷的,但不要假設它在完全正確地完成整個工作。

如果您決定將 ChatGPT 程式編入您的工作流程中,您需要像聘請人撰寫基本程式一樣,對它生成的程式碼進行檢查、測試和除錯。

相關文章

查看更多 >>

透過 HIX.AI 釋放 AI 的力量!