偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為什么程序員說“調(diào)用函數(shù)”?

開發(fā) 前端
“我們調(diào)用子程序EVAL”,“調(diào)用子程序PASS1與PASS2”——這些表達和今天程序員寫Python或Java時說的“call function”別無二致。

程序員常說“調(diào)用函數(shù)”,但這個“調(diào)用”(call)從哪來?最早的靈感不是來自電話,而是來自圖書館。

圖片圖片

文章參考:https://quuxplusone.github.io/blog/2025/04/04/etymology-of-call/

在19世紀,美國圖書館員梅爾維爾·杜威(Melvil Dewey)提出了“索書號”(call number)的概念,用于標識書籍在圖書館中的位置。這個“call”,意為“請求調(diào)取”。

當時,如果一本書不在開放書架,讀者需要填寫“call slip”,向圖書館員“call for”那本書。

到了20世紀40年代末,這種“請求調(diào)取”的說法被移植到了計算機領域。

1947年,電子計算機先驅(qū)約翰·莫克利(John W. Mauchly)寫下了一篇文章,談及了從“子程序庫”中“調(diào)出”(called in)程序模塊的做法。這是“調(diào)用”在編程語境中最早的影子之一。

一、子程序與“調(diào)用”的崛起

進入50年代后,程序開始變得復雜,子程序的概念成為主流。

1956年,“MANIAC II”計算機的匯編程序引入了一個關鍵機制:程序員可以使用紙帶上的“子程序庫”,其中每段子程序都有一個獨立的“call number”標識號,就像圖書館書籍的索書號一樣。

但當時,“調(diào)用”還不是執(zhí)行時的動作,而是匯編階段的一種“調(diào)入”:你告訴匯編器“我要用哪個模塊”,它會“調(diào)入”代碼,將之嵌入最終的程序中。

真正將“調(diào)用”變成程序中實際運行時的操作指令,是1958年面世的Fortran II語言。

Fortran II首次引入了關鍵字“CALL”,你只需寫上CALL MATMPY(...),程序就會把控制權(quán)轉(zhuǎn)交給指定的子程序。

這是一種根本性的語言轉(zhuǎn)變:不再只是在匯編時“call in”,而是在運行時“call function”。

這也是程序員第一次開始真正“說出口”這個動詞:“我們調(diào)用一個函數(shù)”。

到了1959年,《電子與核工程百科詞典》已將“call in”定義為將控制權(quán)從主程序轉(zhuǎn)移到子程序的動作。

盡管這一定義與Fortran II略有差異,但它反映出當時“call”一詞正在迅速普及,并逐漸模糊其匯編與運行的邊界。

二、從CALL到主流:術語的固化與傳播

1960年前后,編程語言之間的“術語感染”達到了新高。

JOVIAL語言在1960年文檔中正式使用“procedure call”一詞,并首次將“call”當作名詞來使用,代表“調(diào)用行為本身”。

而ALGOL語言的報告中則用“call”來表示子程序工作期間的整個時間段,即不僅是跳轉(zhuǎn)動作,還包括執(zhí)行期間的上下文。這是對“調(diào)用”概念的又一次拓展。

到了1961年,Burroughs公司的ALGOL實現(xiàn)說明中,已經(jīng)能看到熟悉的說法:“to call a subroutine”。

而在1963年的麻省理工課堂教材中,“call”一詞的使用已經(jīng)完全現(xiàn)代化:

“我們調(diào)用子程序EVAL”,“調(diào)用子程序PASS1與PASS2”——這些表達和今天程序員寫Python或Java時說的“call function”別無二致。

這種語言的標準化,正是得益于早期語言(如Fortran和ALGOL)中對“CALL”語法結(jié)構(gòu)的設計。

最終,編程語言與人類語言完成了一次完美的融合?!癈ALL”既是計算機代碼里的關鍵詞,也是程序員嘴里的動詞,它從一行Fortran代碼,變成了整個行業(yè)的通用說法。

從圖書館索書,到程序庫取碼,再到函數(shù)調(diào)用,這個簡單的“call”,穿越了近百年的語言變遷。

它從不是隨口而出的隱喻,而是有據(jù)可查的語言演化史。

而程序員們每天敲下的“CALL”,正是這段歷史在鍵盤上的延續(xù)。

責任編輯:武曉燕 來源: 大數(shù)據(jù)文摘
相關推薦

2018-06-13 16:08:34

Java Spring Boo程序員

2022-11-15 09:05:46

CRUD程序員Redis

2017-04-07 10:40:48

程序員學習命令行

2011-09-18 09:42:08

程序員

2011-08-11 14:52:59

2015-09-24 09:04:36

程序員

2013-10-29 10:24:31

程序員漫畫

2015-06-05 14:15:13

程序員難升職

2016-03-15 08:51:12

程序員生活怪異

2012-09-06 10:30:58

2011-12-20 09:01:25

.NET

2014-08-15 11:07:09

程序員

2013-04-18 09:55:05

程序員

2017-03-06 09:06:13

2019-11-08 13:57:53

程序員Excel軟件

2013-09-26 09:34:56

女程序員

2012-08-07 09:34:31

程序員

2011-04-19 09:59:47

工資程序員

2023-03-30 09:10:38

Linux打包

2015-11-02 09:19:10

程序員JavaScript
點贊
收藏

51CTO技術棧公眾號