出版時(shí)間:2010-6 出版社:東南大學(xué)出版社 作者:(美)比安庫(kù)利,(美)活登 著 頁(yè)數(shù):480
Tag標(biāo)簽:無(wú)
前言
PROGRAMMING LANGUAGE DESIGN IS A FASCINATING TOPIC. There are so many programmerswho think they can design a programming language better than one they are currentlyusing; and there are so many researchers who believe they can design a programming lan-guage better than any that are in current use. Their beliefs are often justified, but few oftheir designs ever leave the designer's bottom drawer. You will not find them representedin this book.Programming language design is a serious business. Small errors in a language design canbe conducive to large errors in an actual program written in the language, and even smallerrors in programs can have large and extremely costly consequences. The vulnerabilitiesof widely used software have repeatedly allowed attack by malware to cause billions ofdollars of damage to the world economy. The safety and security of programming lan-guages is a recurrent theme of this book.
內(nèi)容概要
《編程大師智慧》的主要特色在于它是多位編程語(yǔ)言創(chuàng)造者的獨(dú)家采訪,他們創(chuàng)造的這些編程語(yǔ)言極具歷史意義,對(duì)于當(dāng)下的信息社會(huì)產(chǎn)生了重大影響。從這部獨(dú)特的采訪集中,你將了解到某些特殊設(shè)計(jì)決定產(chǎn)生的過(guò)程,包括這些先行者當(dāng)時(shí)頭腦中的既定目標(biāo)、他們不得不做的折衷權(quán)衡,以及這些寶貴經(jīng)驗(yàn)至今對(duì)編程產(chǎn)生了怎樣的影響。 如果你對(duì)那些用遠(yuǎn)見(jiàn)卓識(shí)和努力工作造就計(jì)算機(jī)產(chǎn)業(yè)的人們感興趣的話,那么自然會(huì)發(fā)現(xiàn)《編程大師智慧》是一本令人著迷的好書。
作者簡(jiǎn)介
編者:(美國(guó))比安庫(kù)利(Federico Biancuzzi) (美國(guó))沃登(Shane Warden)比安庫(kù)利(Federico Biancuzzi),是一位自由采訪者,他的采訪報(bào)道發(fā)表在多家在線刊物上。沃登(Shane Warden),是一位自由軟件開(kāi)發(fā)者,他的主要興趣在于編程語(yǔ)言設(shè)計(jì)和虛擬機(jī)。在業(yè)余時(shí)間,他是獨(dú)立出版社Onyx Neon Press的小說(shuō)出版部門負(fù)責(zé)人。他也是O’Rcilly圖書《敏捷開(kāi)發(fā)藝術(shù)》的合著者之一。
書籍目錄
FOREWORDPREFACE1 C++ Design Decisions Using the Language OOP and Concurrency Future Teaching2 PYTHON The Pythonic Way The Good Programmer Multiple Pythons Expedients and Experience3 APL Paper and Pencil Elementary Principles Parallelism Legacy4 FORTH The Forth Language and Language Design Hardware Application Design5 BASIC The Goals Behind BASIC Compiler Design Language and Programming Practice Langua~'e Design Work Goals6 AWK The Life of Algorithms Language Design Unix and Its Culture The Role of Documentation Computer Science Breeding Little Languages Designing a New Language Legacy Culture Transformative Technologies Bits Ttiat Change the Universe Theory and Practice Waiting for a Breakthrough Programming by Example7 LUA The Power of Scripting Experience Language Design8 HASKELL A Functional Team Trajectory of Functional Programming The Haskell Language Spreading (Functional) Education Formalism and Evolution9 ML The Soundness of Theorems The Theory of Meaning Beyond Informatics10 SQL A Seminal Paper The Language Feedback and Evolution XQuery and XML11 OBJECTIVE-C Eng'ineering Objective-C Growing a Language Education and Training Project Management and Legacy Software Objective-C and Other Languages Components, Sand, and Bricks Quality As an Economic Phenomenon Education12 JAVA Power or Simplicity A Matter of Taste Concurrency Designing a Languae Feedback Loop13 C# Language and Design Growing a Language C# The Future of Computer Science14 UML Learning and Teaching The Role of the People UML Knowledge Be Ready for Change UsingUML Layers and Languages A Bit of Reusability Symmetric Relationships UML Language Design Training Developers Creativity, Refinement, and Patterns15 PERL The Language of Revolutions Language Community Evolution and Revolution16 POSTSCRIPT Designed to Last Research and Education Interfaces to Longevity Standard Wishes17 EIFFEL An Inspired Afternoon Reusability and Genericity Proofreading Languages Managing Growth and EvolutionAFTERWORDCONTRIBUTORSINDEX
章節(jié)摘錄
This is of course what we have for usual numeric types, such as ints, doubles, complexnumbers, and mathematical abstractions, such as vectors. This is a most useful notion,which C++ supports for built-in types and for any user-defined type for which we want it.This contrast to Java where built-in types such and char and int follow it, but user-definedtypes do not, and indeed cannot. As in Simula, all user-defined types in Java have refer-ence semantics. In C++, a programmer can support either, as the desired semantics of atype requires. C# (incompletely) follows C++ in supporting user-defined types with valuesemantics."General resource management" refers to the popular technique of having a resource (e.g.,a file handle or a lock) owned by an object. If that object is a scoped variable, the lifetimeof the variable puts a maximum limit on the time the resource is held. Typically, a con-structor acquires the resource and the destructor releases it. This is often called RAIIiResource Acquisition Is Initialization) and integrates beautifully with error handlingusing exceptions. Obviously, not every resource can be handled in this way, but manycan, and for those, resource management becomes implicit and efficient.
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載