編程大師智慧

《編程大師智慧》是2010年東南大學出版社出版的圖書,作者是(美)比安庫利(Biancuzzi,F.)、(美)活登(Warden,S.)。

基本信息

內容簡介

編程大師智慧編程大師智慧

《編程大師智慧(影印版)》的主要特色在於它是多位程式語言創造者的獨家採訪,他們創造的這些程式語言極具歷史意義,對於當下的信息社會產生了重大影響。從這部獨特的採訪集中,你將了解到某些特殊設計決定產生的過程,包括這些先行者當時頭腦中的既定目標、他們不得不做的折衷權衡,以及這些寶貴經驗至今對編程產生了怎樣的影響。

如果你對那些用遠見卓識和努力工作造就計算機產業的人們感興趣的話,那么自然會發現《編程大師智慧(影印版)》是一本令人著迷的好書。

目錄

FOREWORD

PREFACE

1 C++

Design Decisions

Using the Language

OOP and Concurrency

Future

Teaching

2 PYTHON

The Pythonic Way

The Good Programmer

Multiple Pythons

Expedients and Experience

3 APL

Paper and Pencil

Elementary Principles

Parallelism

Legacy

4 FORTH

The Forth Language and Language Design

Hardware

Application Design

5 BASIC

The Goals Behind BASIC

Compiler Design

Language and Programming Practice

Langua~'e Design

Work Goals

6 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 Example

7 LUA

The Power of Scripting

Experience

Language Design

8 HASKELL

A Functional Team

Trajectory of Functional Programming

The Haskell Language

Spreading (Functional) Education

formalismand Evolution

9 ML

The Soundness of Theorems

The Theory of Meaning

Beyond Informatics

10 SQL

A Seminal Paper

The Language

Feedback and Evolution

XQuery and XML

11 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

Education

12 JAVA

Power or Simplicity

A Matter of Taste

Concurrency

Designing a Languae

Feedback Loop

13 C#

Language and Design

Growing a Language

C#

The Future of Computer Science

14 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 Patterns

15 PERL

The Language of Revolutions

Language

Community

Evolution and Revolution

16 POSTSCRIPT

Designed to Last

Research and Education

Interfaces to Longevity

Standard Wishes

17 EIFFEL

An Inspired Afternoon

Reusability and Genericity

Proofreading Languages

Managing Growth and Evolution

AFTERWORD

CONTRIBUTORS

INDEX

前言

序言

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 oftenJustified, but few oftheir designs ever leave the designer's bottomdrawer. 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.

精彩書摘

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.

相關詞條

相關搜尋

熱門詞條

聯絡我們