ticoAg/ChineseCorpus-Kaggle-fanti huggingface dataset:
; 十屆三中全會（1977年7月16日－21日）
; 十一屆一中全會（1977年8月19日）
: 華國鋒、葉劍英、鄧小平、李先念、汪東興
** 副主席：葉劍英、鄧小平、李先念、汪東興
; 十一屆三中全會（1978年12月18日－22日）
: 華國鋒、葉劍英、鄧小平、李先念、汪東興、陳云
** 副主席：葉劍英、鄧小平、李先念、汪東興、陳云
; 十一屆五中全會（1980年2月23日－29日）
: 華國鋒、葉劍英、鄧小平、李先念、陳云、胡耀邦、趙紫陽
** 副主席：葉劍英、鄧小平、李先念、陳云
; 十一屆六中全會（1981年6月27日－29日）
: 胡耀邦、葉劍英、鄧小平、趙紫陽、李先念、陳云、華國鋒
** 副主席：葉劍英、鄧小平、趙紫陽、李先念、陳云、華國鋒
; 十二屆一中全會（1982年9月12日－13日）
廢除黨主席和副主席的設置，以總書記為“中共中央主要負責人”。
: 胡耀邦、葉劍英、鄧小平、趙紫陽、李先念、陳云
; 十二屆四中全會（1985年9月16日）
: 胡耀邦、鄧小平、趙紫陽、李先念、陳云
; 政治局擴大會議（1987年1月16日）
: 趙紫陽（代理總書記）、鄧小平、李先念、陳云、胡耀邦
; 十三屆一中全會（1987年11月2日）
: 趙紫陽、李鵬、喬石、胡啟立、姚依林
; 十三屆四中全會（1989年6月24日）
: 江澤民、李鵬、喬石、姚依林、宋平、李瑞環
; 十四屆一中全會（1992年10月19日）
: 江澤民、李鵬、喬石、李瑞環、朱鎔基、劉華清、胡錦濤
; 十五屆一中全會（1997年9月19日）
: 江澤民、李鵬、朱鎔基、李瑞環、胡錦濤、尉健行、李嵐清
; 十六屆一中全會（2002年11月15日）
: 胡錦濤、吳邦國、溫家寶、賈慶林、曾慶紅、黃菊（2007年6月2日病逝）、吳官正、李長春、羅幹
; 十七屆一中全會（2007年10月22日）
: 胡錦濤、吳邦國、溫家寶、賈慶林、李長春、習近平、李克強、賀國強、周永康
; 十八屆一中全會（2012年11月15日）
: 習近平、李克強、張德江、俞正聲、劉云山、王岐山、張高麗
; 十九屆一中全會（2017年10月25日）
: 習近平、李克強、栗戰書、汪洋、王滬寧、趙樂際、韓正
*中華人民共和國政治、中華人民共和國政府
***中國共產黨中央委員會總書記
**中國共產黨和中華人民共和國中央軍事委員會
《費加羅的婚禮》（, ），作品號K. 492，是奧地利作曲家沃夫岡·阿瑪迪斯·莫札特的一部四幕喜歌劇，完成于1786年，意大利語腳本由洛倫佐·達·彭特根據法國戲劇家博馬舍的同名喜劇改編而成。
歌劇費加羅的婚禮的海報
博馬舍的《費加羅的婚禮》是他在1770年代創作「費加羅三部曲」中的第二部，于1784年4月27日在巴黎法蘭西劇院首演，其時法國正處于大革命的前夕，這部喜劇對揭露和諷刺封建貴族起了很大的作用。雖然這部喜劇在整個歐洲都獲得好評，但神聖羅馬帝國皇帝約瑟夫二世卻禁止在維也納上演這一劇目。莫扎特所請的腳本作家達·彭特是當時的宮廷詩人，由于他多次出面爭取，最終皇帝于第二年為了緩和國內的一些沖擊而口頭批準改編版歌劇上演。莫扎特用了兩年時間譜曲，他在創作這部歌劇時保留了原作的基本思想，那愚蠢而又放蕩的貴族老爺與獲得勝利的聰明仆人之間的鮮明對照即為整個劇情發展和聲樂家描寫的基礎。
《費加羅的婚禮》的序曲部分短小精致，可算是名曲之一。莫扎特采用了交響樂的手法，歌劇中的音樂主題雖然沒有出現，但是總的風格保持一致，都是以奏鳴曲式寫就的。由管弦樂帶出的兩個主題一快一緩，很好的交代了全劇幽默、機智、快活的基調。也因其完整，充滿活力而且效果顯著，頗能調動氣氛，這段序曲常常脫離歌劇而單獨演奏。
一角是全劇的亮點，莫扎特以傳統的喜歌劇手法為其譜曲，在急口令式的歌唱同時又賦予了人物堅定機智的性格，他在第一幕第八場中送凱魯比諾去從軍時所唱的詠嘆調“再也不能”最有名，因其曲調輕松活潑，耳熟能記，所以廣為傳唱。這個角色不同于其在《塞維利亞的理髮師》中是女中音，此處她屬于抒情女高音，優雅而矜持，因為這個人物的矛盾復雜的心理，所以較難把握，如在第二幕中的搖唱曲。與她相對的是蘇珊娜，其相當于歌劇中丫鬟的角色，因此莫扎特給出的唱段比較活潑質樸，其中還用了大量的宣敘調。此劇用次女高音演唱男童仆凱魯比諾，他的詠嘆調比較天真可愛。莫扎特用輕快跳躍的旋律、簡潔明快的樂句生動地描繪了一個情竇初開的少年那不安定的心態。在《費》中有著多處重唱，對于劇情的展開及人物性格的刻畫都啟著重要的作用。在第三幕的第十場，羅西娜與蘇珊娜寫信時的兩重唱不僅曲調，歌詞也極為優美。做著同一件事的兩個人所懷著的不同的感情在重唱中的到了充分的體現。另外，在第二幕中有一段很長的重唱，一重一重的把劇情推向戲劇沖突的高潮。從伯爵懷疑夫人的房間里藏有男人而開始的兩重唱，到門打開后蘇珊娜出現的三重唱，接著園丁加入成為四重唱，最后以七重唱結束。
1786年5月1日，《費加羅的婚禮》于維也納奧地利國家劇院首演，由莫扎特本人親自擔任指揮。由于此劇題材敏感，上演期間國內的貴族大為憤慨，皇帝個人雖然很欣賞這部作品，但迫于壓力，曾多次要求莫扎特刪改內容。德語版本于1790年在柏林上演。
十七世紀中葉，西班牙塞維利亞近郊。前事見塞維利亞的理髮師。
今天晚上，費加羅（男中低音或男低音）將和蘇姍娜（女高音）結婚，婚禮就在他們的主人（Conte d'Almaviva，男中音）家里舉行。這個時候，兩個人正在他們的新房里忙碌，蘇姍娜坐在鏡子前面梳妝打扮，而一旁的費加羅則苦思冥想如何安排伯爵送的大床。
費加羅打量著房間的每一個角落，比劃著適合放置新床的位置。蘇姍娜轉頭叫他看看自己裝扮得是否得體。見費加羅不置一詞，蘇姍娜便對他說老爺把這間離他臥室不遠的屋子給他倆很值得懷疑，他們要當心。說完，蘇姍娜被夫人叫出去。費加羅想著伯爵若真的不懷好意，他也有辦法對付。
外面，巴托羅醫生（Bartolo，男低音）和他的女管家（Marcellina，女高音）來了，她拿出一張字據，上面寫著：我借了您的錢，如無力償還，便和您結婚，費加羅。這老女人很喜歡費加羅，聽說他今晚要結婚，所以著急的想請醫生幫忙，以此為理由來阻止。巴托羅曾是羅西娜的監護人，以前由于費加羅的干預使他無奈之下讓羅西娜嫁給伯爵，所以一直懷恨在心，眼看著報仇的機會來了，感到非常痛快，答應瑪賽利娜的請求后便立刻離開去辦理。
蘇姍娜進房間的時候看到自己的情敵瑪賽利娜，心中有氣，但兩人都十分克制。表面上看起來溫文爾雅，可不久便互相指責，爭吵到最后，瑪賽利娜認了輸，蘇姍娜笑著看她離開。
此時，童仆凱魯比諾（Cherubino，次女高音）愁眉苦臉的來找蘇姍娜，他說老爺看到他和園丁的女兒巴巴麗娜（Barbarina，女高音）昨天晚上幽會很憤怒，并要把他趕走。現在他正為這事擔心，希望能找女主人幫他求情。凱魯比諾處于情竇初開的年齡，一看見女人就不知所措，蘇姍娜安慰他。
正說著，伯爵來了，凱魯比諾嚇的藏在一條被單下。不知情伯爵以為只有蘇姍娜一個人在屋里，便放肆的向她求愛。突然門外傳來了音樂教師巴西利奧（Don Basilio，男高音）的聲音，伯爵急忙也躲起來。
巴西利奧喜歡在人背后議論，他興奮得說著伯爵夫人羅西娜（女高音）與凱魯比諾之間有點是非。藏在椅子后面的伯爵聽得氣憤，跳出來大罵凱魯比諾，沒想到他一邊說一邊隨手提起被單，當他看到凱魯比諾的時候簡直要發瘋了。
就在這時，費加羅與一大群農民涌進房間。人們捧著鮮花大聲贊揚伯爵廢除家奴結婚時主人享有的「初夜權」。當著眾人，伯爵尷尬地表示這是他應該的。于是可憐的凱魯比諾成了出氣桶，伯爵罰他去當兵。看到凱魯比諾喪氣的樣子，費加羅則鼓勵他，要他放下愛情，勇敢的到戰場上去開創遠大前程。
這一邊，伯爵夫人羅西娜獨自待在房中。今天晚上這里將有一場婚禮，但是她卻感到無比的空寂。她也有過美好的日子，可是現在愛情已不知去向。
蘇姍娜領著費加羅來到伯爵夫人的房間。他們決定聯合起來對付伯爵，首先要偽造一封密告夫人與人幽會的信，然后由蘇姍娜出面約伯爵晚上在花園里幽會，但其實是凱魯比諾假扮的蘇姍娜，用這個辦法使伯爵感到羞愧。
身穿軍裝的凱魯比諾來向夫人和蘇姍娜告別。他們告訴他費加羅的計劃，請他幫助。伯爵夫人仔細地查看那張從軍令，她發現伯爵由于匆忙忘了蓋印章，因此還可以挽回。
門外傳來伯爵的聲音，穿著女裝的凱魯比諾趕緊藏到隔壁的休息室裡，蘇姍娜也藏在窗簾后面。羅西娜打開門，伯爵氣急敗壞的進來。看到妻子臉色有異他便疑心房間里是否藏著男人，夫人一口否認，伯爵拿著一封告密信，他說自己都知道了。伯爵追問休息室的門為何鎖上，夫人說是蘇姍娜，但是鑰匙掉了。伯爵不相信她，便拉了她一起去拿工具開門。趁他們還沒有回來，蘇姍娜與凱魯比諾交換位子，讓他從窗口跳出去，自己則躲進小房內。
伯爵與夫人回來，他立刻奮力橇門。不知情的伯爵夫人十分害怕，招供說凱魯比諾躲在裡面，伯爵更是憤怒。但門橇開來，看見出門者是蘇姍娜，兩個人都大吃一驚。如此，伯爵只得向妻子道歉。可是園丁這時卻跑來報告說剛才有一人從陽臺上跳下去，把花盆打碎了。羅西娜正感為難，幸好費加羅及時趕到，承認剛才是他與蘇姍娜在休息室中相會，為怕伯爵責備便跳下窗臺。
事情解釋清楚，婚禮將要開始，而醫生帶著瑪賽利娜來宣布：費加羅必須按照約定同瑪賽利娜結婚。瞬間，個人的心情轉變。伯爵心中暗喜，蘇姍娜卻急得不知如何是好，費加羅則感到無奈，而瑪賽利娜笑容滿面。最開心的要數醫生了，看到費加羅也有今天他幾乎要歡呼了。
眾人離去后，伯爵獨自留在客廳，對于之前所發生的事情仍感困惑。不久，他們帶了一位法官回來，審判開始。瑪賽利娜表示她不要費加羅還錢，只要娶她為妻。問題看似簡單卻又復雜，結果意外查出了費加羅的身世，他是瑪賽利娜與醫生巴托羅的私生子。這樣一來，事情出現轉機，因為母子不能成婚，原本緊張的氣氛由認親重逢的喜悅代替，只有伯爵不太滿意。
趁著混亂，蘇姍娜把信塞進伯爵手里，而伯爵不小心遺失了別在信上的別針。黃昏時分只見巴巴麗娜提著燈在地上尋找別針，費加羅正巧經過便詢問她，巴巴麗娜據實回答，說是老爺要她給蘇姍娜一封信，而上面的別針不見了。聽完，費加羅的心中起疑，難道所有的女人都是不忠實的，他向自己的母親抱怨。而瑪賽利娜卻不相信蘇珊娜不忠。
費加羅前去找醫生及音樂教師，他要他們藏在花園中等待他的暗號，如果蘇姍娜真的背叛他，他將會報仇。費加羅心中痛苦萬分，他幾乎要詛咒這個世界上所有的女人，認為她們都是計誘男人的女巫。
夜色漸深，蘇姍娜和羅西娜對換了服裝，在一片昏黃朦朧中無人能辨。這個時候蘇姍娜已經發現了躲在一邊的費加羅，但她并不點穿，心想捉弄一下他也不妨。
晚風清涼，花園中靜悄悄的，看上去似乎只有扮作蘇姍娜的羅西娜一人，她有一點矛盾也有一點緊張，她所等的人是自己的丈夫，那個人期盼的卻不是她。伯爵興高采烈的來到花園，現在蘇姍娜終于要屬于他了。
花園的暗處，費加羅也看明白了。可是他對此感到生氣，便將錯就錯，對身邊假裝伯爵夫人的蘇姍娜表示愛慕的心意。這下，蘇姍娜氣得撕破了偽裝，不過在費加洛說明後，兩人又歸於和好。此時伯爵路過，將蘇珊娜誤認為與費加洛暗通款曲的夫人，氣的召集眾人、當眾痛斥他們，但真正的夫人也跟著登場，使伯爵發現自己犯下大錯。伯爵羞愧萬分，向夫人下跪道歉，並得到夫人寬恕。全劇遂在眾人的大合唱中結束。
*  你不可不知道的100首協奏曲及其創作故事
*  莫札特歌劇《費加洛婚禮》蘇珊娜之角色詮釋
*  莫札特《費加洛婚禮》伯爵夫人 詠嘆調音樂分析與演唱詮釋
* 《費加羅的婚禮》，序曲，管樂團改編版本
* （陳樂融自選輯）2008年國立臺北藝術大學戲劇學院秋季公演全本歌詞:  全本歌詞上  全本歌詞下
喜歌劇指前古典主義時期在意大利首先出現的一種新型的歌劇形式。通常包括的角色不多，常對喜劇性的人物進行諷刺，腳本多采用現實題材，通常用方言寫成。意大利的喜歌劇最早作為正歌劇的幕間劇出現，19世紀前半葉趨于衰落。法國喜歌劇成型于18世紀初，早期具有喜劇性內容，以說白與歌唱并用為特征。19世紀末，與法國大歌劇已無顯著區別。
以莫扎特《善意的謊言》為例，做為其第一齣喜歌劇作品，除了對義大利文的充分了解外，講求快速勾勒角色情緒，對管弦樂法的各種「俗套」（例如制式的過門）也必須應用自如。此外，維也納聽眾特別喜愛多章節的終曲（finale），這亦形成19世紀末喜歌劇作品的慣例。
皮埃爾-奧古斯坦·卡隆·德·博馬舍（，），出生于巴黎鐘表匠家庭。13歲時就輟學在家，但他勤奮好學，博覽群書，終于成為知識淵博，才氣橫溢的作家和社會活動家。
博馬舍是法國繼莫里哀之后又一杰出的喜劇作家，他的優秀劇作起著從古典主義向近代戲劇過渡的橋梁作用。1772年完成了以費加羅為主人公的第一部戲劇《塞維利亞的理發師》（又名《防不勝防》）；1778年完成了《費加羅的婚禮》（又名《狂歡的一日》），于1784年在法蘭西劇院首次公演，取得驚人成功。1792年完成《費加羅三部曲》的最后一部《有罪的母親》，思想性藝術性都不如前兩部，反映了劇作家革命精神的衰退。
京都大學（；英語譯名：），簡稱京大（きょうだい），是一所本部位於日本京都市左京區的國立研究型綜合大學。京大前身是日本第二所舊制帝國大學—京都帝國大學（1897年），亦為京都學派的發祥地。2017年獲選為首批頂尖大學「指定國立大學法人」。
作為日本最高學府之一，京大的科研實力在全球享有很高的聲譽，被譽為日本“科學家的搖籃”，學術排名世界30強。相關人物計有19位諾貝爾獎得主（其中正式校友或教職員共11位）、2位菲爾茲獎得主、1位圖靈獎得主及5名日本首相。
吉田校區正門，學生擺設許多看板
京都大學前身是1869年5月建立的第三高等學校。1897年利用馬關條約的滿清賠款，高校的法學部及工學部組成京都帝國大學，高校改設大學預科。同年設置理工科大學。1899年設置法科大學以及醫科大學。1906年設置文科大學。（帝國大學不設學院，下設分科大學）大約20年後這些分科大學改稱學部（學院之意）。在第二次世界大戰后的學制改革中，第三高等學校剩餘的部分（大學預科）併入京都大學。
京都大學鐘樓紀念館和鐘樓前廣場/前面則是已成為京大象徵的樟樹
亞洲首位諾貝爾化學獎得主福井謙一為京大校友，圖為京大校內紀念碑
京都大學起源於日本第2所舊制帝國大學「京都帝國大學」，「自由的學風」、「自重自敬」是大學謳歌的精神基礎。京都大學吉田校區則是京都大學總部的所在地。
京大校園位處被稱為「大學生的城市」之京都市區東北部，稍離市中心鬧區一帶，周邊幽雅閑靜，人文氣息濃厚。強調學生的自主權、承襲舊制第三高等學校的「自由的學風」。早年每逢京大年度慶典「11月祭」，設立於原第三高等學校（現京都大學吉田南校區）內的折田先生像（前校長銅像）都會遭到惡搞塗鴉，校方多次勸阻無效，索性將銅像撤去。然每年三月入學考試放榜之後，至新學年度開學後的四月中旬，學長姊會製作新的折田先生像以迎接新生。開學典禮、畢業典禮也充斥者奇裝異服。
*山川健次郎（兼）1914年8月
理學研究科附屬地球熱學研究所（位於大分縣別府市）
理學研究科4號館
*化學研究所 (1926年 - )
*人文科學研究所 (1939年 - )
*再生醫化學研究所 (1941年 - )
*木質科學研究所 (1944年 - )
*防災研究所 (1951年 - )
*基礎物理學研究所 (1953年 - )
*經濟研究所 (1962年 - )
*數理解析研究所 (1963年 - )
*原子爐實驗室 (1963年 - )
*靈長類研究所 (1967年 - )
絕大部份的學部和大學院都被設置在吉田校區。
;使用學部：無
;使用研究科
;使用附屬施設
*從JR奈良線、京阪宇治線黃檗車站徒步5分鐘。
*工學研究科（電氣系、化學系、建築系、地球系）
*京阪京都交通、Yasaka Bus、京都市營巴士的桂革新公園前、京大桂校區前、桂御陵坂公車站下車
有為了學生和教職員而設置的校車在運行。吉田（本部構內）～宇治間（通稱宇治巴士）一日間來回六趟、吉田～桂間一日間來回七趟、宇治～桂間一日間來回三趟、需要時間皆為五十分鐘到一個小時左右。但是因為塞車等原因，很難確保能夠準時，而且末班車的時間相當早，在那之後就只能利用大眾交通運輸工具，因此在學生之間也有不滿的聲音。
*吉田寮，建造於1913年，為日本最古老的學生宿舍
京大相關人物有19人獲得諾貝爾獎，官方記載正式得主（正式校友或教職員）計11人。校友廣中平祐、森重文曾獲世界數學最高榮譽菲爾茲獎，其他國際頂級學術獎如沃爾夫獎、拉斯克獎、羅伯·柯霍獎、蓋爾德納國際獎以及達爾文獎章也都有京大師生獲獎。
迄今已有5名日本首相以及4名芥川賞得主來自京大，是東京地區外最具人文實力的大學。
File:Yukawa.jpg|湯川秀樹，1949年物理學獎
File:Tomonaga.jpg|朝永振一郎，1965年物理學獎
File:Kenichi Fukui.jpg|福井謙一，1981年化學獎
File:Susumu Tonegawa Photo.jpg|利根川進，1987年生理學或醫學獎
File:Rioji Noyori.jpg|野依良治，2001年化學獎
File:Makoto_Kobayashi-press_conference_Dec_07th,_2008-2b.jpg|小林誠，2008年物理學獎
File:Toshihide Masukawa-press conference Dec 07th, 2008-4.jpg|益川敏英，2008年物理學獎
File:Shinya yamanaka10.jpg|山中伸彌，2012年生理學或醫學獎
File:Isamu Akasaki 201111.jpg|赤崎勇，2014年物理學獎
File:Tasuku Honjo 201311.jpg|本庶佑，2018年生理學或醫學獎
File:Akira Yoshino cropped 2 Akira Yoshino 201910.jpg|吉野彰，2019年化學獎
最早這一稱謂用來指代哲學系教授西田幾多郎和田辺元所開創的一種新的哲學思想，后來這一詞語延伸至法學，經濟學等其他領域，京都學派對日本的哲學理論產生了重要影響。
1933年在京都大學發生的瀧川事件（京大事件），使日本社會開始反思學術界的思想自由和大學存在的意義。戰后黑澤明導演指導的《我於青春無悔》（わが青春に悔なし）就是以這一事件為背景。
1933年，法學部的瀧川幸辰教授在其著作《刑法講義》、《刑法讀本》中，對于《通奸罪》只適用于妻子一方的法律提出批判。瀧川的這一主張，遭到了貴族院議員菊池武夫和政友會宮澤裕等人的攻擊，被指責為共產主義的學說，因此上述著作被禁止發售。齋藤實內閣的文部大臣鳩山一郎甚至對京大校長小西重直提出罷免瀧川的要求。盡管校長拒絕了這個要求，但根據文官分限令，瀧川仍被迫停職。
面對這個事態，京大法學部全體31位教授提出辭職以表抗議，但是未得到學校當局和其他學部的支持。接著，小西校長也被迫辭職，隨著強硬派的新任校長松井元興上任，事件迅速得到了平息。最終導致了瀧川教授被免職，佐佐木惣一（后為立命館大學校長）、宮本英雄、森口繁治、末川博等教授也被免職，其余14名教官辭職的結果。
-{zh-hans:應對燈泡不亮的簡單算法流程圖;zh-hant:應對燈泡不亮的簡單演算法流程圖}-
算法（；演算法），在數學（算學）和電腦科學之中，指一個被定義好的、計算機可施行其指示的有限步驟或次序，常用於計算、和自動推理。算法是，包含一系列定義清晰的指令，并可于有限的時間及空間內清楚的表述出來。
算法中的指令描述的是一個計算，它時從一個初始狀態和初始輸入（可能爲空）開始，經過一系列有限而清晰定義的狀態最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。包括隨機化算法在內的一些算法，都包含了一些隨機輸入。
早在嘗試解決希爾伯特提出的判定問題時，算法的不完整概念已經初步定型；在其后的正式化階段中人們嘗試去定義“”或者“”。這些嘗試包括庫爾特·哥德爾、雅克·埃爾布朗和斯蒂芬·科爾·克萊尼分別于1930年、1934年和1935年提出的遞歸函數，阿隆佐·邱奇於1936年提出的λ演算，1936年的Formulation 1和艾倫·圖靈1937年提出的圖靈機。即使在當下，依然常有符合直覺的想法難以定義爲形式化算法的情況。
算法在中國古代文獻中稱為“術”，最早出現在《周髀算經》、《九章算術》。特別是《九章算術》，給出四則運算、最大公約數、最小公倍數、開平方根、開立方根、求素數的-{zh-cn:埃拉托斯特尼篩法; zh-tw:厄拉托西尼篩法;}-，線性方程組求解的算法。三國時代的劉徽給出求圓周率的算法：劉徽割圓術。
自唐代以來，歷代更有許多專門論述“-{算法}-”的專著：
* 唐代：《一位-{算法}-》 一卷，《-{算法}-》 一卷；
* 宋代：《-{算法}-緒論》 一卷、《-{算法}-秘訣》 一卷；最著名的是楊輝的《楊輝-{算法}-》；
* 元代：《-{丁巨算法}-》；
* 明代：程大位 《-{算法}-統宗》
* 清代：《開平-{算法}-》、《-{算法}-一得》、《-{算法}-全書》。
而英文名稱「algorithm」來自于9世紀波斯數學家花拉子米（比阿勒·霍瓦里松，波斯語：，拉丁轉寫：al-Khwarizmi），因為比阿勒·霍瓦里松在數學上提出了算法這個概念。「算法」原為「algorism」，即“al-Khwarizmi”的音轉，意思是“花拉子米”的運算法則，在18世紀演變為「algorithm」。
歐幾里得算法被人們認為是史上第一個算法。
第一次編寫程序是愛達·勒芙蕾絲于1842年為巴貝奇分析機編寫求解解伯努利微分方程的程序，因此愛達·勒芙蕾絲被大多數人認為是世界上第一位程序員。因為查爾斯·巴貝奇未能完成他的巴貝奇分析機，這個算法未能在巴貝奇分析機上執行。
因為「well-defined procedure」缺少數學上精確的定義，19世紀和20世紀早期的數學家、邏輯學家在定義算法上出現了困難。20世紀的英國數學家圖靈提出了著名的圖靈論題，并提出一種假想的計算機的抽象模型，這個模型被稱為圖靈機。圖靈機的出現解決了算法定義的難題，圖靈的思想對算法的發展起到了重要的作用。
以下是高德納在他的著作《計算機程序設計藝術》裡對演算法的特徵歸納：
# 輸入：一個算法必須有零個或以上輸入量。
# 輸出：一個算法應有一個或以上輸出量，輸出量是算法計算的結果。
# 明確性：算法的描述必須無歧義，以保證算法的實際執行結果是精確地符合要求或期望，通常要求實際執行結果是確定的。
# 有限性：依據圖靈的定義，一個演算法是能夠被任何圖靈完備系統模擬的一串運算，而圖靈機-{只}-有有限個狀態、有限個輸入符號和有限個轉移函數（指令）。而一些定義更規定演算法必須在有限個步驟內完成任務。
# 有效性：又稱可行性。能夠實現，算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現。
算法的核心是建立問題抽象的模型和明確求解目標，之后可以根據具體的問題選擇不同的模式和方法完成算法的設計。
完全遍歷法和不完全遍歷法：在問題的解是有限離散解空間，且可以驗證正確性和最優性時，最簡單的算法就是把解空間的所有元素完全遍歷一遍，逐個檢測元素是否是我們要的解。這是最直接的算法，實現往往最簡單。但是當解空間特別龐大時，這種算法很可能導致工程上無法承受的計算量。這時候可以利用不完全遍歷方法——例如各種搜索法和規劃法——來減少計算量。
分治法：把一個問題分割成互相獨立的多個部分分別求解的思路。這種求解思路帶來的好處之一是便于進行并行計算。
動態規劃法：當問題的整體最優解就是由局部最優解組成的時候，經常采用的一種方法。
貪婪算法：常見的近似求解思路。當問題的整體最優解不是（或無法證明是）由局部最優解組成，且對解的最優性沒有要求的時候，可以采用的一種方法。
線性規劃法：見條目。
簡并法：把一個問題通過邏輯或數學推理，簡化成與之等價或者近似的、相對簡單的模型，進而求解的方法。
遞歸方法與迭代方法
順序計算、并行計算和分布式計算：順序計算就是把形式化算法用編程語言進行單線程序列化后執行。
確定性算法和非確定性算法
精確求解和近似求解
算法是計算機處理信息的本質，因為計算機程序本質上是一個算法來告訴計算機確切的步驟來執行一個指定的任務，如計算職工的薪水或打印學生的成績單。一般地，當算法在處理信息時，會從輸入設備或數據的存儲地址讀取數據，把結果寫入輸出設備或某個存儲地址供以后再調用。
算法的時間復雜度是指算法需要消耗的時間資源。一般來說，計算機算法是問題規模的函數，算法的時間復雜度也因此記做
算法執行時間的增長率與的增長率正相關，稱作，簡稱時間復雜度。
常見的時間復雜度有：常數階，對數階，線性階，線性對數階，平方階，立方階，...，次方階,指數階。隨著問題規模的不斷增大，上述時間復雜度不斷增大，算法的執行效率越低。
算法的空間復雜度是指算法需要消耗的空間資源。其計算和表示方法與時間復雜度類似，一般都用復雜度的漸近性來表示。同時間復雜度相比，空間復雜度的分析要簡單得多。
算法不單單可以用計算機程序來實現，也可以在人工神經網絡、電路或者機械設備上實現。
這是算法的一個簡單的例子。
我們有一串隨機數列。我們的目的是找到這個數列中最大的數。如果將數列中的每一個數字看成是一顆豆子的大小，可以將下面的算法形象地稱為「撿豆子」：
# 首先將第一顆豆子放入口袋中。
# 從第二顆豆子開始檢查，如果正在檢查的豆子比口袋中的還大，則將它撿起放入口袋中，同時丟掉原先口袋中的豆子。反之則繼續下一顆豆子。直到最后一顆豆子。
# 最后口袋中的豆子就是所有的豆子中最大的一顆。
以上算法在中國大陸的教科書中通常被叫做“打擂法”或者“循環打擂”：在一個for循環中，每輪循環都有新的挑戰者。若挑戰者勝的話，挑戰者做新擂主，否則擂主衛冕。for循環結束后輸出最后的擂主。
下面是一個形式算法，用ANSI C代碼表示
int max(int *array, int size)
int mval = *array;
for (i = 1; i  mval)
mval = arrayi;
return mval;
求兩個自然數的最大公約數
設兩個變量和
# 如果，則交換和
# 除以，得到余數
# 判斷，正確則即為“最大公約數”，否則下一步
# 將賦值給，將賦值給，重做第一步。
用ANSI C代碼表示
//交換2數
void swapi(int *x, int *y)
int tmp = *x;
int gcd(int m, int n)
利用if函式以及遞迴則能做出更為精簡的程式碼，更可省去交換的麻煩。（但是也因為遞迴呼叫，其空間複雜度提高）
int gcd(int a,int b)
if(a%b)
return gcd(b,a%b);
return b;
*** -{zh-hans:啟發式搜索; zh-hant:啟發式搜索;}-
** 關于并行算法，請參閱并行計算一文。
*  Davis此書中有列出許多相關的論文，包括哥德爾、邱奇、圖靈、、斯蒂芬·科爾·克萊尼及的論文。在參考文獻中也會列出原作者的姓名。
Pascal是一個指令式編程和面向過程編程語言，由尼克勞斯·維爾特在1968年9月設計，在1970年發行，作為一個小型的和高效的語言，意圖鼓勵使用結構化編程和數據結構進行良好的編程實踐。
稱作Object Pascal的一個衍生是為面向對象編程設計的。
Pascal基于ALGOL編程語言，為紀念法國數學家和哲學家布萊茲·帕斯卡而命名。維爾特后來開發了類似Pascal的Modula-2和Oberon。在開發Pascal之前，維爾特開發了語言Euler，然后開發了Algol-W。
最初，Pascal在很大程度上但不是完全地為了教授學生結構化編程。很多代學生已使用Pascal作為本科課程的入門語言。Pascal的變種也逐漸地用于從研究項目到PC游戲和嵌入式系統的所有領域。更新的Pascal編譯器存在于廣泛使用它的領域。
GCC，Gnu C編譯器，最初是用Pascal的一種方言Pastel編寫的（見GCC#概觀）。Pascal是Apple Lisa和早期Mac開發使用的高級語言；最初Macintosh操作系統的部分是從Pascal源代碼手工翻譯成Motorola 68000匯編語言的。流行的排版系統TeX是由高德納使用基于DEC PDP-10 Pascal的最初文學編程系統WEB編寫的，而像Total Commander的應用是使用Delphi（即Object Pascal）編寫的。
Object Pascal仍然廣泛用于開發像Skype這樣的Windows應用。
維爾特的意圖是，基于結構化編程，創建一個高效（無論是編譯速度還是生成代碼）的運行速度。Pascal植根于Algol 60語言，但是也引進了一些概念和機制，使程序員（在Algol的標量和數組之上）能定義他們自己的復雜（結構化）數據類型，也使建立諸如''lists''、''trees''和''graphs''這樣的動態和遞歸數據結構更容易。這些重要的特性包括''記錄''、''枚舉''、''子范圍''、使用關聯''指針''去''動態''分配變量和''集合''。為了使這些有可能和有意義，Pascal在所有對象上有一個強類型，意味著如果不使用''顯式''轉換，一種數據類型不能轉換或解釋成另外一種。類似的機制是今天許多編程語言的標準。影響Pascal開發的其它語言是COBOL、Simula 67和維爾特自己的Algol-W。
Pascal，像今天的許多編程語言一樣（但是不像C家族的絕大多數語言），允許任意層次的嵌套過程定義，也允許過程和函數內部的絕大多數種類的定義和聲明。這使得一個非常簡單和一致的語法，能讓一個完整的program與一個單獨的procedure或function語法上近似相同（當然除了關鍵字本身外）。
第一個Pascal編譯器是在Zurich為CDC 6000系列大型計算機家族設計的。維爾特報道，在1969年第一次使用Fortran實現的嘗試沒有成功，由于Fortran不足以表達復雜的數據結構。第二次嘗試以Pascal語言本身來制定，并在1970年代中期實施。由于許多Pascal編譯器已類似地自托管，即編譯器本身是以Pascal編寫的，因此在新特性加入語言或編譯器移植到一個新環境時編譯器通常能重編譯其本身。用C編寫的GNU Pascal編譯器是一個顯著的例外。
1972年，Welsh和Quinn在貝爾法斯特女王大學，第一次將CDC Pascal編譯器成功地移植到另外一個主機。目標主機是ICL1900系列。這個編譯器反過來說是ICS Multum微計算機Pascal編譯器的父母。以一個使用Pascal作為系統編程語言的視角，Glasgow University計算機科學系的Findlay，Cupples，Cavouras和Davis開發了Multum接口。完成于1973年夏季的Multum Pascal被認為是第一個16位實現。
一個全新的編譯器由QUB的Welsh et al.在1977年完成。它提供了一個由Glasgow University的Findlay和Watt實現的源語言診斷特性（結合分析，跟蹤和類型識別格式化事后轉儲）。該實現在1980年由南安普敦大學和Glasgow University的一個小組移植到ICL 2900系列。標準Pascal模式實現也基于該編譯器，曼徹斯特大學的Welsh和Hay在1984年已將其改編，以嚴格檢查與BSI 6192/ISO 7185標準的一致性，以及為可移植抽象機生成代碼。
在北美洲為PDP-11編寫的第一個Pascal編譯器在Donald B. Gillies的伊利諾伊大學厄巴納-香檳分校構造，并生成了本地機器代碼。Pascal在整個1970年代和1980年代大受歡迎。
為了迅速地傳播該語言，一個編譯器“移植工具包”在Zurich產生，包括一個為“虛擬”堆棧機（即引導本身合理有效解釋的代碼）生成代碼的編譯器，一個解釋這些代碼的解釋器——''Pascal-P''系統。雖然SC（堆棧計算機）代碼的主要意圖是在至少一個系統上編譯成真實的機器代碼，著名的UCSD實現使用它創建了解釋性UCSD p-System。P-系統編譯器被稱作P1-P4，P1是來自于Zurich的第一個版本，P4是最后一個。
P4編譯器/解釋器仍然可以在兼容最初Pascal的系統上運行和編譯。然而，它本身只是Pascal語言的一個子集。接受全部Pascal語言和包含ISO 7185兼容性的一個P4版本創建了，稱作P5編譯器，它在源形式上可用。
一個為IBM System/370大型計算機產生本地二機制代碼的P4編譯器版本由澳大利亞原子能委員會發布；縮寫該委員會的名稱后，它被稱作“AAEC Pascal編譯器”。從1975年6月起，一個包含編譯器源代碼和二機制代碼，以及PDP-10主機運行時庫文件的P4版本可以從 這里下載。
在1980年代早期，也是為IBM System 370開發的Watcom Pascal開發了。
IP Pascal是一個使用Micropolis DOS的Pascal編程語言的實現，但是被迅速地移植到運行于Z80上的CP/M。在1994年它被移植動80386類型機器上，今天作為Windows/XP和Linux實現存在。在2008年，該系統達到一個新層次，該結果語言稱作“Pascaline”（Pascal的計算器之后）。它包括對象，命名空間控制，動態數組和許多其它擴展，以及與C有相同功能和類型保護的通用特性。它僅是也兼容最初Pascal實現（作為ISO 7185的標準）的這樣一個實現。
在1980年代早期，UCSD Pascal移植到Apple II和Apple III計算機，以提供一個隨著機器而來的BASIC解釋器的結構化替代品。
Apple Computer在1982年為Lisa Workshop創建了自己的Lisa Pascal，在1985年將該編譯器移植到Apple Macintosh和MPW。在1985年，經咨詢維爾特，Larry Tesler定義了Object Pascal，這些擴展合并進Lisa Pascal和Mac Pascal編譯器。
在1980年代，Anders Hejlsberg為Nascom-2編寫了Blue Label Pascal編譯器。為IBM PC編寫的該編譯器的重實現在Borland收購之前以Compas Pascal和PolyPascal的名稱銷售。重命名為''Turbo Pascal''后，它變得廣受歡迎，一方面由于一個積極的定價策略，一方面由于是第一個全屏集成開發環境之一，以及快速的周轉時間（只需要數秒編譯，鏈接和運行）。另外，它用匯編語言編寫，并整體高度優化，使它比許多競爭對手更小和更快。1986年Anders將Turbo Pascal移植到Macintosh，并將Apple的Object Pascal擴展合并進Turbo Pascal。這些擴展然后加回到Turbo Pascal v5.5的PC版本中。與此同時Microsoft也實現了Object Pascal編譯器。 Turbo Pascal 5.5給在1980年代后期開始主要關注于IBM PC的Pascal社區帶來巨大影響力。許多研究BASIC結構化替代品的PC愛好者使用該產品。它也開始被專業開發人員接受。幾乎同時，為了讓Pascal程序員直接使用Microsoft Windows的基于C的API，許多概念從C語言引入。這些擴展包括空終止字符串，指針算術運算，函數指針，address-of運算符和非安全類型轉換。
然而，Borland后來決定需要更多精細的面向對象特性，并在Delphi里使用Apple提議的''Object Pascal''草圖標準作為基礎重新開始。（該Apple草圖仍然不是一個正式的標準。）Delphi編程語言的第一版相應地命名為Object Pascal。與老的OOP擴展相比較，主要的增加是基于參考對象模型，虛擬構建器和析構器，以及屬性。幾個其它編譯器也實現了該方言。
Turbo Pascal，和其它有單元或模塊概念的衍生物是模塊化語言。然而，它不提供一個嵌套模塊概念或合格的導入和導出指定符號。
Super Pascal是一個增加了非數字標簽，作為類型名稱的返回語句和表達式的變異。
Zurich、Karlsruhe和Wuppertal大學已開發了一個''EXtension for Scientific Computing''（Pascal XSC），為有控制精度的數字計算編程提供了一個自由的解決方案。
最初形式的Pascal是一個純粹的過程化語言，包括有諸如if，then，else，while，for等等保留字的類Algol控制結構的傳統數組。然而，Pascal也有許多最初Algol60不包括的數據結構工具和其它抽象概念，像類型定義、記錄、指針、枚舉和集合。這些結構部分從Simula67、Algol68、尼克勞斯·維爾特自己的Algol-W和C. A. R. Hoare的建議繼承或獲得靈感。
Pascal程序開始于外部文件描述符作為參數的program關鍵字；然后跟著begin和end關鍵字封裝的主要塊。分號分割語句，句點終結整個程序（或''單元''）。Pascal源代碼不區分大小寫。
這里是一個非常簡單的“Hello world”程序示例的源代碼：
（注：在實際編程中，通常可以省略第一行的output甚至program行）
writeln('Hello, world!')
{程序塊的最后一條語句后不需要";" -
如果添加一個";"會在程序中增加一個“空語句”}
Pascal和幾種其它流行編程語言的類型以定義變量能存儲的值的范圍的方式定義一個變量，也定義了一個允許在該類變量上執行的操作符集。預定義類型是：
變量能存儲的值的類型
包括shortint,byte;integer,word;longint,longword;int64,qword。其中int64和qword類型不能做循環變量。
包括real;comp;single;double;extended。其中comp類型的實質是整數型。
TRUE或FALSE
只有boolean一種。
來自有序字符集的一個單獨字符
只有char一種。
每種類型（除了boolean）允許的值的范圍是定義實現的。為一些數據轉換提供了函數。為了將real轉換成integer，下面的捨入函數可用：使用四捨五入取整的round和roundto（非標準）；分別向上和向下捨入的ceil和floor；向零舍入的trunc。注意在str和floattostr函數（非標準）中轉換成十進制的輸出，和write命令不使用銀行家捨入。
程序員可以使用Pascal類型聲明工具以預定義類型，自由地定義其它常用數據類型（例如，byte，string等等。)。
byte = 0..255;
signedbyte = -128..127;
string = packed array 1..255 of char;
（注：實際上，常用的數據類型如byte，string等在很多實現中已經定義過）
Pascal的標量類型是real、integer、character、boolean和引進Pascal的新類型枚舉：
r: Real;
i: Integer;
c: Char;
b: Boolean;
e: (apple, pear, banana, orange, lemon);
可以構造任意有序類型（除了real的簡單類型）的子范圍：
x: 1..10;
y: 'a'..'z';
z: pear..orange;
與該時代的其它編程語言相反，Pascal支持集合類型：
set1: set of 1..10;
set2: set of 'a'..'z';
set3: set of pear..orange;
集合是現代數學的基礎概念，可能在很多算法中使用。這樣一個特性是非常有用的，可能比不支持集合的語言的同等結構更快。例如，對于許多Pascal編譯器：
if i in 5..10 then
比下面代碼執行更快：
if (i>4) and (i
從性能和可讀性來說，非連續值的集合可能特別有用：
if i in 0..3, 7, 9, 12..15 then
對于像這些涉及小域上集合的例子，性能的提高通常是編譯器將集合變量看作位掩碼實現的。集合操作符然后可以作為按位機器碼運算有效實現。
然而，對于值范圍顯著大于本地字長的例子，集合表達式比使用關系運算符的同等表達式可能導致更糟的性能和更多的內存使用。
使用類型聲明，可以從其它類型定義新類型：
x = Integer;
y = x;
更進一步，復雜的類型可以從簡單的類型構建：
a = Array 1..10 of Integer;
b = record
x: Integer;
y: Char
c = File of a;
正如上面的例子所示，Pascal的文件是組件序列。每個文件有一個用''f^''表示的緩沖變量。過程''get''（讀）和''put''（寫）移動到緩沖變量的下一個元素。引進了讀，使得''read(f, x)''與''x:=f^; get(f);''相同。引進了寫，使得''write(f, x)''與''f^ := x; put(f);''相同。打印的文字作為字符文件預定義了。當緩沖變量能用于檢查下一個字符可用（讀一個整數前檢查一個數字）時，這個概念導致了早期實現的交互程序的嚴重問題，但是后來用“lazy I/O”概念解決了。
在Jensen & Wirth的Pascal裡，字符串用封裝的字符數組表示；因此有固定長度和通常是空間填充。有些方言有一個自定義字符串類型。
Pascal支持指針的使用：
a = ^b;
a: Integer;
b: Char;
pointertob: a;
這里變量''pointertob''是數據類型記錄''b''的一個指針。指針在聲明之前可用。這是前向聲明，一個使用之前必須聲明的規則的例外。創建一個新記錄，將值''10''和字符''A''分配給記錄的域''a''和''b''，將指針''c''初始化為nil，命令是這樣的：
new(pointertob);
pointertob^.a := 10;
pointertob^.b := 'A';
pointertob^.c := nil;
也可以如下面這樣使用with語句來做：
with pointertob^ do
a := 10;
b := 'A';
c := nil
在with語句范圍內，a和b指記錄指針pointertob的子域，而不是記錄b或指針類型a。
通過在記錄里包含一個指針類型域（c，參見nil和null），可以創建鏈表、棧和隊列。
與許多以指針為特性的語言不同，Pascal只允許指針引用匿名的動態創建的變量，不允許引用標準的靜態或本地變量。另外，指針是類型綁定的，即字符指針與整數指針是類型不兼容的。該凈效果是Pascal指針是“安全的”，遠離其它指針實現固有的類型安全問題。
Pascal是結構化編程語言，意味著控制流被結構化成標準語句，理想地沒有“go to”命令。
while a  b do writeln('Waiting');
if a > b then writeln('Condition met')
else writeln('Condition not met');
for i := 1 to 10 do writeln('Iteration: ', i:1);
a := a + 1
until a = 10;
case i of
0: write('zero');
1: write('one');
2: write('two')
Pascal將程序結構化成過程和函數。
program mine(output);
var i : integer;
procedure print(var j: integer);
function next(k: integer): integer;
next := k + 1
writeln('The total is: ', j);
j := next(j)
i := 1;
while i
過程和函數可以嵌套任意深度，“program”構造是邏輯上最外層的塊。
每個過程或函數可以有自己的正確順序的goto標簽、常量、類型、變量和其它過程和函數聲明。
此順序要求最初的本意是允許高效的單通編譯。然而，在一些方言里聲明節嚴格的順序要求是不必要的。
Pascal從ALGOL語言里吸納了許多語言語法特性，包括使用分號作為語句分割符。這與其它諸如PL/I、C等的語言是不同的。它們使用分號作為語句終止符。正如上述例子演示的，記錄類型聲明、塊或''case''語句的end關鍵字之前，repeat語句的until關鍵字之前，''if''語句的else關鍵字之前，不需要分號。
在Pascal的早期版本裡，不允許存在額外的分號。然而，1973年的''修訂報告''，后來成為ISO 7185:1983里的額外的類ALGOL空語句現在允許這些情況的絕大多數可選地使用分號。例外是仍然不允許分號立即出現在''if''語句的''else''關鍵字之前。
在一些情況下，真正需要空語句：
(* skip blanks *)
while GetChar = ' ' do ;
然而，濫用可能會產生問題。雖然下面語句是語法正確的，但是結果不大可能是想要的：
if alarm then;
begin;
SendMayday;
EjectPilot;
幾個Pascal編譯器和解釋器可供一般公眾使用：
* Delphi是Embarcadero（前身為Borland/CodeGear）的旗艦RAD（快速應用開發）產品。它使用繼承自Pascal的Object Pascal語言（Borland稱作“Delphi編程語言”）為Windows平臺創建應用。從Delphi 8到Delphi 2007就存在的.NET支持已終止，被一個不完全向后兼容的語言（Prism，更名為Oxygene，參見下面）所替代。最新版本（Delphi XE5）支持 iOS、Android、Mac OS X和Microsoft Windows平臺的開發。
* Free Pascal是一個Pascal編寫的多平臺編譯器（它是自舉的）。它旨在提供一個方便而強大的編譯器，既能編譯遺留應用又是開發新應用的手段。它在GNU GPL下發布，而包和運行時庫遵守一個修改的GNU LGPL。除了Turbo Pascal、Delphi和Mac Pascal的兼容模式，它也有自己的過程和面向對象語法模式，以支持諸如操作符重載的擴展特性。它支持許多平臺和操作系統。
* Lazarus是一個RAD（快速應用開發）的類Delphi的可視跨平臺IDE。基于Free Pascal，Lazarus可用于包括Linux、FreeBSD、Mac OS X和Microsoft Windows的無數平臺。
* Dev-Pascal是一個以Borland Delphi設計的，支持Free Pascal和GNU Pascal作為后臺的Pascal IDE。與它的C++兄弟相反，多年來還沒見到它的重要發布。
* Oxygene（前身是''Chrome''）是一個.NET和Mono平臺上的下一代Object Pascal編譯器。它由 RemObjects Software創建和銷售，最近由Codegear/Embarcadero作為Prism開發和出售。它試圖將Pascal的精神帶到.NET，但不是很兼容其它Pascals。
* Kylix是Delphi的一個后代，支持Linux操作系統，有一個改善的對象庫。其編譯器和IDE現已用于非商業用途。Borland不再支持該產品。
* GNU Pascal編譯器（GPC）是GNU編譯器集（GCC）的Pascal編譯器。編譯器本身是用C編寫的，運行時庫絕大多數用Pascal編寫。在GNU通用公共許可下自由發布，它運行在許多平臺和操作系統上。它支持ANSI/ISO標準語言和部分Borland/Turbo Pascal語言支持。比較痛苦的疏漏之一是缺乏100% TP兼容的字符串類型。可能除了Mac Pascal，對Borland Delphi和其他語言版本的支持是非常有限的，不過對它們的支持在快速增長。
* Virtual Pascal是作為一個兼容Borland Pascal語法的本地OS/2編譯器由Vitaly Miryanov在1995年創建的。然后，由fPrint進行商業開發，增加了Win32支持；在2000年成為了自由軟件。今天它可以為Win32、OS/2和Linux編譯，主要兼容于Borland Pascal和Delphi。該編譯器的開發在2005年4月4日終止了。
*  P4編譯器，許多后來的包括UCSD p-System的用Pascal實現的Pascal編譯器的基礎。它實現了完全Pascal的一個子集。
*  P5編譯器，是一個P4的ISO 7185（完全Pascal）適應。
* Turbo Pascal是1980年代和1990年代早期，PC的主要Pascal編譯器，由于強大的擴展和極短的編譯時間而流行。Turbo Pascal是緊湊編寫的，可以完全從內存編譯、運行和調試，而不需要訪問磁盤。那時慢速軟盤驅動器對程序員來說是常見的，進一步放大了Turbo Pascal的速度優勢。目前，Turbo Pascal的老版本（直到5.5）可從Borland的站點免費下載。
* Turbo51是一個8051家族微控制器上的自由Pascal編譯器。（使用Turbo Pascal 7語法）
*  IP Pascal實現了語言“Pascaline”（后來命名為Pascal計算器），是一個兼容ISO 7185原始Pascal的高度擴展Pascal。它具有命名空間控制模塊，包括并發任務模塊、信號、對象、在運行時分配的任意維數組、重載、覆蓋和許多其它擴展。IP Pascal有一個對Pascal語言自定義定制的內置可移植庫。例如，1970年代原始Pascal的一個標準文本輸出應用可以重編譯以運行在一個窗口裡，甚至可以添加圖形結構。
*  Pascal-XT由Siemens為他們的主機操作系統BS2000和SINIX創建的。
* PocketStudio是一個Pascal子集編譯器和RAD工具，針對Palm OS和MC68xxx處理器，有一些自己的擴展以輔助與Palm OS API接口。它仿制Delphi和Lazarus，有一個可視表單設計器，一個對象查看器和一個源代碼編輯器。
* MIDletPascal——一個生成小而快的專門設計來為手機創建軟件的Java字節碼的Pascal編譯器和IDE。
*  Vector Pascal是一個針對諸如MMX和AMD 3d Now的SIMD指令集的語言，支持所有Intel和AMD處理器，以及Sony Playstation 2 Emotion Engine。
*  Morfik Pascal允許Web應用的開發全部（服務器和瀏覽器端）用Object Pascal編寫。
* web Pascal是一個在線IDE和Pascal編譯器。
*  WDSibyl——win32和OS/2的可視開發環境和Pascal編譯器。
*  PP編譯器，直接運行在手持計算機上的Palm OS的編譯器。
*  CDC 6000 Pascal編譯器第一個（CDC 6000）Pascal編譯器的源代碼。
*  Pascal-S - "Pascal-S: A Subset and Its Implementation", N. Wirth in Pascal - The Language and Its Implementation, by D.W. Barron, Wiley 1979.
一個非常廣泛的清單可以在 Pascaland上找到。該站點在法國，但是它基本上是一個編譯器的URL清單；對不講法語者沒有障礙。站點 Pascal Central，Mac中心的一個有文章檔案的豐富集合的Pascal信息和宣傳站點，加上許多編譯器和教程的鏈接。
1983年，該語言標準化為國際標準IEC/ISO 7185，以及一些當地國家的具體標準，包括美國ANSI/IEEE770X3.97-1983和ISO 7185:1983。這2個標準的區別僅在于ISO標準包含一個conformant數組的“級別1”擴展，而ANSI不允許對原始（維爾特版本）語言擴展。1989年，對ISO 7185進行了修正（ISO 7185:1990），糾正了原始文檔中找到的各種錯誤和模糊。
1990年，一個擴展的Pascal標準作為ISO/IEC 10206創建。1993年，ANSI組織用ISO 7185:1990標準代替了ANSI標準，有效地終結了作為一個不同標準的狀態。
ISO 7185被說成是對《用戶手冊和報告（Jensen和維爾特）》詳述的維爾特的1974年語言的澄清，但是引人注意的是增加了作為標準級別1的“Conformant Array Parameters”，級別0是沒有Conformant Array的數組。該增加是在C. A. R. Hoare的請求下，得到了維爾特贊同。該變動的原因是Hoare想創建數學算法庫（NAG）的一個Pascal版本，該庫最初用FORTRAN編寫，發現如果沒有允許變長數組參數的擴展就無法實現該庫。出于同樣的考慮，ISO 7185包含了指定過程和函數參數的參數類型的工具。
注意維爾特自己將1974年的語言當作“標準”，以將其與CDC 6000編譯器的機器特定特征相區別。該語言記錄在“Pascal用戶手冊和報告”的第二部分 報告”。
在Pascal起源的大型機（主機和微計算機）上，這些標準普遍遵循。在IBM-PC上，這些標準不被遵循。在IBM-PC上，Borland標準Turbo Pascal和Delphi有最大量的用戶。因此，了解一個特別的實現符合原始Pascal語言還是Borland方言非常重要。
該語言的IBM-PC版本開始區別于UCSD Pascal，以對該語言的幾個擴展以及幾個遺漏和變化為特性的解釋型實現。許多UCSD語言特性今天仍然存在，包含于Borland的方言。
Pascal的維爾特的Zurich版本在ETH之外以2個基本形式發布，CDC 6000編譯器源和一個稱作Pascal-P系統的移植工具。Pascal-P編譯器遺漏了完全語言的幾個特性。例如，作為參數使用的過程和函數，無區別變體記錄，包裝，處理，過程間的goto方法和完全編譯器的其它特性被忽略。
Kenneth Bowles教授的UCSD Pascal是基于Pascal-P2套件的，因此有幾個共同的Pascal-P語言限制。UCSD Pascal后來作為Apple Pascal被接納了，并持續有幾個版本。雖然UCSD Pascal實際上擴展了Pascal-P2套件的Pascal子集，通過添加回標準Pascal結構，它仍然不是一個完整的Pascal標準安裝。
Borland的Turbo Pascal由Anders Hejlsberg用匯編語言獨立于UCSD或Zurich編譯器編寫。然而，它與UCSD編譯器一樣接納了許多相同子集和擴展。這可能是因為UCSD系統是適于在當時可用的資源限制的微處理器上開發應用的最常見Pascal系統。
* ISO 8651-2:1988 ''信息處理系統——計算機圖像——圖像核心系統（GKS）語言邦定——第二部分：Pascal''
Pascal在計算社區產生了廣泛的響應，包括批評和贊美。
盡管非常流行（尤其在八十到九十年代），依據維爾特的對這種語言的定義來構建Pascal，使它不適合非教學的使用，這遭到了廣泛的批評。 推廣了C語言的布萊恩·柯林漢（Brian Kernighan）早在1981年就在他的論文''Why Pascal Is Not My Favorite Programming Language''對Pascal提出了嚴厲的抨擊。
* Object Pascal
* Niklaus Wirth: ''The Programming Language Pascal.'' 35-63, Acta Informatica, Volume 1, 1971.
* C A R Hoare: ''Notes on data structuring.'' In O-J Dahl, E W Dijkstra and C A R Hoare, editors, Structured Programming, pages 83–174. Academic Press, 1972.
* C. A. R. Hoare, Niklaus Wirth: ''An Axiomatic Definition of the Programming Language Pascal.'' 335-355, Acta Informatica, Volume 2, 1973.
* Kathleen Jensen and Niklaus Wirth: ''PASCAL - User Manual and Report.'' Springer-Verlag, 1974, 1985, 1991, ISBN 0-387-97649-3 and ISBN 3-540-97649-3
* Niklaus Wirth: ''Algorithms + Data Structures = Programs.'' Prentice-Hall, 1975, ISBN 0-13-022418-9
* Niklaus Wirth: ''An assessment of the programming language PASCAL'' 23-30 ACM SIGPLAN Notices Volume 10, Issue 6, June 1975.
* N. Wirth, and A. I. Wasserman, ed: ''Programming Language Design.'' IEEE Computer Society Press, 1980
* D. W. Barron (Ed.): ''Pascal - The Language and its Implementation.'' John Wiley 1981, ISBN 0-471-27835-1