程序設(shè)計(jì)語(yǔ)言概念

出版時(shí)間:2011-1  出版社:清華大學(xué)出版社  作者:Robert W.Sebesta  頁(yè)數(shù):563  譯者:徐明星,鄔曉鈞  
Tag標(biāo)簽:無(wú)  

前言

程序設(shè)計(jì)語(yǔ)言是計(jì)算機(jī)教學(xué)的基礎(chǔ)課程。大部分的高等院校程序設(shè)計(jì)語(yǔ)言教材旨在講解語(yǔ)法形式,講解如何寫出讓編譯器接受的語(yǔ)句,以及這些語(yǔ)句是如何被編譯器理解的。學(xué)生很容易將程序設(shè)計(jì)語(yǔ)言當(dāng)作一門特殊的外語(yǔ)來學(xué)習(xí),將編程當(dāng)作是句型練習(xí),編程過程就是語(yǔ)言翻譯的過程一即將頭腦中的“內(nèi)部言語(yǔ)”翻譯成符合某種程序設(shè)計(jì)語(yǔ)言語(yǔ)法的語(yǔ)句。當(dāng)面對(duì)以練習(xí)語(yǔ)法為主要目的習(xí)題時(shí),這樣的翻譯過程容易完成,而當(dāng)面對(duì)復(fù)雜的綜合性習(xí)題或者要編程實(shí)現(xiàn)算法時(shí),學(xué)生往往就會(huì)覺得難以下手。導(dǎo)致這種情況的根本原因是學(xué)生的思維沒有上升到計(jì)算機(jī)解題的思維。程序設(shè)計(jì)語(yǔ)言是一種人造語(yǔ)言,它與漢語(yǔ)、英語(yǔ)、法語(yǔ)等自然語(yǔ)言存在著很大的不同。程序設(shè)計(jì)語(yǔ)言是在一定的設(shè)計(jì)思想指導(dǎo)下,權(quán)衡多種因素,精心為計(jì)算機(jī)定義的。程序設(shè)計(jì)語(yǔ)言的語(yǔ)法和語(yǔ)義只是外在的表現(xiàn),程序設(shè)計(jì)語(yǔ)言的本質(zhì)是解決應(yīng)用領(lǐng)域問題的方法與工具。語(yǔ)言既是思維的表達(dá),也是思維的工具。如果局限于程序設(shè)計(jì)語(yǔ)言定義的語(yǔ)法和語(yǔ)義,不能運(yùn)用語(yǔ)言工具來輔助自己的思維,必然會(huì)限制用程序設(shè)計(jì)語(yǔ)言來解決實(shí)際問題的能力。本書并不是介紹某一種具體的程序設(shè)計(jì)語(yǔ)言所蘊(yùn)涵的計(jì)算機(jī)解題原理,而是直接解釋說明一般性原理,并介紹這些原理在不同程序設(shè)計(jì)語(yǔ)言中的實(shí)現(xiàn),比較不同語(yǔ)言實(shí)現(xiàn)的優(yōu)劣。這是一種從本質(zhì)到現(xiàn)象的論述方式,它使讀者更關(guān)注于程序設(shè)計(jì)語(yǔ)言原理本身,為今后深入理解和掌握具體的程序設(shè)計(jì)語(yǔ)言,選擇更合適的程序設(shè)計(jì)語(yǔ)言來解決具體問題,乃至于創(chuàng)造實(shí)現(xiàn)新的程序設(shè)計(jì)語(yǔ)言都打下扎實(shí)的基礎(chǔ)。

內(nèi)容概要

  《世界著名計(jì)算機(jī)教材精選:程序設(shè)計(jì)語(yǔ)言概念(第9版)》從為什么學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言入手,深入細(xì)致地講解了命令式語(yǔ)言的主要結(jié)構(gòu)及其設(shè)計(jì)與實(shí)現(xiàn),內(nèi)容涉及變量、數(shù)據(jù)類型、表達(dá)式和賦值語(yǔ)句、控制語(yǔ)句、子程序、數(shù)據(jù)抽象機(jī)制、支持面向?qū)ο蟪绦蛟O(shè)計(jì)(繼承和動(dòng)態(tài)方法綁定)、并發(fā)和異常處理等方面。最后兩章介紹了函數(shù)式程序設(shè)計(jì)語(yǔ)言和邏輯程序設(shè)計(jì)語(yǔ)言?!  妒澜缰?jì)算機(jī)教材精選:程序設(shè)計(jì)語(yǔ)言概念(第9版)》內(nèi)容豐富,剖析透徹,被美國(guó)和加拿大多所高等院校采用作為教材。《世界著名計(jì)算機(jī)教材精選:程序設(shè)計(jì)語(yǔ)言概念(第9版)》既可用做高等院校計(jì)算機(jī)及相關(guān)專業(yè)本科生程序設(shè)計(jì)語(yǔ)言課程的教材和參考書,也可供程序設(shè)計(jì)人員參考。

作者簡(jiǎn)介

作者:(美國(guó))塞巴斯塔(Robert W.Sebesta) 譯者:徐明星 鄔曉鈞

書籍目錄

第1章 預(yù)備知識(shí)1.1 學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言原理的原因1.2 程序設(shè)計(jì)領(lǐng)域1.2.1 科學(xué)應(yīng)用1.2.2 商務(wù)應(yīng)用1.2.3 人工智能1.2.4 系統(tǒng)程序設(shè)計(jì)1.2.5 網(wǎng)絡(luò)軟件1.3 語(yǔ)言評(píng)價(jià)標(biāo)準(zhǔn)1.3.1 可讀性1.3.2 可寫性1.3.3 可靠性1.3.4 代價(jià)1.4 影響語(yǔ)言設(shè)計(jì)的因素1.4.1 計(jì)算機(jī)體系結(jié)構(gòu)1.4.2 程序設(shè)計(jì)方法學(xué)1.5 程序設(shè)計(jì)語(yǔ)言的分類1.6 語(yǔ)言設(shè)計(jì)中的權(quán)衡1.7 實(shí)現(xiàn)方法1.7.1 編譯1.7.2 完全解釋1.7.3 混合實(shí)現(xiàn)系統(tǒng)1.7.4 預(yù)處理器1.8 編程環(huán)境小結(jié)復(fù)習(xí)題習(xí)題第2章 主要程序設(shè)計(jì)語(yǔ)言的發(fā)展2.1 Zuse的Plankalkul語(yǔ)言2.1.1 歷史背景2.1.2 語(yǔ)言概述2.2 最少硬件的程序設(shè)計(jì):偽代碼2.2.1 Short Code語(yǔ)言2.2.2 Speedcoding系統(tǒng)2.2.3 UNIVAC“編譯系統(tǒng)”2.2.4.相關(guān)工作2.3 IBM704.計(jì)算機(jī)與Fortran語(yǔ)言2.3.1 歷史背景2.3.2 設(shè)計(jì)過程2.3.3 Fortran I概述2.3.4 Fortran II2.3.5 Fortran IV、77、90、95和20032.3.6 評(píng)價(jià)2.4 函數(shù)式程序設(shè)計(jì):LISP語(yǔ)言2.4.1 人工智能的起源和表處理2.4.2 LISP語(yǔ)言的設(shè)計(jì)過程2.4.3 語(yǔ)言概述2.4.4 評(píng)價(jià)2.4.5 LISP的兩種后代語(yǔ)言2.4.6 相關(guān)語(yǔ)言2.5 邁向成熟的第一步:ALGOL602.5.1 歷史背景2.5.2 早期設(shè)計(jì)過程2.5.3 ALGOL58概述2.5.4 對(duì)ALGOL58報(bào)告的響應(yīng)2.5.5 ALGOL60的設(shè)計(jì)過程2.5.6 ALGOL60概述2.5.7 評(píng)價(jià)2.6 商務(wù)記錄計(jì)算機(jī)化:COBOL語(yǔ)言2.6.1 歷史背景2.6.2 FLOW-MATIC語(yǔ)言2.6.3 COBOL語(yǔ)言的設(shè)計(jì)過程2.6.4 評(píng)價(jià)2.7 分時(shí)處理的開始:BASIC語(yǔ)言2.7.1 設(shè)計(jì)過程2.7.2 語(yǔ)言概述2.7.3 評(píng)價(jià)2.8 滿足所有人的需要:PL/I2.8.1 歷史背景2.8.2 設(shè)計(jì)過程2.8.3 語(yǔ)言概述2.8.4 評(píng)價(jià)2.9 兩種早期的動(dòng)態(tài)語(yǔ)言:APL和SNOBOL2.9.1 APL語(yǔ)言的起源與特點(diǎn)2.9.2 SNOBOL語(yǔ)言的起源與特點(diǎn)2.10 數(shù)據(jù)抽象的開始SIMULA672.10.1 設(shè)計(jì)過程2.10.2 語(yǔ)言概述2.11 正交設(shè)計(jì):ALGOL682.11.1 設(shè)計(jì)過程2.11.2 語(yǔ)言概述2.11.3 評(píng)價(jià)2.12 ALGOL系列語(yǔ)言的早期后代語(yǔ)言2.12.1 為簡(jiǎn)單性而設(shè)計(jì):Pascal語(yǔ)言2.12.2 可移植的系統(tǒng)語(yǔ)言:C語(yǔ)言2.13 基于邏輯的程序設(shè)計(jì):Prolog語(yǔ)言2.13.1 設(shè)計(jì)過程2.13.2 語(yǔ)言概述2.13.3 評(píng)價(jià)2.14 歷史上規(guī)模最大的設(shè)計(jì)工作:Ada語(yǔ)言2.14.1 歷史背景2.14.2 設(shè)計(jì)過程2.14.3 語(yǔ)言概述2.14.4 評(píng)價(jià)2.14.5 Ada952.15 面向?qū)ο蟮某绦蛟O(shè)計(jì):Smalltalk2.15.1 設(shè)計(jì)過程2.15.2 語(yǔ)言概述2.15.3 評(píng)價(jià)2.16 結(jié)合命令式和面向?qū)ο蟮奶匦裕篊++2.16.1 設(shè)計(jì)過程2.16.2 語(yǔ)言概述2.16.3 評(píng)價(jià)2.16.4 一種相關(guān)語(yǔ)言:Eiffe2.16.5 另一種相關(guān)語(yǔ)言:Delphi2.17 基于命令式的面向?qū)ο笳Z(yǔ)言:Java2.17.1 設(shè)計(jì)過程2.17.2 語(yǔ)言概述2.17.3 評(píng)價(jià)2.18 腳本語(yǔ)言2.18.1 Perl的起源與特點(diǎn)2.18.2 JavaScript的起源與特點(diǎn)2.18.3 PHP的起源與特點(diǎn)2.18.4 Python的起源與特點(diǎn)2.18.5 Ruby的起源與特點(diǎn)2.18.6 Lua的起源與特點(diǎn)2.19 一種新千年的基于C的語(yǔ)言:C#2.19.1 設(shè)計(jì)過程2.19.2 語(yǔ)言概述2.19.3 評(píng)價(jià)2.20 標(biāo)記與程序設(shè)計(jì)混合的語(yǔ)言2.20.1 XSLT2.20.2.ISP小結(jié)文獻(xiàn)注釋復(fù)習(xí)題習(xí)題程序設(shè)計(jì)練習(xí)訪談:用戶設(shè)計(jì)與語(yǔ)言設(shè)計(jì)第3章 描述語(yǔ)法和語(yǔ)義3.1 概述3.2 描述語(yǔ)法的普遍問題3.2.1 語(yǔ)言識(shí)別器3.2.2 語(yǔ)言生成器3.3 描述語(yǔ)法的形式化方法3.3.1 巴科斯.諾爾范式和上下文無(wú)關(guān)文法3.3.2 擴(kuò)展的BNF3.3.3 文法與識(shí)別器3.4 屬性文法3.4.1 靜態(tài)語(yǔ)義3.4.2 基本概念3.4.3 屬性文法定義3.4.4 本質(zhì)屬性3.4.5 屬性文法的例子3.4.6 計(jì)算屬性值3.4.7 評(píng)價(jià)3.5 描述程序的意義動(dòng)態(tài)語(yǔ)義3.5.1 操作語(yǔ)義3.5.2 指稱語(yǔ)義3.5.3 公理語(yǔ)義小結(jié)文獻(xiàn)注釋復(fù)習(xí)題習(xí)題第4章 詞法分析和語(yǔ)法分析4.1 概述4.2 詞法分析4.3 語(yǔ)法分析問題4.3.1 語(yǔ)法分析概述4.3.2 自項(xiàng)向下的語(yǔ)法分析器4.3.3 自底向上的語(yǔ)法分析器4.3.4 語(yǔ)法分析的復(fù)雜度4.4 遞歸下降的語(yǔ)法分析4.4.1 遞歸下降的語(yǔ)法分析過程4.4.2 LL文法類4.5 自底向上的語(yǔ)法分析4.5.1 自底向上語(yǔ)法分析器的分析問題4.5.2 移進(jìn)-歸約算法4.5.3 LR語(yǔ)法分析器小結(jié)復(fù)習(xí)題習(xí)題程序設(shè)計(jì)練習(xí)第5章 名字、綁定和作用域5.1 引言5.2 名字5.2.1 設(shè)計(jì)問題5.2.2 名字形式5.2.3 特殊字5.3 變量5.3.1 名字5.3.2 地址5.3.3 類型5.3.4 數(shù)值5.4 綁定的概念5.4.1 屬性與變量綁定5.4.2 綁定類型5.4.3 存儲(chǔ)綁定和生存期5.5 作用域5.5.1 靜態(tài)作用域5.5.2 塊5.5.3 聲明的次序5.5.4 全局作用域5.5.5 靜態(tài)作用域評(píng)估5.5.6 動(dòng)態(tài)作用域5.5.7 動(dòng)態(tài)作用域評(píng)估5.6 作用域和生存期5.7 引用環(huán)境5.8 命名常量小結(jié)復(fù)習(xí)題問題集編程題訪談:腳本語(yǔ)言以及其他靈活解決方案的例子第6章 數(shù)據(jù)類型6.1 引言6.2 基本數(shù)據(jù)類型6.2.1 數(shù)值類型6.2.2 布爾類型6.2.3 字符類型6.3 字符串類型6.3.1 設(shè)計(jì)問題6.3.2 字符串及其操作6.3.3 字符串長(zhǎng)度的設(shè)計(jì)選項(xiàng)6.3.4 評(píng)估6.3.5 字符串類型的實(shí)現(xiàn)6.4 用戶定義的序數(shù)類型6.4.1 枚舉類型6.4.2 子界類型6.4.3 用戶定義的有序類型的實(shí)現(xiàn)6.5 數(shù)組類型6.5.1 設(shè)計(jì)問題6.5.2 數(shù)組和索引6.5.3 下標(biāo)的綁定和數(shù)組的種類6.5.4 數(shù)組初始化6.5.5 數(shù)組操作6.5.6 矩形數(shù)組和不規(guī)則數(shù)組6.5.7 切片6.5.8 評(píng)估6.5.9 數(shù)組類型的實(shí)現(xiàn)6.6 關(guān)聯(lián)數(shù)組6.6.1 結(jié)構(gòu)和操作6.6.2 關(guān)聯(lián)數(shù)組的實(shí)現(xiàn)6.7 記錄類型6.7.1 記錄的定義6.7.2 紀(jì)錄域引用6.7.3 記錄操作6.7.4 評(píng)估6.7.5 錄類型的實(shí)現(xiàn)6.8 聯(lián)合類型6.8.1 設(shè)計(jì)問題6.8.2 判別式聯(lián)合與自由聯(lián)合6.8.3 Ada的聯(lián)合類型6.8.4 評(píng)估6.8.5 聯(lián)合類型的實(shí)現(xiàn)6.9 指針和引用類型6.9.1 設(shè)計(jì)問題6.9.2 指針操作6.9.3 指針的相關(guān)問題6.9.4 Ada語(yǔ)言中的指針6.9.5 C和C++中的指針6.9.6 引用類型……第7章 表達(dá)式與賦值語(yǔ)句第8章 語(yǔ)句輯控制結(jié)構(gòu)第9章 子程序第10章 實(shí)現(xiàn)子程序第11章 抽象數(shù)據(jù)類型與封裝結(jié)構(gòu)第12章 面向?qū)ο蟪绦蛟O(shè)計(jì)的支持第13章 描述語(yǔ)法和語(yǔ)義第14章 異常處理和事件數(shù)理第15章 函數(shù)式程序設(shè)計(jì)語(yǔ)言第16章 邏輯程序設(shè)計(jì)語(yǔ)言參考文獻(xiàn)

章節(jié)摘錄

插圖:增加表達(dá)思想的能力。一般認(rèn)為,人們思考問題的深度受到他們思考時(shí)所使用語(yǔ)言的表達(dá)能力的影響。那些對(duì)自然語(yǔ)言理解膚淺的人,思維復(fù)雜度也有限,特別是在抽象的深度上。換言之,人們難以將口頭或書面無(wú)法表達(dá)的東西概念化。程序員在開發(fā)軟件的過程中同樣受到這一限制。他們開發(fā)軟件所用的語(yǔ)言對(duì)他們所用的控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和抽象層次也造成限制,從而也同樣限制了他們能夠構(gòu)造的算法形式。了解更多的程序設(shè)計(jì)語(yǔ)言的特性能夠在軟件開發(fā)時(shí)減少這些限制。程序員學(xué)會(huì)新的語(yǔ)言結(jié)構(gòu)后,能夠提升軟件開發(fā)時(shí)思維過程的層次。可能有人認(rèn)為,了解其他語(yǔ)言的功能對(duì)一個(gè)被要求使用不具有這一功能的語(yǔ)言進(jìn)行開發(fā)的程序員沒有幫助。然而這種看法并不成立,因?yàn)橥ǔ碚f語(yǔ)言的結(jié)構(gòu)能夠被不直接支持這些結(jié)構(gòu)的其他語(yǔ)言模擬出來。例如,一個(gè)了解Perl語(yǔ)言(Wall等,2000)中關(guān)聯(lián)數(shù)組的結(jié)構(gòu)和用法的C語(yǔ)言程序員,可能會(huì)用C語(yǔ)言設(shè)計(jì)出模擬關(guān)聯(lián)數(shù)組的結(jié)構(gòu)。換句話說,對(duì)程序設(shè)計(jì)語(yǔ)言概念的學(xué)習(xí)能夠使程序員對(duì)重要的語(yǔ)言特性與結(jié)構(gòu)有充分的理解,鼓勵(lì)程序員去使用它們,甚至在所用的語(yǔ)言不直接支持這種特性或結(jié)構(gòu)的情況下。擴(kuò)充選擇合適語(yǔ)言的背景知識(shí)。許多專業(yè)的程序員沒有受過多少正規(guī)的計(jì)算機(jī)科學(xué)教育,而是通過自學(xué)或單位內(nèi)部培訓(xùn)。這類培訓(xùn)通常只教授與公司當(dāng)前項(xiàng)目直接相關(guān)的一兩種語(yǔ)言。其他許多程序員在很久以前受過正規(guī)的培訓(xùn),他們那時(shí)所學(xué)的語(yǔ)言已經(jīng)不再使用,現(xiàn)在程序設(shè)計(jì)語(yǔ)言中許多特性當(dāng)時(shí)知道的人并不多。

編輯推薦

《程序設(shè)計(jì)語(yǔ)言概念(第9版)》:世界著名計(jì)算機(jī)教材精選

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    程序設(shè)計(jì)語(yǔ)言概念 PDF格式下載


用戶評(píng)論 (總計(jì)8條)

 
 

  •   很棒,質(zhì)量不錯(cuò),感覺很好。
  •   書的質(zhì)量很不錯(cuò),內(nèi)容么。。由于是課本,也沒什么好與不好的
  •   這是我在圖書館找到的,哎……不能在上面畫畫寫寫,干脆買吧??!
  •   程序設(shè)計(jì)者必讀,幫你深層次的了解編程語(yǔ)言
  •       作為一個(gè)程序員,一般只有精通一門程序設(shè)計(jì)語(yǔ)言就可以勝任當(dāng)前的工作了。當(dāng)往往進(jìn)入一個(gè)新的項(xiàng)目,或者重新選擇一份工作,或者自己發(fā)現(xiàn)當(dāng)前的所使用的程序語(yǔ)言對(duì)于有些問題的解決,用著不是那么方便,這個(gè)時(shí)候我們就傾向于去尋求一種合適的語(yǔ)言。比如,我最近在工作過程中,發(fā)現(xiàn)當(dāng)前項(xiàng)目其實(shí)缺少很多工具,我們開發(fā)主要用的是C++,一個(gè)個(gè)對(duì)于C++不能說的上精通,但各種語(yǔ)法與庫(kù)也了然于胸,用C++去寫一些工具的時(shí)候就發(fā)現(xiàn)細(xì)枝末節(jié)太多、太煩人,數(shù)據(jù)庫(kù)、XML文件解析、字串處理雖說都有庫(kù)支持,但總感覺用著不那么順手,速度也沒那么快,還不如找一個(gè)腳本語(yǔ)言快速開發(fā)一個(gè),Python正和我意。
        
        程序語(yǔ)言之間有很多共同之處,往往當(dāng)你精通一門之后,學(xué)習(xí)其它語(yǔ)言就觸類旁通了。需要做的事情就是熟悉它的語(yǔ)法,如果能看懂相應(yīng)的BNF(巴克斯——?jiǎng)跔柗妒剑┠蔷透昧耍龅侥@鈨煽傻恼Z(yǔ)法問題,多去查查就好了。語(yǔ)義一般都大同小異,當(dāng)你知道了程序言的各種機(jī)制的實(shí)現(xiàn)之后,對(duì)其語(yǔ)義的理解就更加深刻了?!冻绦蛟O(shè)計(jì)語(yǔ)言原理》這邊書相當(dāng)于程序語(yǔ)言各種機(jī)制的總結(jié),同時(shí)對(duì)于我們?nèi)W(xué)習(xí)新語(yǔ)言也指出一條清晰的思路,對(duì)現(xiàn)在正在用的語(yǔ)言也有更加深刻的認(rèn)識(shí)了。
      
        程序語(yǔ)言的分類:
      
       * 命令式語(yǔ)言:使用最多的,如:C/C++/Java/VB/Pascal等所有主流語(yǔ)言。主要是因?yàn)轳T諾依曼計(jì)算機(jī)模型(處理器負(fù)責(zé)計(jì)算,內(nèi)存負(fù)責(zé)存儲(chǔ)中間結(jié)果)。
       * 面向?qū)ο笳Z(yǔ)言:基于數(shù)據(jù)抽象的封裝,提出類、對(duì)象、繼承、動(dòng)態(tài)綁定等概念,用來模擬問題領(lǐng)域出現(xiàn)的事物。C++/Java最好的例子了。
       * 函數(shù)式語(yǔ)言:這種類型的語(yǔ)言是基于阿隆佐·邱器(Alozo Church,阿蘭·圖靈的師傅)提出的lamda演算,語(yǔ)言中一切皆函數(shù)。Lisp就是典型的函數(shù)式語(yǔ)言。
       * 邏輯語(yǔ)言:基于謂詞演算,可以進(jìn)行邏輯推理的語(yǔ)言,如:Prolog(這種類型的語(yǔ)言至今還沒用過,只是聽說過大名~~)
      
      
        命令式語(yǔ)言的學(xué)習(xí)思路:
      
       1. 名字、變量、綁定
      
       * 名字是否大小寫敏感?那些是關(guān)鍵字?那些是保留字?
       * 變量六個(gè)基本屬性:名字、地址、類型、值、生存期(時(shí)間)、作用域(空間)
       * 變量類型檢查?強(qiáng)類型嗎?
       * 變量的作用域如何?靜態(tài)作用域、快、動(dòng)態(tài)作用域?
       * 變量的生存期如何?精通變量、棧動(dòng)態(tài)變量、顯示堆動(dòng)態(tài)變量、隱式堆動(dòng)態(tài)變量(垃圾回收)?
      
       2. 數(shù)據(jù)類型
      
       * 基本類型:數(shù)值類型(整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)、小數(shù))、布爾類型、字符類型
       * 字符串類型
       * 序數(shù)類型:枚舉、子范圍類型
       * 數(shù)組類型
       * 關(guān)聯(lián)數(shù)組
       * 記錄類型
       * 聯(lián)合類型
       * 指針類型
       * 引用類型
      
       3. 表達(dá)式與賦值語(yǔ)句
      
       * 算術(shù)表達(dá)式
       * 關(guān)系表達(dá)式
       * 布爾表達(dá)式
       * 操作符號(hào)的優(yōu)先級(jí)、結(jié)合性
       * 操作符號(hào)的重載
       * 賦值語(yǔ)句:簡(jiǎn)單賦值、條件目標(biāo)、符合復(fù)合賦值操作符、列表賦值、混合模式賦值
      
       4. 控制結(jié)構(gòu)
      
       * 選擇語(yǔ)句:雙向選擇語(yǔ)句(if... else ...)、多向選擇語(yǔ)句(switch .. case ..)
       * 循環(huán)語(yǔ)句:計(jì)數(shù)器循環(huán)(for ...)、邏輯控制循環(huán)(while)、用戶定位的控制循環(huán)(break、continue)
       * 無(wú)條件跳轉(zhuǎn)(goto)
      
       5. 子程序(過程抽象)
      
       * 過程
       * 函數(shù)
       * 參數(shù)傳遞語(yǔ)義模式:輸入形、輸出型、輸入輸出型
       * 參數(shù)傳遞實(shí)現(xiàn)模式:按值傳遞、按結(jié)果傳遞、按值與結(jié)果傳遞、按引用傳遞
       * 參數(shù)的類型檢查
       * 局部引用環(huán)境:局部變量、嵌套子程序
       * 重載子程序
       * 通用子程序(如:C++函數(shù)模板)
      
       6. 面向?qū)ο蟮某绦蛟O(shè)計(jì)(數(shù)據(jù)抽象)
      
       * 抽象數(shù)據(jù)類型
       * 繼承
       * 動(dòng)態(tài)綁定
      
      
        以上大概列舉了一個(gè)語(yǔ)言的所有特性,有些語(yǔ)言支持、有些語(yǔ)言不支持。語(yǔ)法不盡相同,但語(yǔ)義一般都是相同的。只要按著上面列舉的順序,確定好某一種語(yǔ)言的語(yǔ)法形式,我相信你我都會(huì)很容易學(xué)會(huì)一門新的語(yǔ)言。上述的僅僅是學(xué)會(huì)了一門程序設(shè)計(jì)語(yǔ)言,為了解決實(shí)際問題其實(shí)我們還面臨著無(wú)盡的長(zhǎng)路,問題的模式和相應(yīng)的程序語(yǔ)言庫(kù)等都需要慢慢去熟悉和學(xué)習(xí)。
      
        所以我認(rèn)為,精通一門語(yǔ)言并不代表著你會(huì)用那種語(yǔ)言寫一些不算糟糕的程序,還意味著必須知道常見的問題模式及其對(duì)應(yīng)的程序庫(kù),并且爛熟于心,遇到問題時(shí)候很自然地就會(huì)用到它。當(dāng)然每種語(yǔ)言還有它獨(dú)有的一些技巧和使用注意事項(xiàng),對(duì)這些也要必須有所了解。千萬(wàn)不要自稱:“我精通xxx語(yǔ)言”,其實(shí)我們只是“會(huì)”用它寫一些程序而已,所謂的精通者必定對(duì)這門語(yǔ)言有著極其深刻的理解和認(rèn)識(shí)、甚至編譯器效率,各種細(xì)微之處也了然于胸。(以上僅為個(gè)人觀點(diǎn))
      
  •     在讀,不求甚解
      只因?yàn)楹芏鄡?nèi)容不能在自己的腦海中形成自己的體系,一些基本功有所欠缺所致
      讀到中間部分了,對(duì)于程序設(shè)計(jì)語(yǔ)言的歷史,一些程序語(yǔ)言的特點(diǎn)及一些常見結(jié)構(gòu)的形成原因有所了解,比如字符串,知道為什么會(huì)有字符串這個(gè)數(shù)據(jù)類型,在不同的語(yǔ)言中對(duì)于這個(gè)數(shù)據(jù)類型的實(shí)現(xiàn)有什么區(qū)別,他們是基于什么樣的考慮從而得到最后這樣的實(shí)現(xiàn)的。
      可能會(huì)在讀完后先放放,過段時(shí)間再溫習(xí),也許那時(shí)會(huì)有更多的體會(huì)。
      
      
  •     我有個(gè)“壞習(xí)慣”:碰到我買到的書都要評(píng)論,呵呵。
      
      《概念》我也買了,不過買的是第 5 版的英文版。這本書我比較欣賞的是她介紹語(yǔ)言發(fā)展的部分《Evolution of the Major Programming Languages》(即:《主流程序設(shè)計(jì)語(yǔ)言的演化》),從我之前聽都沒聽過的 Zuse Plankalkal 到現(xiàn)在的主流語(yǔ)言,即有我熟知的匯編、C/C++、Basic,也有我淺聞的 Fortran、Eiffel、Ada、Pascal、LISP、Shcema 等,等于是把我零散的概念全部串接在了一切。
      
      對(duì)于一些熟知的編程概念,像什么“數(shù)組”、“變量”、“作用域”、“結(jié)構(gòu)”、“類”、“對(duì)象”之類的,書中都有闡述其原理及其新舊實(shí)現(xiàn)方法。當(dāng)然,這些實(shí)現(xiàn)方法只是“概念”,如果要學(xué)習(xí)實(shí)際的實(shí)現(xiàn)方法,這本書顯然不怎么適合。
      
      正如“Reasons for Studying Concepts of Programming Languages”(即“學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言概念的理由”)一章中說的那樣,學(xué)習(xí)這些,可以更好地學(xué)習(xí)一門新的編程語(yǔ)言,更好地理解現(xiàn)有的編程概念。至少對(duì)于我,這些是成立的。
      
      有點(diǎn)不爽的是,我買回去的時(shí)候發(fā)現(xiàn)有一頁(yè)是被撕毀欄的(但還可拼接起來)……雖然可以更換,可一算算車費(fèi)幾乎都可以再買一本了,只好怏怏地用膠布貼起來了事了。算是我讀這本書的一段小插曲,呵呵
      
      順便說一句,經(jīng)典的書都好貴啊……
  •   語(yǔ)言均是用于溝通。程序語(yǔ)言用以與計(jì)算機(jī)溝通,不同的語(yǔ)言有不同的語(yǔ)法和類庫(kù),不同的語(yǔ)言有各自不同的領(lǐng)域。
 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7