本文發表在《大眾科學》的前部落格網路中,反映了作者的觀點,不一定代表《大眾科學》的觀點
上個月,我寫了一篇關於歐幾里得-馬林序列的文章,這是一個素數序列,當你應用歐幾里得證明存在無限多個素數的演算法時生成。該序列以亞歷山大數學家歐幾里得的名字命名,我們對歐幾里得幾乎一無所知,只知道他生活在公元前300年左右,以及美國工程師阿爾伯特·A·馬林,他生於1933年,卒於2017年。歐幾里得-馬林序列的兩位命名者之間存在相當大的年齡差距!當我寫這篇文章時,我想知道這是否是數學中某件事的兩位命名者之間最大的時間跨度。
很難超越2300年。出於各種原因——文化差異、歐洲中心主義、熱力學第二定律,僅舉幾例——那些為我們目前使用的數學物件和過程命名的人,對公元700年之前的非希臘數學家的名字知之甚少。一些數學知識傾向於以某個歐洲人(或最近的白人美國人)的名字命名,他們對這些知識做了一些工作,即使這些知識在他之前很久就在其他地方為人所知,例如畢達哥拉斯定理、斐波那契數列和蘭伯特四邊形。(已經做出了一些努力來糾正這種情況。我看到過關於距離定理、海瑪錢德拉-斐波那契數列和伊本·海瑟姆-蘭伯特四邊形的說法。這是一個開始。)
我認為不可能在數學中找到比歐幾里得和馬林之間更大的時間跨度,但當我在推特上討論這個問題時,有人提醒我一個名字可以勉強獲勝:波你尼-巴科斯正規化。
支援科學新聞報道
如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道 訂閱。透過購買訂閱,您正在幫助確保關於塑造我們今天世界的發現和想法的有影響力的故事的未來。
在計算機科學中,巴科斯-諾爾正規化或巴科斯正規化(BNF)是一種表示程式語言句法特徵的方法。它以約翰·巴科斯(1924-2007)的名字命名,他提出了這個想法,以及彼得·諾爾(1928-2016),他對符號進行了一些更改。
BNF使用一些符號來表示語言中物件的結構。例如,對十進位制數的BNF描述可以是
因此,一個數字要麼是一個數字,要麼是另一個末尾帶有數字的數字,要麼是一個數字後跟一個句點(我們將解釋為小數點)後跟另一個數字。一個數字是符號0、1、2、3、4、5、6、7、8或9之一。這個定義中固有遞迴,因為“數字”的定義是指“數字”。你可以透過檢視輸入是否具有數字的形式來檢查它是否是一個數字。如果它只有一個數字,它就是一個數字。如果有兩個數字,它就是一個數字(它是一個數字)後跟一個數字,所以它是一個數字。等等。
唐納德·高德納在《計算機協會通訊》的1964年致編輯的信中建議用巴科斯-諾爾正規化來代替巴科斯正規化。巴科斯正規化在技術上不是一個正規化,這確實是更改名稱的一個很好的理由,但諾爾不喜歡他的名字出現在該術語上。幾年後,在同一出版物的另一封致編輯的信中,彼得·齊拉伊·英格曼建議將名稱更改為波你尼-巴科斯正規化,以表彰公元前4世紀的印度學者波你尼,他研究梵語,被許多人認為是第一位語言學家。
波你尼的《阿什塔迪亞依》是現存最早的梵語語法書。在其中,他開發了一種用元語言書寫語言的方式。英格曼寫道,波你尼的符號和BNF一樣強大,因此他的名字也應該被承認。波你尼的確切日期不為人知,但他可能比歐幾里得更早。巴科斯和馬林的日期幾乎相同,所以我認為波你尼-巴科斯正規化在命名者的年代距離方面勝過歐幾里得-馬林序列。
將波你尼-巴科斯正規化描述為數學術語似乎有點牽強,但計算機科學和數學之間的界限非常模糊(並且我對一個以相隔2400年的人命名的術語感到非常興奮),我願意讓它滑過,以及這個名稱實際上從未被採用的事實。但是,如果您是一位正在閱讀這篇文章的計算機科學家,也許您可以改變這一點。波你尼-巴科斯正規化,我支援你!
*一些讀者寫信告訴我,這篇文章頂部的插圖是泰米爾語,而不是梵語。這篇文章頂部的插圖是波你尼的《阿什塔迪亞依》的一部分,這是一部梵語文字。書寫它的文字格蘭塔文字,經常被泰米爾語和其他南印度語言的說話者用來書寫梵語,儘管今天很少使用。(上面的副本製作於19世紀。)在視覺上,這種文字看起來更像書寫的泰米爾語,而不是通常用於書寫梵語的文字,但語言是梵語。我已經在標題中添加了一些額外的資訊來澄清。單擊連結檢視該影像的維基媒體頁面,其中包含更多資訊。我已經與該文物所在圖書館的專家聯絡,以驗證上傳頁面上的資訊是否正確。
