出版时间:2010-6 出版社:东南大学出版社 作者:(美)比安库利,(美)活登 著 页数:480
Tag标签:无
前言
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.
内容概要
《编程大师智慧》的主要特色在于它是多位编程语言创造者的独家采访,他们创造的这些编程语言极具历史意义,对于当下的信息社会产生了重大影响。从这部独特的采访集中,你将了解到某些特殊设计决定产生的过程,包括这些先行者当时头脑中的既定目标、他们不得不做的折衷权衡,以及这些宝贵经验至今对编程产生了怎样的影响。 如果你对那些用远见卓识和努力工作造就计算机产业的人们感兴趣的话,那么自然会发现《编程大师智慧》是一本令人着迷的好书。
作者简介
编者:(美国)比安库利(Federico Biancuzzi) (美国)沃登(Shane Warden)比安库利(Federico Biancuzzi),是一位自由采访者,他的采访报道发表在多家在线刊物上。沃登(Shane Warden),是一位自由软件开发者,他的主要兴趣在于编程语言设计和虚拟机。在业余时间,他是独立出版社Onyx Neon Press的小说出版部门负责人。他也是O’Rcilly图书《敏捷开发艺术》的合著者之一。
书籍目录
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
章节摘录
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.
图书封面
图书标签Tags
无
评论、评分、阅读与下载