語言
有關Reko Wiki的緊急聯絡可以電郵至crossbonegod@gmail.com或 直接聯絡Facebook專頁 |
現時Reko Wiki可能會出現連線不穩的情況,如有相關問題發生可以留意Discord群組。 |
凡加入Reko Wiki之註冊者,請先閱讀Reko Wiki使用須知條目。 已有編輯動作之編輯者會被視為已閱讀該條目。 |
使用須知可能會因應不足之處或爭議行為而有所擴充,請各編輯者隨時注意使用須知條目。 |
為保護條目,現時須註冊並確認電郵才能夠進行編輯,敬請原諒。 歡迎各位新註冊的編者一同加入Reko Wiki的Discord群組一同討論 |
由於營運Reko Wiki的Cross將有一段時間失業,所以現時會開放Buy Me A Coffee的連結以作收款用途。 所得收入主要用作維持伺服器運作以及域名年費,希望各位能夠多多少少支持。 捐款額最高為400新台幣/100港幣/2000日圓,量力而為。 |
語言/言語/Language
解說
- 連續變換音調與發音的表達方式,一般定義為人類使用
- 動物的語言各有不同,但如何理解以及用人類的方式再現則還有一定難度
- 現今有模擬的「狗語翻譯機」,解讀狗類的叫聲與情緒,重現為人類的語言
- 動物的語言各有不同,但如何理解以及用人類的方式再現則還有一定難度
- 書寫出來則是文字,由於部分民族沒有發展出文字系統,它們的文化記錄除了借用其他文化的文字外[1],相對只能由歌謠、故事來探究,這方面的媒介就是語言。
- 因此請比起說中文,說國語、說中國語、說漢語或者是說華語更為合適。
- 另外無論粵語,客語還是臺語都是漢語語族的語言(或一級方言),嚴格來講是漢語的一種,此時如果因為聽不懂對方所講的內容而要求使用該語言者講中文是極爲無禮的表現。
- 此外用在撰寫電腦程式上的通稱為程式語言
- 因此請比起說中文,說國語、說中國語、說漢語或者是說華語更為合適。
- 除了交流溝通外,語言也是個人身分認同以及文化構成的關鍵之一。羅馬尼亞思想家埃米爾·蕭沆曾說過「人不是住在國家裡,而是住在母語裡,母語才是我們的祖國。」
- 順帶一提,Reko Wiki使用台灣,香港,澳門使用的繁體(又稱正體)中文為主要編寫語言,並以英語和日語為輔助語言。另外在行文上允許使用兩岸三地的用語,但禁止使用火星文,也對粵文,注音文和簡體中文進行管制。
自然語言
- 想要粗略了解世界各大語言者可參照「世界各大語言概況」條目
- 自然語言是伴隨文化與歷史而生,隨著文化演進而會有不同系統,常由單一語系演化
- 部分人士將用以區別或歸納不同族群,而導向國族統一與種族主義等政治活動
- 追溯根源由於經常牽扯到民族變遷及人口消長,易被視為對現有國家的格局、體系、情勢反對
- 據估計,世界上目前的約有6909種,其中約2000種有書面文字,2500種瀕臨沒有母語使用者的危機
- 語言學家曾考究印歐語系諸語言,假設一「原始印歐語」為印歐語系的起源,再由此分別向東、西發展,涵蓋歐亞大陸的主要文化圈
- 由於是假設,因此只能大致歸納語音語言發展的趨勢而不能完全反映發展軌跡
- 透過研究不同之間發音相似且意義相近的單字,再歸納其中象徵,逆向推算出文化歷史間的演變、或原始人類對語言的定義規則
- 簡單的例子是父與水的關聯:
- 父:Father(英語)、Vater(德語)、père(法語)
- 水:Water(英語)、Wasser(德語)、marée(法語)
- 這類研究在純以文字為載體而沒有音訊記錄情形下很難進行,因為文字也可能隨時代有不同讀音、諧音,必須靠大量史料並依照序來湊出規律,或是實地到各地鄉村去紀錄方言口音
- 例如中文系科目的訓詁學(解語言意義的學問)、聲韻學(解文字讀音的學問)以現今的普通話北京語無法著手,必須從閩語、粵語、四川話等方言才能解讀
- 雖然也可藉由電腦模擬發音來還原,但往往顯得艱深難解
- 如果搭配上文字學(解文字演變的學問)的研究,靠前兩者得出的結論也會顯得牽強,直至現今這三項學問仍會併在一起以「小學」(稱之為小學是因為中國的文人認為相對於文學理論、哲學、政治學等他們認為深奧的學問而言,這三項是基礎且微末、不重要的學問
若認真探討起來有可能會動搖歷代王朝的大一統體系)稱之 - 中國系的語言通稱「漢藏語系」,一如其名,原始的西藏語和上古漢語關係也匪淺,一些語言學家也會用西藏語來追尋上古時代漢語的唸法。
- 除了印歐語系與漢藏語系外,另外還有阿爾泰語系[2]、亞非語系[3]、南島語系[4]、南亞語系[5]等較大型的語系
- 其中韓文、日文(包括琉球文)經常被歸屬在阿爾泰語系中,但兩者與此之間幾乎沒有同源詞[6],這點也讓不少學者對此抱不同意見。
- 也有學者認為韓文、日文(包括琉球文)應該是不屬於任何語系的孤立語言
- 此外根據語法不同,另外有一種語法形式的分類方式:
- 分析語(或稱孤立語,但因為容易與上面的孤立語言搞混,現在多用分析語):是一種不透過改變詞內部構造的方式來表達語意的語言
- 黏著語:和分析語是一種對比,主要是透過改變詞尾綴詞的方式來表達時間、狀態與詞性的語言
- 日語是一個顯著例子,一個動詞與形容詞透過詞尾的變化來表達各種類型的含意,
例如「知る(知道)/shir-u[14]」→「知らせる/shir-ase-(r)-u(讓你知道,詞尾改為ら未然形並加上使役詞綴させる/-ase-)」
→「知らせられる/shir-ase-(r)-are-(r)-u(被迫知道,將させる後面的る去除變成未然形再加上被動詞綴られる/-are-)」
→「知らせられない/shir-ase-(r)-are-na-i(沒被要求知道,再次將られる後面的る去除改為未然形並加上否定詞ない/-na-)」
→「知らせられなかった/shir-ase-(r)-are-na-k-atta(之前沒被要求知道,將ない視作形容詞,去除語尾い改為過去式的かった/-k-atta[15])」[16] - 此外大部份的阿爾泰語系也都有強烈的黏著語性質
(這也是為何韓文、日文會被部分學者歸類至阿爾泰語系的原因) - 世界語因為透過詞尾來辨識詞性(如名詞o、不定動詞is、現在式動詞as、形容詞a)、
複數(複數名詞在後面加j)與受格(受格在後面增加n),故也被視為一種黏著語的表現
- 日語是一個顯著例子,一個動詞與形容詞透過詞尾的變化來表達各種類型的含意,
- 屈折語:介於黏著語與分析語之間的類型,主要是一個詞綴可以表達多種含意
- 法語、德語、俄語和拉丁文等印歐語系語言經常被視為屈折語的表徵
- 多式綜合語:黏著語的一種極端表現,雖然是一個詞,但因為構成的語素中有主詞、動詞、受詞等類型,一個詞就幾乎等同於一句話
- 這種類型的語言多分布在原住民語言中,特別是美洲與非洲,可能是因為研究者多數出身於此區域外,使用的研究語言也有所不同,造成解析結構的差異。
人工語言
- 為了特殊用途(術語)而被創造出的語言,不像自然語言歷經長年演化,卻能產生特定影響力
- 雖然是人造的但擁有語法規則和語言結構,為可以使用而且完整的語言體系,
只有符號組成而沒有完整結構與相應口說語言支持的不算在內。
- 雖然是人造的但擁有語法規則和語言結構,為可以使用而且完整的語言體系,
- 文藝創作中則常出現將自然語言經過字母調換之後組成的語言,
但多數被用在密碼、解謎,或是用來塑造角色的特色- 通常是改變特定的音節、加入特定的單字
又或者只是聽寫成別的意思
- 也有的創作人工語言美其名是一種語言,但實際上因為作者沒有明確的字彙與文法設定,而無法被稱作是一種語言
- 這樣的事情常常會發生在新手身上,通常情況下比較會被當成是塑造氛圍,而非真的創作
- 理論上用機械譯不出來
- 通常是改變特定的音節、加入特定的單字
程式語言
- 為了在電腦上撰寫程式而使用的指令集,因為有一定規則故稱呼之
- 一般分為低階語言與高階語言
- 低階語言就是機械執行的語言,基本上CPU可以即時理解並進行處理的語言
- 由於CPU是電子元件,能直接處理的就是二進制的0和1,故直接用二進制去寫的稱為機器語言(Machine Language)。
- 而把機器語言的每條指令指定一個名字(例如令「add」代表加法),即得到組譯語言/匯編語言(Assembly Language)。
- 上面兩種并稱低階語言。
- 以下所談的基本上都是屬於高階語言的範疇,也就是「人類比較能輕易看懂」的程式語言。
- 現今的程式語言分為三種類型:指令式程式設計、物件導向程式設計以及函式型程式設計
- 指令式程式設計(Imperative programming)顧名思義就是一個指令一個動作,包含一些簡單的邏輯指令,大部份的程式都屬於這種。
- 物件導向程式設計(Object-oriented programming)是進一步去將眾多指令包裝為一個物件,並增加像是:
- 函式式程式設計(functional programming)則是將一個個方法都視為數學上的函式
- 除了對傳入的數值進行運算外,數學的函式是沒有多餘操作過程的,因此這種語言寫出的程式可以用數學的手段加以驗證。
但真正的程式總要給人用,給人用就要把資料傳入傳出,而天底下找不出一種數學運算能把數字印在紙上螢幕上,所以這種語言到頭來要麽沒法實用化、要麽必須引入不是函式的東西。
- 除了對傳入的數值進行運算外,數學的函式是沒有多餘操作過程的,因此這種語言寫出的程式可以用數學的手段加以驗證。
- 不過這只是個大略分類,並不代表所有程式語言必定是這三種類型的其中一種,例如JavaScript本身就是使用函式(Function)卻兼濃厚物導氛圍的一種奇妙語言
- 為了在機器上執行,高階程式語言都會帶有編譯器(Compiler)或直譯器(Interpreter),將程式變成低階語言再交給CPU去執行。
- 更後來的程式語言為了避免因為程式忘記釋放記憶體空間造成程式跑一跑記憶體不足(俗稱記憶體流失/Memory Leak)的問題,會引入「垃圾收集器(Garbage Collection,一般俗稱GC)」的機制來定時清除不再用到的變數來釋放記憶體空間。
- 近年來GC的處理速度以及是否會影響到正在執行的程式就成了程式語言分高下的關鍵要素
- Java一直被嫌速度慢,某原因上是其GC執行方式會影響到前面正在執行的程式
- JavaScript本身也類似,不過近年來在直譯器不斷演進的狀況下,現已經出現V8引擎為基礎的node.js可當作伺服器端程式語言使用
- 關於直譯與編譯的差別,大致可以用這樣的比喻來說明:
- 假使有一本英文撰寫的紙本原文書(高階語言)要被翻譯成中文(可執行語言),可能會有這幾種方式:
- 編譯器類型的程式語言會直接由翻譯把英文翻譯成紙本的中文書,好處當然是翻譯後就可以馬上閱讀(執行),但缺點是當原文書改版時,即使只是小改版或者是換個語言都要重新翻譯出一整本的書,無形中增加不少成本。
- 直譯器類型的程式語言則像是直接由一名翻譯站在讀者旁邊即時翻譯給讀者聽。好處是改版時就能馬上對應,不過因為每次都要重新翻譯,一旦是個用詞艱深且塊頭超大的磚塊書的話,那麼直譯器的速度就會變得很慢[24]。
- 而像C#、Java之類先編譯成中介語言(多重翻譯)的方式則是原文書先由第一名翻譯讓他先翻譯成他與第二名翻譯都熟練的語言(如英文翻成日文),再由第二名翻譯像直譯器類型一樣站在讀者旁邊一邊翻這本由中介語言撰寫的一次翻譯本一邊現場翻譯給讀者聽。好處是一次翻譯本因為轉換為比較容易解讀的語言,直譯器的速度會比較快
,偏偏Java的大問題就真的是直譯時太慢了。- 這類中介語言的優點在於由於每家廠商與每種架構的CPU採用的操作介面不同[25],若是每次都要由開發者針對不同的平台產出對應的程式不僅花時間也難以維護,因此以先編譯成中介語言再由平台上的直譯器翻譯為平台可執行的CODE的狀況下,程式開發者可以專注於開發所需功能而不需管如何讓每個平台都可以展現出一樣的效果。
- 假使有一本英文撰寫的紙本原文書(高階語言)要被翻譯成中文(可執行語言),可能會有這幾種方式:
框架
- 原文為Framework,是以一到多種程式語言撰寫的組件規範
- 雖然程式語言本身可以做許多功能,但在特定的方向上為了輔助開發者,因此用來作為程式地基的框架就誕生了。
- 一般來講,從最基礎,用來開發網頁介面的Bootstrap/Foundation(採用CSS和JavaScript)、React/Vue/Angular.js(JavaScript,牽涉前端控制端),到連後端資料庫操作介面都包含的Wordpress(基底為PHP)甚至是作為網頁伺服器的Ruby on Rails(基底為Ruby)都是框架的一種
- 正確來講,框架並不是程式語言,而是用來簡便使用程式語言的方式,要打個明確比喻的話,會比較接近Office軟體內附上的文書範本。
數學上的「語言」
- 忽略所有意義上的細節,僅僅研究詞法句法。
- 例如「樹吃紙」,這話作爲一句漢語來講根本是驢唇不對馬嘴,但從句法來看「主」「謂」「賓」完全符合漢語的規則。
- 而以數學的觀點研究這種「一定的元素按照一定的規則連接成的長串」,即是數學上所講的「語言」。
- 我們把最簡單、最基礎的語言元素稱爲「字元」(character)。
- 例如,對於漢語的詞法,其「字元」就是單個的漢字,即使每個漢字事實上可以拆成若干筆畫也是如此。
- 而對於漢語的句法,其「字元」則是漢語詞。不論包含多少個「漢字」(例如長一點的「大不列顛及北愛爾蘭聯合王國」),只要它是一個漢語詞,那麽在研究漢語的句法時它就是一個「字元」。
- 若干個字元的集合,稱爲「字元集」(character set)。
- 零個或多個字元集中的字元前後連接成一串,稱爲該字元集上的一個「字元串」(character string),簡稱「串」(string)。
- 然後可以定義在串上進行的運算操作,例如串接A+B、子串(Substring)等。
- 那麽對於一個給定的字元集,從其中選出一些字元拚接成一個串,所有這樣的串構成一個大集合。該大集合的一個子集稱爲一個「語言」。
- 也就是說,這個語言完全不講求其中每個串的含義。對於字元集「東亞表意文字」來講,中文是其上的一門語言,日文中所有的漢字詞也是其上的一門語言,即使僅僅使用漢字詞很難寫出一個完整的日語句子。
- 爲了研究上述的語言,我們提出「產生式」的概念:用來組合多個串的規則稱爲「產生式」。產生式中的每個單元稱爲「項」。
- 例:
- 「句子」=「主語」+「謂語」+「賓語」
- 「主語」=「名詞性短語」
- 「名詞性短語」=「名詞」
- 或「形容詞性短語」+「名詞性短語」
- 等等。
- 例:
- 再規定一個項作爲「一切的開端」,那麽我們可以依照給定的字元集和產生式,判斷一個給定的串是否可以從這個開端開始、按照產生式不斷構造出來,這稱爲「語言的識別」。
- 相應地,從一套定好的字元集+產生式+開端項中我們也可以構造出所有符合產生式的串,這稱爲「形式語言」。其中的所有產生式稱爲這門語言的「文法」。
- 對於文法本身又可做出規定,例如規定產生式中等號左邊必須只有一項等。其中一種規定稱爲「正則(regular)語言」,也就是常在程式設計中見到的「正則陳述式」(regular expression)。
- 事實上現代的高階語言在編譯/直譯時,就是利用這裏的「文法」工具來剖析程式代碼、將其轉換爲機器能理解的形式的。
創作的人工語言
語言名 | 使用者 | 登場作品 | 備註 |
---|---|---|---|
新語(Newspeak) | 大洋國[26]的國民 | 《1984》 | 以英語為基礎的架空+簡化版,以取代原有的「舊語」(Oldspeak)。 但是「舊語」中大量有關自由、革命等概念的詞彙及文法被簡化、取代或取消,以控制、消滅與當權者思想不符[27]的思想或言論。 由於本作品對極權國家的情勢發展、制度/運動/措施/心態詮釋均十分經典,「新語」成為討論隱私、國家安全問題、 部分書中創作詞彙和人物更被收錄在現實的詞典中並廣受引用、討論。 |
阿爾達的語言 | 托爾金小說登場人物 | J·R·R·托爾金創作的一系列奇幻作品 | 托爾金本人在語言學上頗有心得,因此各種語言的分別十分清楚,而且也顯得很像是真的語言 |
納美語 | 納美人 | 阿凡達 | 導演卡麥隆請南加大語言學博士弗朗莫花四年時間創造出的語言,符合卡麥隆「有韻律感、流暢、富感染力」的要求 拍攝過程中多數演員均能順利掌握該語言 |
Simlish | 模擬市民 | 《The Sims模擬市民》系列 | 組合烏克蘭語與塔加洛格語而成,在小人講話時可以聽見,許多重度玩家均能正常使用模擬市民語交談 |
古朗基語 | 古朗基 | 假面騎士空我 | 構成方式為五十音的變位重組+句型改變排位,理解構造後可以達成與日語的對譯 |
アンデッド語 | アンデッド | 假面騎士劍 | 其實是日語逆再生 |
タラール語 | アイシャ | Romancing Sa·Ga | 以日文為主體,以重組發音與語序的方式成為新語言 |
數字語言 | 本人自創的語言,唯一會的日文是 根據作者本人所講數字是亂排的,沒有任何規律 | ||
克林貢語 | 克林貢族人 | 星艦系列 | 少數獲得世界認可的人造語言,Linux作業系統亦有克林貢語版本 然而在語彙上仍然十分缺乏,國外曾有星艦迷嘗試教授自己兒子說克林貢語就因此而觸礁 |
亞特蘭提斯語 | 亞特蘭提斯人 | 失落的帝國 | 迪士尼特地請語言學家創造的一套語言,由於融合了各國語言(或者說亞特蘭提斯語在劇中就是設定成所有語言的始祖),因此亞特蘭提斯人能夠不費吹灰之力就學會世界上各種語言 |
アルベド語 | アルベド族 | Final Fantasy X | 將日語假名以特定規律調換所得。透過收集アルベド語辞典,可在聽到アルベド語時將已收集到的詞典中有的假名替換回來,收集得越多就能還原得越完整 |
加米拉斯語 | 加米拉斯帝國 | 宇宙戰艦大和號2199 | 舊版的加米拉斯語是以日語為基礎亂拼音節組成的,2012年出的新版則是實際請語言學家創作了加米拉斯語和伊斯坎達爾語[30][31][32] |
伊斯坎達爾語 | 伊斯坎達爾 | ||
銀河同盟語 | 銀河同盟所屬人員 | 翠星上的加爾岡緹亞 | 虛淵放話說這次不會讓大家好猜出來,但是不過兩話銀河同盟語就被對岸網民破解,緊接著也才四話加爾剛提亞語同樣被對岸人破譯了 |
加爾剛提亞語 | 加爾剛提亞船團的居民 | ||
梅魯尼克斯語 | 榭雷斯提亞人 | Tales of Eternia | /ワイール!\主要以英文為主的語言,是一種以密碼代換法方式創造的語言/バイバ!\ |
大人的語言 | 登場的大人 | 史奴比漫畫、動畫系列 | 漫畫標示都是一團歪線、動畫則是無法解讀的喇叭聲,都由主角群來聽解意思後回應 |
(名稱不明) | Overlord Inves | 假面騎士鎧武 | 在劇組於東映官網表示牠們的語言是有特定構成模式後,48小時內立即有日本網民利用劇中提供的語彙成功破解對譯結構 |
ヒュムノス (Hymmnos) |
レーヴァテイル (詩魔法少女) |
魔塔大陸系列 | "Was yea ra chs hymmnos mea." 別稱「感情言語」,使用形狀獨創但對應拉丁字母的文字。最大特徵是在文首會加入三個想音詞。西歐語言大雜燴。 |
新約パスタリエ | I.P.D. (Infel Phira Dependent) |
"hYAmmrA/." 2代登場的一種Hymmnos旁支。此律摒棄文首想音,採用想音動詞,這些詞中內含稱為Punk Period的點,可插入各種想母音(AIUEO | |
律史前月読 | 月奏(人類) | "RRwta Vible farr sss." 由參照26拉丁字母組成「音素」構成。[34] 嚴格而言,這不是語言而是咒語,設定中算是hymmnos前身。 | |
アル・シエラ (星語) |
アル・シエル (惑星意志) |
3代登場。 星球意志的具現化。包含超出人類聽域的頻率,因此難以理解全部含意。當中人耳能聽取並理解的部分構成了律史前月讀的體系。 | |
契絆想界詩 | 人類、Genom | 波濤協奏曲系列 | "ih du syou-chee-n rya-han-re du due-nr whai iz jang ahih=og-nu-ea N waw ahih W coa-dou ah=a-zi-sa-i fei-feu-ui;" 把26拉丁字母轉成特設形狀再黏一起成字並直接發音。 而文法則類近日文(有用途等同てにをは的文字)。 和Hymmnos相比,這邊算是東亞語言的大集燴。 設定為以詩為主體的生物Genom的公用語,但Genom沒有發聲器官,要「借」人類的聲帶發音。 |
REON-4213.11 | 人類 | Quell->{EXiV[obe]->{hymel f ethes}}->Exec->{TzW}; 人類所使用以發動詩魔法的終端「Cielnotron」的程式語言。 | |
龍語(Dovahzul) | 龍族 | 上古卷軸V:無界天際 | "Fus Ro Dah!" 字型以龍爪書寫,文法結構類似英語(拉丁語)。 字彙量相當豐富,可達到現實日常溝通的程度。甚至有專門的教學與翻譯網站。 對某一詞彙的意涵有深度理解所說出的龍語才能發動龍吼(Thu'um/The Voice/Dragon Shout)。 |
克萊茵語 | 克萊茵國國民 | 逆轉裁判6 | 字型為倒放的平假名,各個文字的讀音對應其原版平假名。 |
智械語(Omnicode) | 智械(AI機器人)、「有擴充」的人類 | Overwatch | 符號以菱形為主,人類在沒有設備輔助的情況下是無法理解與翻譯的 |
神族語(Khalani) | 神族 | 星海爭霸系列 | 卡斯基於薩爾納加遺物所創的語言,符號以圖形為主。 |
基里基語 | 蠻族 | 帝國戰神:巴霍巴利王(電影) | 電影中蠻族所使用的語言,特色是音節簡單,並且有非洲語言常見的搭嘴音。其文字為類似諺文由上下的子母音構成。 |
リリーパ文字 | リリーパ族 | PSO2 | 其實就是日語羅馬字,但由於リリーパ族的聲帶結構只能發出リ的聲音,因此與其他種族交談時如果沒有翻譯裝置的話就會以手語做輔助。 由於リリーパ族不只居住在一個星球上,因此不同星球的リリーパ族也會產生語言隔閡。[35] |
オメガ語 | オメガ人 | "MELANPHYZZLE AT Z, VALANTWA AI UNIVAETHO" 以西班牙語為藍本的語言,EP5中有不少BGM以此語言進行演唱,好不好聽見仁見智。[36] 另外,オメガ世界的魔法陣或魔術式上使用的並非オメガ語,而是以オメガ文字書寫的英文[37]。 |
現實存在的人工語言
語言名 | 創造者 | 備註 |
---|---|---|
世界語(Esperanto) | 柴門霍夫 | 為世界上最通行的人工語言,特色是用詞尾分別詞性[38],不過是19世紀在歐洲創造的語言,有些規則和選字方式飽受批評[39],也被批評為獨厚歐洲而無視其他民族[40] |
伊多語(Ido) | 為世界語的改良版,不過使用的人還比世界語少。 | |
オンドゥル語 | 已獲得本人承認(無誤) | |
Loglan | 詹姆士·庫克·布朗 | 為了驗證語言相對論[41]而發明出一種截然不同的新語言,特點是消除語言中的歧義(雙關語)。 由於布朗佔據Loglan文法修改的權力,其他人另外研發了邏輯語(Lojban)。 |
現實存在的程式語言
語言名 | 創造者 | 主要用途 | 備註 |
---|---|---|---|
Fortran (FORmula TRANslation) |
John Backus & IBM | 數值計算 | 最早的程式語言,語法接近數學算式,執行效率很高。 由於過去數十年累積了大量的程式碼/庫,直至現在仍有新版本推出,作為超級電腦的常用語言。 |
C | Brian Kernighan、Dennis Ritchie(K&R) | 通用計算:驅動程式等基礎程式 | 由於過於簡單,不適合用在比較高階的程式,但其語法規則產生出了許多子集 |
Objective-C | Brad Cox、Tom Love | Mac OS與iOS APP開發 | 衍生自C語言 |
Swift | 蘋果公司為了取代Objective-C而研發的新一代程式語言,語法比較接近JAVA、C++等語言,也因為取消了指標等C語言特性而減少了許多錯誤的發生可能 | ||
C++ |
Bjarne Stroustrup | 通用計算:從驅動程式等基礎程式到游戲編寫等高階複雜應用 | 2000~2010年代的PC遊戲幾乎泰半都是用這個程式語言撰寫,目前因為Unreal3D引擎免費化,也還是有不少遊戲使用。 公認的易學難精,即使是編譯器的作者也要為這門語言頭痛。[42] |
Java | SUN公司→Oracle | 通用計算:跨平台程式、Android APP | 受C++啓發[43],以跨平台為號召的程式語言,但因為實際上是先編譯成中間程式碼,然後再透過該平台的編譯器編譯成實際的程式碼,因此早期電腦速度不快的時候執行的速度就更慢 此外Google因為實際上是未經授權就直接取用原本Java的程式庫來當作Android的開發工具,因此後來跟買下SUN公司的Oracle打了好陣子官司。 |
C# | 微軟公司 | 通用計算:.NET平台程式、Windows桌面開發、Windows Phone APP開發、Unity3D遊戲 | 屬於.NET平台的主要程式語言,不過在現今Unity3D遊戲引擎快速興起的情況下,也擁有不少使用者。[44] |
Basic (Beginners' All-purpose Symbolic Instruction Code) |
John G. Kemeny、Thomas E. Kurtz | 通用計算:基礎程式 | 與C是同樣等級的遠祖程式語言,以容易上手並且容易閱讀為特點 |
Visual Basic | 微軟公司 | 通用計算:Windows程式、.NET平台程式 | 衍生自Basic,由於推出當時是少數能夠用視窗介面直接安排控制項位置的開發環境,過去有不少人很愛用,其簡化版VBA/VBScript廣泛用在Office巨集與ASP開發上 |
XML (eXtensible Markup Language) |
全球資訊網協會 | 資料存儲:文件檔、Android APP介面檔 | 屬於標記語言SGML的簡化版本。 雖說平常會接觸到的機會很高,但使用者不容易意識到。像是HTML(語法嚴格時,亦即XHTML)就是XML的子集、 office 生成的 .docx、.xlsx、.pptx等檔案也有使用到XML…… |
HTML (HyperText Markup Language) |
全球資訊網協會、網頁超文字技術工作小組 | 網頁 | 同XML,屬於SGML的簡化版本,重要的特性之一是標記不僅有自我描述功能,還帶有外觀的設定,全世界的網頁全部都是用這個語言編寫的,目前最新版本是HTML5。 |
XHTML | 全球資訊網協會 | 就是HTML,只是要求更嚴謹,例如不允許標籤(tag)沒有閉合[45],特性是更標準化、更嚴謹,以及規格更往XML方向偏過去 另外,XHTML1.0 和 XHTML2.0 雖然都稱之為 XHTML ,但是是兩種不同的東西。通常說到 XHTML 都是指前者;後者是已經被放棄開發的事物。 | |
XAML | 微軟公司 | GUI安排:WPF程式、Silverlight程式、Windows Phone APP開發、Windows 8 APP開發 | XML的子集,主要用在程式介面安排上,需要後端程式碼(如C#、Visual Basic等)來輔助產生組件 |
Perl | Larry Wall | 腳本 | 腳本語言中的瑞士軍刀,什麽都能寫、寫成什麽樣子都可以。人送外號「只寫語言」。 |
Ruby | 松本行弘 | 腳本:RPG製作大師(XP~VX ACE)、網頁伺服器 | 由日本人創造的語言,現今亦有Ruby on rail這樣的網頁伺服器架構 |
Lua | Roberto Ierusalimschy、Waldemar Celes Luiz、Henrique de Figueiredo | 腳本:Shiva3D、遊戲腳本檔,如《軒轅劍外傳:漢之雲》等 | 因為語法簡單,容易與其他語言整合,許多遊戲會利用此作為遊戲使用的腳本檔。 |
JavaScript[46] | EMCA協會 | 腳本:網頁的執行代碼 | 網頁背後的客戶端程式語言,HTML5開始被當作網頁客戶端唯一標準。 雖然名字有Java,但實際上跟Java語言無關,純粹是創造者想借Java語言的名氣來推廣。 跟一般程式語言相比有些微妙的部分在於函式在搭配原型後也可以直接當成一種物件使用。 此外在5版開始加入了原先僅作為保留字的class(類別)和與之相關的繼承功能,不過這也僅是將先前的Prototype繼承鏈包裝起來的語法糖 |
JSON | 嚴格來說只是JavaScript的物件標記方式(在JavaScript中被稱作實字標記),因為只有物件(嚴格來說是函數)與陣列兩種形式,不僅可以直接被JavaScript解讀拿來用,加上其可以在較短的長度內描述大規模的物件[47],因此成為目前網際網路程式中交換資料的主流。[48] 缺點是不易為人類直接讀懂。 | ||
jQuery | John Resig | 嚴格來講比較接近可供利用的函式庫,採用CSS語法來選取目標後對目標進行操作的方式,除此之外還擴充了許多舊版瀏覽器上使用不方便或者是沒有的功能,像是AJAX的支援與ForEach迭代方法等等。 由於使用上相當簡便[49],外加相容眾多瀏覽器也有許多架構在其上的框架,因此問世至今仍舊是世界上最多人使用的函式庫 | |
JSX | 搭配React框架而開始廣為人知的一種語法,可以直接在JavaScript中使用HTML標籤描述外觀[50],實際上是一種語法糖[51],執行時會由編輯器將其轉換回JavaScript的標準語法 | ||
node.js | Node.js Developers | 脚本:網頁、伺服器端程式 | JavaScript的子集,使用Google用於Chrome上的V8引擎,特性是大量使用回呼函式[52]來處理異步[53],也因為其架構簡單和可用模組(module)與模組包(package)來增強功能,現今已經有不少使用者 其實就是個依附於特殊定製版執行引擎的JS,而模組與模組包的語法更在之後被正式納入ES5標準。 |
Type Script | 微軟公司 | 同上是JavaScript的子集,但以可以加速執行效率[54]、並可直接編譯為能夠使用的JavaScript作為號召 | |
PHP | Rasmus Lerdorf | 網頁:網頁生成、伺服器端程式 | 網頁背後的伺服器端程式語言,用以製作動態的網頁。 吸收了C、Java和Perl等流行電腦語言的特點。 |
Pure Wiki標記 | 網頁:2017年以前的糟糕島維基等使用同系統的維基條目編輯語法 | 基本上比起語言還比較偏向是不成語言的標記 | |
Media Wiki標記 | 網頁:目前的糟糕島維基、維基百科與萌娘百科等使用到MediaWiki系統的百科 |
遊戲程式語言
語言名 | 類似或基底語言 | 主要用途 | 備註 |
---|---|---|---|
RGSS | RUBY | 與其說是類似Ruby不如當成一種以Ruby撰寫的框架比較好。 最新版的MV則改用JavaScript作為基底語言 | |
東方彈幕風 | C++ | 彈幕遊戲製作 | |
http://studiopixel.sakura.ne.jp/ | C++ | 洞窟物語 | FC版的洛克人7、8代,是參考本作的程式 |
Unity Script | JavaScript | Unity3D遊戲開發 | 不過Unity Script簡單之餘、可使用的功能較少且跨平台能力較弱,因此大部分使用Unity3D的遊戲基底程式碼仍是使用C#,而官方目前也宣布將在Unity 2017以後的幾個未來版本內正式停止對Unity Script的支援。 |
Joker Script | 依附在Unity3D底下的外掛框架JokerScript的腳本語言,特化在2D AVG遊戲上,基本上AVG的功能一應俱全,且能自行以C#開發需要的功能。 |
連結
回應
備註
- ↑ 例如日本跟朝鮮,以前沒有自己的文字而是借用中原的漢文字,後來才發展出自己的假名跟諺文。
- ↑ 分布在西伯利亞與中亞(另外還有位在東亞有爭議的朝鮮半島和日本)
- ↑ 舊稱閃-含語系,分布在中東與北非,希伯來文與阿拉伯文都算
- ↑ 分布在南太平洋諸島,起源目前學界公認應該是台灣
- ↑ 分布在中南半島
- ↑ 也就是擁有同樣起源的詞彙,例如英文的Night和德文的Nacht都來自於原始印歐語的*nókʷts(夜晚)。
- ↑ 漢語中詞類的區別與綜合語相比要更模糊。如動詞和名詞的區別之一在於:雖然二者都可以作主語或賓語,但動詞可以作謂語而名詞不可;又如漢語中的形容詞和動詞一樣可以直接作謂語(而不需系動詞),但形容詞可以直接修飾名詞而動詞不可
- ↑ 與此相比,英語中的動詞要作名詞性成分則一般要變化形態,如加-ing
- ↑ 因此漢語對多數非華語圈出身者感到頭痛的部分也多半來自於此,連音念法是一個難關,隨著音調變化字義會完全不同也是一個難關,更加頭痛的就是漢語對詞形變化的極不要求還成了另一個解讀語意的難關;而反過來說華語圈出身者在學習其他語言時也容易因為詞性變化不容易掌握而比較困難
- ↑ 不過若說漢語完全沒有分辨詞性的方法其實也不盡然,隨著語言的變遷,現代漢語中的「破音字」其實正是分辨詞性的一個方式:例如「行」字,讀成「ㄏㄤˊ/Hang2」的時候,我們可以知道這是指「行列」的「名詞」詞性;讀成「ㄒㄧㄥˊ/Xing2」的時候,我們就能知道這是指「行走」的「動詞」詞性。但是多數非華語圈出身者使用的語言也幾乎沒有這種單用讀音音調的不同分辨詞性的方法,所以這部分的幫助能幫到的程度還是較少(實際上「破音字」現象是古代漢語綜合特徵的殘留,更常見的情況是同一個字的不同屈折形式(彼此讀音有別)分化爲不同的字,如「食」的使役形式分化爲「飼」)
- ↑ 現代英語的起源——中古英語很可能屬於兩種兼容程度不高的語言(古英語與諾曼征服時期的法語)融合形成的克里奧爾語(中古英語克里奧爾說),因爲親屬語言的變格變位等系統無法兼容故更易向缺乏變格變位的分析語方向演化;與此相比沒有類似歷史的其他歐洲語言的分析程度要低得多;
但這段歷史也使得英語原有的構詞體系受到嚴重破壞,使得英語詞彙的發展走進了「構詞體系殘破→借詞表達新概念→進一步破壞自身的構詞體系」的惡性循環,例如英語的「kidney(腎、出現於中古時期,構詞方式接近古英語,一說與希臘語的nephros等詞同源)」、「renal(腎的,借自拉丁語)」,「nephron(腎元,借自希臘語)」毫無構詞法的聯繫,使得操英語者在成爲專業人士的學習過程中擴大詞彙量時無法用構詞法舉一反三而只得死記硬背,不然就要掌握好幾種語言的構詞法 - ↑ 類似於先秦時古漢語中,「吾、汝、其」分別為三個人稱的主格代詞,決不會用作賓語;「我、爾、之」則為對應的賓格代詞,決不會用作主語
- ↑ 僅餘退化中的「第三人稱單數現在時」一種人稱變位形式;過去時的人稱變位已經和第二人稱單數代詞一齊退化消失
- ↑ 此爲使用音素分析法得出的日語動詞變位體系的深層次結構(下同),其規則見此,此形式下更易於看清日語的黏著特徵,也比基於音節(假名)的教科書式分析法更簡明
- ↑ 這個形式同時受到古老的形容詞變位規則殘留和音便影響
- ↑ 助動詞也相當多樣,還有歌詞教學法
- ↑ 例如部分物件可能會有內部運算用的屬性與函式,封裝起來後外部只能使用其公開出來的屬性與函式;打個比方來說,你就算不知道洗衣機內部構造如何,還是可以把衣服丟進去洗一樣。
- ↑ 如狗跟貓都是會叫的動物,但叫聲完全不同,以物件導向來說就是他們都從「動物」這個物件繼承了名為「叫」的方法,但是他們用不同的方式去實作同個方法。簡言之就是「同名不同事」。
- ↑ 以上面的動物例子來說,人、貓、狗同樣是會叫的動物,但方式都不一樣,如果用同樣的來說,就是「動物」這個物件中的「叫」這個方法為空白並設定成抽象化,再由繼承「動物」物件的人、貓、狗去分別「啊」、「喵」、「汪」。此外,將一個基底類別抽象化代表你可以在必要的時候隨時將子物件轉化成母物件來使用,例如預設活動範圍,參數為一個動物時,如果不透過基底物件,就變成每種都要寫一個方法、既不實用也很耗時;若設成使用一個抽象範本作為參數,就能將程式碼減少到最少。
- ↑ 說白了這就是在原型繼承的基礎上強行加了類繼承。
- ↑ duck typing,源於James Whitcomb Riley提出的理論,定義是「當看到一隻鳥走起來像鴨子、游起來像鴨子、叫起來像鴨子,那就可以被稱為鴨子。」用在程式上就是「不管操作的東西,是繼承還是隸屬於哪裡,反正只要是支援的運算方法相同(像屬性、函式),那就是可以拿來用的東西」之意
- ↑ 雖然近年來多執行緒已經是常態,但實際上若你只有一顆CPU,多執行緒的執行方式是在單顆CPU上快速切換執行緒,好讓使用者有「看起來像是多顆CPU在跑」的錯覺,事實上仍然是一條單執行緒
- ↑ 經典笑話:垃圾收集器不能用在垃圾處理廠。
- ↑ 對機械語言而言,高等程式語言的用詞對機器來說是艱難的;不過對人類而言反而是高等程式語言較容易閱讀。
- ↑ 目前的趨勢是分成x86和ARM兩種平台,前者是家用電腦,後者多用於手機等攜帶產品
- ↑ 支配歐洲的共產政權,小說中故事的發生地
- ↑ 即所謂的「政治不正確」
- ↑ 24話本人的發言:「3245662『8399943』311226」(「『ドラゴンボール』だけわかったぞ」)
- ↑ 英文原版的台詞是「也許他們也會說英文」,中文配音版則改成「也許他們也會說中文」
- ↑ 另外新版中加米拉斯方的翻譯機能力比地球高上許多,所以大部分加米拉斯人說日文也不成問題。同時加米拉斯稱呼太陽系星球的方式則是分析地球人的語言後加以加米拉斯語化,也因此他們是用「特龍(Terron)人」來稱呼地球人。
- ↑ 注意,劇中加米拉斯人相處的時候自然是用加米拉斯語對話,不過對配音員而言要用他們不熟的語言還要表達出感情那是酷刑
→想知道的話可以去看《閃光的夜襲》,那是個好例子所以普通對話場景上自然還是用日文,但2199已經儘可能的讓異文明相處時的語言使用上不會太奇怪了 - ↑ 而實際上1、2集中也確實用加米拉斯語加字幕的方式來表明加米拉斯方實際上是用加米拉斯語對話
- ↑ 以"h.m.m.r."(歌唱)這個詞為例,將YA(希望你快樂)插入第一個點,將A(我很高興)插入第四個點,即為開頭之例。
- ↑ 例如「T」代表自我、「Z」代表神。當中A、I、U、E、O、N這六個韻母並稱「六大發想元素」,分別代表力、聖、憎、愛、邪、無。
- ↑ 該文字實為エルジマルト文明帶來,在地圖上可以看到許多以リリーパ文字書寫的採礦、工業之類的內容
- ↑ 由於一個單字有多個意思,造成了該語言在翻譯上會產生多個意思都正確且符合歌詞意境的翻譯,如:UNIVAETHO為「藍天」和「宇宙」,而歌詞中兩個語意都符合
,因此在吃電波的中二玩家間有一定程度的吸引力 - ↑ 如:IN THE MYSTERY OF THESE VESTURES
- ↑ 因此相對於許多歐洲語言屬於屈折語,世界語帶有濃厚的黏著語性質。
- ↑ 例如女性的單字必須加上-in,男性不用(例:父親→Patro、母親→Patrino),被部分女權人士認為是歧視女性
- ↑ 柴門霍夫起初的動機是歐洲在第一次世界大戰間的混亂,希望創造統一語言,也因此從歐洲語系著手
- ↑ 人的思考模式受語言影響的假說
- ↑ 大概是唯一一門語義反過來影響語法結構(嵌套template的連續>)的語言。
- ↑
說Java衍生自C++的全都給我流放爪哇島! - ↑ 要注意的是隨著.NET的平台不同,可使用的API也有差別,因此雖然美其名可以跨平台,但實際上.NET的程式若要跨到另一個平台,需要重寫不少腳本可說是家常便飯,並沒有那麼容易;不過近年來隨著微軟認真注意Windows以外的平台,加上併購Xamarin後,倒是開始整併.NET的核心API,讓改寫的問題有減少的趨勢。
- ↑ 例如換行符號
<br />
,必須寫成<br />
,寫成<br>
(中間沒斜線)是錯誤的。 - ↑ 只是借了Java的名字來推廣而已,跟Java沒有半點關係。正式名稱是「ECMAScript」(的一種),目前最新版本為2016年6月發表的第7版。也因為各家瀏覽器實作的子集不同,同樣是叫JavaScript但實際上還是有一些差異
- ↑ 用Word的字數計算功能算一下「<Types><Type>A</Type><Type>B</Type></Types>」和「{"Type":["A","B"]}」哪個比較長就知道JSON的好處在哪了。為了爭取時間以及避免中途斷線,基本上網際網路傳送資料是越短越好
- ↑ 不過正也因為其可說直接等同JavaScript(甚至物件可包含可執行的函式),因此使用上會有安全性的問題,一般來講會避免使用eval函式直接轉換成可用的物件,而是以JSON.parse()來解析物件,並以JSON.stringify()來將物件字串化。
- ↑ jQuery基本上語法只有兩個:用
$([選擇器]).[方法]()
來選擇欲操作的目標後進行操作,而大部分的方法因為回傳的是jQuery物件還可以串接起來一口氣做相當多的工作;又或者是以$.[方法]()
來進行單純、大致無涉網頁介面操作的變數操作 - ↑ 但為了避開JavaScript的保留字,因此指定樣式的class改用className屬性,Label標籤中用來指定點擊時將焦點放至於哪個表單物件上的for屬性改為htmlFor屬性
- ↑ Syntactic sugar,由英國計算機科學家彼得·蘭丁發明的一個術語,
因為科技始終來自於人性本懶,為了避免過長的描述與隨之導致的拼錯字、難以解讀的問題,所以由程式語言設計者添加的一種能讓程式設計師簡單使用的語法,實際上運用時會在編譯器中自動將這些語法糖「去糖」轉換回本來該有的語法 - ↑ Callback,意指讓被呼叫的一方反過來呼叫的、由呼叫方提供的函式。
- ↑ Asynchronous,一般會翻成「非同步」,不過是指同時間可以多條執行緒做不同的事情,與其相對的同步(Synchronous)反而是指同時間只能處理一件事情。實際上這兩個用語真正的意思是指呼叫的發起者是/否不必等待被呼叫者執行完。
- ↑ 例如使用
false||x
的方式令執行引擎直接把x當作布林值對待、省去判斷其真實型別的時間。