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.
FOREWORD PREFACE C++ Bjarne Stroustrup Design Decisions Usingthe Language OOP and Concurrency Future Teaching
PYTHON Guido uan Rossum The Pythonic Way The Good Programmer Multiple Pythons Expedients and Experience
APL Adin H.Falkof[ Paper and Pencil Elementary Principles Parallelism Legacy
FORTH Charles D. Moore The Forth Languag'e and Language Design Hardware Application Design
BASIC Thomas E. Kurtz The Goals Behind BASIC Compiler Design Language and Programming Practice Language Design Work Goals
AWK Alfred Aho, Peter Weinberger, and Brian Kernighan 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 That Change the Universe Theory and Practice Waiting for a Breakthrough Programming by Example
LUA Luiz Henrigue de Figueiredo and Roberto lerusalimschy The Power of Scripting Experience Language Design
HASKELL Simon Peyton Jones, Paul Hudak, Philip Wadler, and John Hughes A Functional Team Trajectory of Functional Programming The Haskell Language Spreading (Functional) Education Formalism and Evolution
ML Robin Milner The Soundness of Theorems The Theory of Meaning Beyond Informatics
SQL Don Chamberlin A Seminal Paper The Language Feedback and Evolution XQuery and XML ……
摘要
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.