50% developed

Introduction to Programming Languages

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Table of contents

Introduction to Programming Languages

75% developed  as of Jun 28, 2012 Preface
75% developed  as of Jun 28, 2012 Programming Language Paradigms

Syntax

75% developed  as of Jun 28, 2012 Grammars
75% developed  as of Jun 28, 2012 Parsing
75% developed  as of Jun 28, 2012 Ambiguity
75% developed  as of Jun 28, 2012 Precedence and Associativity

Grammars in Practice

75% developed  as of Jun 28, 2012 Logic Grammars
75% developed  as of Jun 28, 2012 Syntax Directed Interpretation
75% developed  as of Jun 28, 2012 Syntax Directed Translation
75% developed  as of Jun 28, 2012 Syntax Directed Type Checking
75% developed  as of Feb 3, 2020 A recipy for writing a reusable grammar

Execution Environments

75% developed  as of Jun 28, 2012 Compiled Programs
75% developed  as of Jun 28, 2012 Interpreted Programs
75% developed  as of Jun 28, 2012 Binding

Functional Programming in Haskell

25% developed  as of September 19, 2016 Concepts of Functional Languages

Pattern Matching

Types

25% developed  as of July 23, 2012 Data Types
25% developed  as of July 23, 2012 Primitive Types
25% developed  as of July 23, 2012 Constructed Types

Typing Disciplines

25% developed  as of July 23, 2012 Dynamically vs Statically Typed Languages
25% developed  as of July 23, 2012 Nominal vs Structural Typing Equivalence
25% developed  as of July 23, 2012 Safe vs Unsafe Typing
25% developed  as of July 23, 2012 Type Inference vs Type Annotations

Polymorphism

25% developed  as of July 10, 2012 What is Polymorphism
25% developed  as of July 10, 2012 Ad-Hoc Polymorphism
25% developed  as of July 10, 2012 Universal Polymorphism
25% developed  as of May 6, 2016 Overloading
25% developed  as of May 6, 2016 Coercion
25% developed  as of May 6, 2016 Parametric Polymorphism
25% developed  as of May 6, 2016 Subtype Polymorphism

The Lambda Calculus

High-Order Functions

75% developed  as of Jun 28, 2012 Definition and Examples
75% developed  as of Jun 28, 2012 Closures
75% developed  as of Jun 28, 2012 Partial Application
75% developed  as of Jun 28, 2012 Noticeable High-Order Functions
75% developed  as of Jun 28, 2012 Template Oriented Programming

Scope

25% developed  as of Ago 24, 2012 Definitions and Types of Scope
25% developed  as of Ago 24, 2012 Scoping with Blocks
25% developed  as of Ago 24, 2012 Scoping with Namespaces

Functional Data Structures

75% developed  as of Dec 10, 2013 Algebraic Data Types
75% developed  as of Dec 10, 2013 Functional Data Structures

Memory Allocation

Imperative Programming in Python

Memory Management

75% developed  as of Dec 30, 2013 Types of Storage
75% developed  as of Dec 30, 2013 Static Memory
75% developed  as of Dec 30, 2013 Stack
75% developed  as of Dec 30, 2013 Heap
75% developed  as of Dec 30, 2013 Garbage Collection

Abstract Data Types

Object-Oriented Programming

Exceptions

Parameter Passing

75% developed  as of Jun 28, 2012 Parameter Matching
75% developed  as of Jun 28, 2012 Evaluation Strategies

Introduction to Logic Programming

Unification

Cost Models

25% developed  as of Nov 7, 2016 Introduction
25% developed  as of Nov 7, 2016 Lists
25% developed  as of Nov 7, 2016 Tail Call Optimization
25% developed  as of Nov 7, 2016 Unification
25% developed  as of Nov 7, 2016 Arrays

Math in Prolog

25% developed  as of Nov 9, 2016 Simple Predicates
25% developed  as of Nov 9, 2016 The Power of Exhaustive Search

Semantics

25% developed  as of Nov 9, 2016 Quest for Meaning
25% developed  as of Nov 9, 2016 An Interpreter for ML