2011-09-30 7 views
2

私はいくつかのコンピュータ言語(Java、C、C++、Python、Scheme、Javascript)に精通していますが、それらを分析して比較する用語(動的/静的バインディング、動的/静的型、クロージャ、オペレータのオーバーロードなど)を使用して、データを処理します。言語比較のための参考資料はありますか?

これらのトピックについては、よく知られていないコンピュータ言語を見て、「ああ、動的バインディングと静的型があります」そして、「それはC++とは違うのだから... ...類似しているから...」?

答えて

2

この無料電子ブックは、あなたが探しているものよりもやや重くなるが、包括的であることがあります。ここでは

Practical Foundations for Programming Languages(PDFファイル1.5Mbの)

は、TOCの抽出物である:

 
I Judgements and Rules 
1 Syntactic Objects 
2 Inductive Definitions 
3 Hypothetical and General Judgements 

II Levels of Syntax 
4 Concrete Syntax 
5 Abstract Syntax 

III Statics and Dynamics 
6 Statics 
7 Dynamics 
8 Type Safety 
9 Evaluation Dynamics 

IV Function Types 
10 Function Definitions and Values 
11 Godel’s System T 
12 Plotkin’s PCF 

V Finite Data Types 
13 Product Types 
14 Sum Types 
15 Pattern Matching 
16 Generic Programming 

VI Infinite Data Types 
17 Inductive and Co-Inductive Types 
18 Recursive Types 

VII Dynamic Types 
19 The Untyped l-Calculus 
20 Dynamic Typing 
21 Hybrid Typing 

VIII Variable Types 
22 Girard’s System F 
23 Abstract Types 
24 Constructors and Kinds 

IX Subtyping 
25 Subtyping 
26 Singleton Kinds 

X Classes and Meth 
27 Dynamic Dispatch 
28 Inheritance 

XI Control Effects 
29 Control Stacks 
30 Exceptions 
31 Continuations 

XII Types and Propos 
32 Constructive Logic 
33 Classical Logic 

XIII Symbols 
34 Symbols 
35 Fluid Binding 
36 Dynamic Classification 

XIV Storage Effects 
37 Modernized Algol 
38 Mutable Data Structures 

XV Laziness 
39 Lazy Evaluation 
40 Polarization 

XVI Parallelism 
41 Nested Parallelism 
42 Futures and Speculation 

XVII Concurrency 
43 Process Calculus 
45 Distributed Algol 

XVIII Modularity 
46 Components and Linking 
47 Type Abstractions and Type Classes 
48 Hierarchy and Parameterization 

XIX Equivalence 
49 Equational Reasoning 
50 Equational Reasoning 
51 Parametricity 
52 Process Equivalence 

XX Appendices 
A Mathematical Preliminaries 
+0

cool!私は見てみましょう。 –

+0

うーん、あまりにもフォーマルな。 :-( –

4

例で学習するのが好きなら、Rosetta Codeは素晴らしいリソースです。そのLanguage Comparison Tableは始めるのに適しているかもしれません。

理論的な比較(「C++とJavaのそれぞれの例外処理システムはどのように異なるのですか」)と実践的な作業(「PHPでforeach()を行う方法を知っています。 PERLにおける同等の操作のために?」)。

関連する問題