(Translated by https://www.hiragana.jp/)
编程语言 - 维基百科,自由的百科全书 とべ转到内容ないよう

编程语言

本页使用了标题或全文手工转换
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
重定しげさだこうほどしきげん
「编程语言」てき各地かくち常用じょうよう名稱めいしょう
中国ちゅうごく大陸たいりくほどじょ设计语言、编程语言
臺灣たいわんほどしき設計せっけいげんほどしきげん
みなとほどしき設計せっけいげんほどしきげん
へんほどげんちゅうてき經典きょうてん語句ごく
Hello World

编程语言英語えいごprogramming language),ようらいてい计算つくえほどじょてき形式けいしきげん。它是いち种被标准てき交流こうりゅう技巧ぎこうようらいむかい计算つくえ发出指令しれいいち种能够让ほどじょじゅん确地てい义计さんつくえしょ需要じゅよう使用しようすうすえてき计算つくえ语言,并精确地てい义在同情どうじょう况下しょ应当さい取的とりてきぎょう动。

最早もはやてき编程语言ざい電腦でんのう發明はつめいこれまえさんせいてき當時とうじようらいひかえせいひさげ花織かおりぬのえいJacquard loom自動じどう演奏えんそうこうきんてき動作どうさ[1]ざい電腦でんのう領域りょういきやめ發明はつめいりょうじょう千不同的编程語言,而且每年まいとし仍有しんてき编程げん誕生たんじょう。很多编程げん需要じゅようよう指令しれい方式ほうしき說明せつめい計算けいさんてきほどじょ,而有些编ほどげんそくぞく宣告せんこくしきほどしき設計せっけい說明せつめい需要じゅようてき結果けっか,而不說明せつめい如何いか計算けいさん

编程语言てき描述一般いっぱん以分ため語法ごほうえいSyntax (programming languages)語義ごぎ語法ごほう說明せつめいへんほどげんちゅう,哪些符號ふごうある文字もじてき組合くみあい方式ほうしき是正ぜせいかくてき語義ごぎそくたい於編ほどてき解釋かいしゃく[2]ゆう些語げんよう規格きかくぶんけん定義ていぎれいCげんてき規格きかくぶんけん也是ISO標準ひょうじゅんちゅう一部いちぶ份,2011ねんてき版本はんぽんためISO/IEC 9899:2017,而其げんれいAdaあるものPerlゆういち编程语言实现えいProgramming language implementationぶんけん,视为參考さんこう實現じつげんえいreference implementation

概論がいろん

[编辑]

编程语言原本げんぽん设计专用于计さんつくえ,也用てい算法さんぽうあるものかずすえ结构而程じょ员试图使ほどじょだい容易ようい阅读

BBC BASICげん顯示けんじざいぼたるまくじょう

编程语言往往おうおう使つかいほどじょ员能够比使用しようつくえ语言さらじゅん确地ひょう达他们所そうひょう达的目的もくてき。对那些从ごと计算つくえ科学かがくまとじんらい说,懂得ほどじょ设计语言じゅうふん重要じゅうようてきいん为在当今とうぎん所有しょゆうてき计算需要じゅようほどじょ设计语言才能さいのう完成かんせい

これ所以ゆえんゆう么多种不同ふどうてき编程语言存在そんざいてき原因げんいん,编写ほどじょてきはつ衷其实也かくあいどう新手あらてあずか老手ろうしゅ间技术的非常ひじょうしょう,而且ゆう许多语言对新しゅらい说太容易よういがく;还有,不同ふどうほどじょ间的运行成本なりもとruntime costかくあいどう

ゆう许多よう特殊とくしゅ用途ようとてき语言,ただざい特殊とくしゅじょう况下使用しようれい如,PHP专门ようらい显示网页Perl适合ぶんほん处理;C语言广泛よう操作そうさけい编译てき开发(ところ谓的けい统编ほど)。[3]

こう级语げんまと现使とく计算つくえほどじょ设计语言さい过度赖某种特定とくていてきつくえある环境。这是いん为高级语げんざい不同ふどうてき平台ひらだいうえかい编译なり不同ふどうてきつくえ语言,而不直接ちょくせつつくえ执行。さい早出そうしゅつ现的编程语言FORTRANてき一个主要目标,就是实现平台ひらだい独立どくりつ

虽然だい多数たすうてき语言すんで编译またかいただしだい多数たすう仅在一种情况下能够良好运行。ざい一些编程系统中,ほどじょよう经过几个阶段てき编译,一般いっぱん而言,きさき阶段てき编译往往おうおうさら接近せっきんつくえ语言。这种常用じょうようてき使用しよう技巧ぎこう最早もはやざい1960年代ねんだい末用すえもちBCPL,编译ほどじょさき编译いち个叫做“0だい码”てき转换ほどじょrepresentation),しかきさきさい使用しようきょ拟器转换いた以运ぎょう于机じょうてき实代码。这种成功せいこうてき技巧ぎこうきさきまたもちいPascalP-code,以及Smalltalk进制码,ざい很多时候,ちゅう间过わたりてきだい码往往是かい译,而不编译てき

如果しょ使用しようてきこぼし译的つくえせいしょう所要しょようこぼし译的ほどじょだい码作为一个整体翻译,并之きさき运行内部ないぶ格式かくしき么这个翻译过ほど就被しょう为编译。よし此,いち编译一个将人可阅读的程序文本(さけべみなもとだいさく为输いれてきすうすえしかきさき输出行文こうぶんけんobject code)。ところ输出てき行文こうぶんけん以是つくえ语言,ゆかり计算つくえてき中央ちゅうおう处理直接ちょくせつ运行,あるものぼう种模拟器てき进制だい码。

如果ほどじょだい码是ざい运行时才そく时翻译么这种翻译机せい就被しょうさくちょく译。经直译的ほどじょ运行速度そくど往往おうおう编译てきほどじょ慢,ただし往往おうおうさら灵活せいいん为它们能够与执行环境互相作用さよう

とくてん

[编辑]

まいいちほどじょ设计语言以被さくいち包含ほうがん语法词汇含义てき正式せいしき规范。

这些规范通常つうじょう包括ほうかつ

ほどしきげん成文せいぶん規定きてい

  • 标识Identifier命名めいめいつねぶんまわし

だい多数たすう广泛使用しようある经久おとろえてきほどしきげん,拥有负责标准てき组织,经常かい晤来创造及发ぬのほどしきげんてき正式せいしきてい义,并讨论扩てんある贯彻现有てきてい义。

かずすえすうすえ结构

[编辑]

现代计算つくえ内部ないぶてきかずすえただ二元にげん方式ほうしき储存,そく开-关模しきon-off)。现实世界中せかいじゅう代表だいひょうしんいきてきかく种数すえれい名字みょうじ、银行账号、度量どりょう以及どう样低はしてきげんすうすえ经由ほどじょ设计语言整理せいりなり为高阶的概念がいねん

いちほどじょちゅう专门处理かずすえてき个系统被しょうほどじょ语言てき类型けいtype system);对类がたけい统的研究けんきゅう设计しょう为类がた论(type theory)。语言以被ぶん为静态类がたけい统(statically typed systems),れいC++Javaかず动态类型けい统(dynamically typed systems),れいLispJavaScriptTclProlog前者ぜんしゃ进一步分为包含宣告类型(manifest typeてき语言,そくまい一个变量和函数的类型都清楚地宣告,あるtype-inferred语言(れい如MUMPS,ML)。

だい多数たすう语言还能够在ないおけてき类型もと础上组合复杂てきすうすえ结构类型(使用しようすう组,れつひょううずたか栈,ぶんけんとうとう)。めんこう对象语言Object Oriented Languageまた译作“物件ぶっけん导向语言”)まこと许程じょ员定义新てきすうすえ类型,そく对象objects),以及运行于该对象てき函数かんすうfunctions方法ほうほうmethods)。

じょりょうなん时以及如なん确定ひょう达式类型てき联系,另外一个重要的问题就是语言到底定义了哪些类型,以及まこと许哪些类がたさく为表达式てき值。诸如C编程语言类的そこ层语ごとまこと许程じょ命名めいめいないそん位置いちうちそん区域くいき以及编译时的つねりょうANSI C甚至まことおもて达式かえしかい结构值(struct values)。こうのうせいてき语言一般允许变量直接使用运行时计算出的值,而不指出さしで该值可能かのう储存てきうちそん

つね见的かずすえ结构

指令しれい及流ほどひかえせい

[编辑]

一旦いったんかずすえ确定,つくえ必须告知こくち如何いか对这些数すえ进行处理。较简单的指令しれい使用しよう关键あるてい义好てき语法结构らい完成かんせい不同ふどうてきほどじょ语言利用りよう序列じょれつけい统来取得しゅとくある组合这些语句。じょ此之がいいちほどじょ语言なかてき其他指令しれい也可以用らいひかえせい处理てき过程(れい如分ささえ、循环とう)。

參照さんしょうつくえせい重用じゅうよう

[编辑]

參照さんしょう的中てきちゅうこころ思想しそう必须ゆう一种间接设计储存空间的方法。さいつね见的方法ほうほうどおり命名めいめい变量。すえ不同ふどうてき语言,进一步的引用可以包括指向其他储存空间的ゆび。还有一种类似的方法就是命名一组指令。だい多数たすうほどじょ设计语言使用しようひろし调用、过程调用ある函数かんすう调用。使用しよう这些代替だいたいてき名字みょうじのう让程じょさら灵活,并更重用じゅうようせい

こうのう

[编辑]

编程语言じょつくえ械、电机、电子、电脑、つくえ完成かんせいじん类需もとめてき计算、こうのうあずか目的もくてき

實體じったいてきつて連結れんけつ

[编辑]

透過とうかていかいほどしきげんある高階たかしなほどしきげんはた實體じったい間接かんせつ達成たっせいでん連結れんけつあるひかえせい實體じったい

应用ほどしきてき发展

[编辑]

こう阶编ほどげん发展多功たこうのうてき应用ほどじょ软件,れい如工ほど计算、操作そうさけい统、ぶんけん处理、播放软件、网页设计、つくえ应用ほどしき(App)とう

使用しよう

[编辑]

编程语言やめちょう过上せん种,大部おおぶ份用ざい计算領域りょういき[4]ほどしきげん和人わじんるい使用しようてき自然しぜん语言ざいせい确度かずかんせいせいじょうゆう很大てき异。

ひと們在よう自然しぜんげんみぞどおり,內容以不明確めいかく,甚至しょうてき錯誤さくご,而聽てきじん仍然可能かのう理解りかいせつてきじんそうようせつてき內容。ただし電腦でんのう不同ふどう電腦でんのうただ做被告知こくちよう做的ごと」,無法むほう理解りかいほどしき設計せっけいしゃおもえよううつしてきほどしきかたりげんてき定義ていぎへんほど以及へんほど輸入ゆにゅうてき組合くみあい需完せい定義ていぎほどしき執行しっこうてき外部がいぶ特性とくせい。另一方面ほうめん演算えんざん法的ほうてき概念がいねん表示ひょうじためきょなずらえそもそもあるものため編成へんせい碼,交織こうしょくゆう自然しぜんげんほどしき碼的ほどしきげんかず他人たにんみぞどおり使用しよう,此時就不一定いっていよう麼精かく

ほどしきげん提供ていきょう定義ていぎへんだん資料しりょうてき結構けっこうせい,以及ざい資料しりょうちゅう自動じどう進行しんこうてき運算うんざんある轉換てんかんほどしき設計せっけいしゃ利用りようほどしきげん提供ていきょうてき抽象ちゅうしょうらい表示ひょうじ計算けいさんてき相關そうかん概念がいねん,這些概念がいねんそくよし許多きょたさい簡單かんたん元素げんそたたえためかたりげんもともとえいlanguage primitiveてき集合しゅうごうしょ組成そせい[5]ほどじょ设计就是ゆび利用りようげんもと元來がんらいせんうつししんてきほどしきあるはたきゅうほどしきあらためうつし配合はいごうしんてき應用おうようあるしんてき環境かんきょう

電腦でんのうほどしきげん可能かのう以批处理にん务的方式ほうしき執行しっこう中間なかま需和使用しようしゃ互動,也有やゆう可能かのうよしようざい直譯ちょくやくちゅう指定してい執行しっこう特定とくていてきてきほどしきわかぼう一程式語言的是目的是在某一應用軟體(如Unix shellある其他命令めいれいれつかいめん執行しっこう其他ほどしき,此程しきげんかいたたえため脚本きゃくほん语言

衡量かく编程げんてき使用しようりょう

[编辑]

很難較哪一種程式語言的使用量最大,而且「使用しようりょういち也很なん定義ていぎぼう一種程式語言可能需要較多的時間進行開發,另一種程式語言可能產生的程式碼較長,だい三種程式語言可能在CPUちゅう執行しっこうてき時間じかん較長。ゆう些語げんざい特定とくていてき領域りょういきじゅうふん歡迎かんげいれいCOBOLざい公司こうしてき資料しりょう中心ちゅうしん仍相とう常用じょうようはんざい大型おおがた計算けいさんうえ執行しっこう[6][7]Fortran常用じょうようざい科學かがく工程こうてい應用おうようCげん常用じょうようざい嵌入かんにゅうしき设备应用及操作そうさ系統けいとうPerl常用じょうよう于系统管理かんり和文わぶんほん处理,JavaScriptよう于网页等。

ゆう许多不同ふどうてき测量ほどしきげん使用しようてき程度ていどてき方法ほうほう不同ふどうてき测量方式ほうしきかくゆう誤差ごさ

  • 計算けいさんちょうざい廣告こうこくちゅうひっさげいたかくほどしきげんてき次數じすう[8]
  • 計算けいさん教授きょうじゅある描述かくほどしきげん書籍しょせき賣出うりだしてき數量すうりょう[9]
  • 佔計かくほどしきげん目前もくぜん仍在使用しようほどしき碼的ちょう可能かのうかいてい估一些公開搜尋不容易找到的程式語言[10]
  • 利用りようさがせひろ引擎計算けいさん找到不同ふどうほどしきげんてき次數じすう

根據こんきょTIOBE指數しすうざい2022ねん3がつ,十大最受歡迎的語言如下:PythonVisual Basic .NETCC++C#JavaJavaScriptPHP匯編げんSQL.[11]

历史

[编辑]

1940年代ねんだいとう计算つくえ刚刚问世てき时候,ほどじょ员必须手动控せい计算つくえとう时的计算つくえじゅうふんのぼる贵,ただ一想到利用程序设计语言来解决问题的人是德国工程师かんひしげとく·すわえさわ

じゅうねんきさき,计算つくえてき价格大幅おおはば跌,而计さんつくえほどじょ越来ごえくえつ复杂。也就说,开发时间やめ经远运行时间たから贵。

于是,しんてき集成しゅうせい视的开发环境越来ごえくえつ流行りゅうこう。它们减少りょうしょづけてき时间、きむ钱(以及脑细胞)。ただよう轻敲几个键,一整段代码就可以使用了。这也とくえき于可以重用じゅうようてきほどじょだい码库[12]

まいり

[编辑]

参考さんこう文献ぶんけん

[编辑]
  1. ^ Ettinger, James (2004) Jacquard's Web, Oxford University Press
  2. ^ かたりげん系統けいとう簡介. .nuu.edu.tw. [2014-06-05]. (原始げんし内容ないようそん档于2014-05-28). 
  3. ^ MXL
  4. ^ HOPL: an interactive Roster of Programming Languages. Australia: Murdoch University. [2009-06-01]. (原始げんし内容ないようそん档于2011ねん2がつ20日はつか). This site lists 8512 languages. 
  5. ^ Abelson, Sussman, and Sussman. Structure and Interpretation of Computer Programs. [2009-03-03]. (原始げんし内容ないようそん档于2009ねん2がつ26にち). 
  6. ^ Georgina Swan. COBOL turns 50. computerworld.com.au. 2009-09-21 [2013-10-19]. (原始げんし内容ないようそん于2013-10-19). 
  7. ^ Ed Airey. 7 Myths of COBOL Debunked. developer.com. 2012-05-03 [2013-10-19]. (原始げんし内容ないようそん于2013-10-19). 
  8. ^ Nicholas Enticknap. SSL/Computer Weekly IT salary survey: finance boom drives IT job growth. Computerweekly.com. [2013-06-14]. (原始げんし内容ないようそん于2011-10-26). 
  9. ^ Counting programming languages by book sales. Radar.oreilly.com. 2006-08-02 [2010-12-03]. (原始げんし内容ないようそん档于2008ねん5がつ17にち). 
  10. ^ Bieman, J.M.; Murdock, V., Finding code on the World Wide Web: a preliminary investigation, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation, 2001
  11. ^ TIOBE Index for April 2020. TIOBE. 2022-03 [2022-04-07]. (原始げんし内容ないようそん档于2018-02-25). 
  12. ^ Steven R. Fischer,. A history of language,. Reaktion Books,. 2003,. ISBN 186189080X. 

延伸えんしん閱讀

[编辑]
  • Abelson, Harold; Sussman, Gerald Jay. Structure and Interpretation of Computer Programs 2nd. MIT Press. 1996. (原始げんし内容ないようそん档于2018ねん3がつ9にち). 
  • Raphael Finkel: Advanced Programming Language Design, Addison Wesley 1995.
  • Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes: Essentials of Programming Languages, The MIT Press 2001.
  • Maurizio Gabbrielli and Simone Martini: "Programming Languages: Principles and Paradigms", Springer, 2010.
  • David Gelernter, Suresh Jagannathan: Programming Linguistics, The MIT Press 1990.
  • Ellis Horowitz (ed.): Programming Languages, a Grand Tour (3rd ed.), 1987.
  • Ellis Horowitz: Fundamentals of Programming Languages, 1989.
  • Shriram Krishnamurthi: Programming Languages: Application and Interpretation, online publication页面そん档备份そん互联网档あん).
  • Bruce J. MacLennan: Principles of Programming Languages: Design, Evaluation, and Implementation, Oxford University Press 1999.
  • John C. Mitchell: Concepts in Programming Languages, Cambridge University Press 2002.
  • Benjamin C. Pierce: Types and Programming Languages, The MIT Press 2002.
  • Terrence W. Pratt and Marvin V. Zelkowitz: Programming Languages: Design and Implementation (4th ed.), Prentice Hall 2000.
  • Peter H. Salus. Handbook of Programming Languages (4 vols.). Macmillan 1998.
  • Ravi Sethi: Programming Languages: Concepts and Constructs, 2nd ed., Addison-Wesley 1996.
  • Michael L. Scott: Programming Language Pragmatics, Morgan Kaufmann Publishers 2005.
  • Robert W. Sebesta: Concepts of Programming Languages, 9th ed., Addison Wesley 2009.
  • Franklyn Turbak and David Gifford with Mark Sheldon: Design Concepts in Programming Languages, The MIT Press 2009.
  • Peter Van Roy and Seif Haridi. Concepts, Techniques, and Models of Computer Programming, The MIT Press 2004.
  • David A. Watt. Programming Language Concepts and Paradigms. Prentice Hall 1990.
  • David A. Watt and Muffy Thomas. Programming Language Syntax and Semantics. Prentice Hall 1991.
  • David A. Watt. Programming Language Processors. Prentice Hall 1993.
  • David A. Watt. Programming Language Design Concepts. John Wiley & Sons 2004.

外部がいぶ链接

[编辑]