<<O>>  Difference Topic ProgrammingFundamentals (r1.4 - 27 Sep 2007 - Main.nova)

META TOPICPARENT OntologyProject
Changed:
<
<

Programming Fundamentals

>
>

Programming Languages


Changed:
<
<
Programming Paradigms
  • Procedural programming
  • Functional programming
  • Object-oriented programming
  • Event-Driven programming
  • Logic Programming

Fundamental programming constructs: Basic syntax and semantics of a higher-level language

  • Variables
  • Types
    • Elementary types
    • Pointers
    • Structured types
      • Array
      • Record
      • String
    • Product and coproduct types
    • Algebraic types
    • Recursive types
    • Arrow (function) types
    • Parameterized types
    • User-defined types
    • Abstract data types
  • Expressions
    • Order of evaluation
    • Side effects
  • Assignments
  • Arithmetic Operations
  • Simple I/O
  • Control flow
    • Sequential
    • Conditional
    • Iterative
    • Recursive
  • Procedures
  • Functions
>
>
Virtual machines
  • The concept of a virtual machine
  • Hierarchy of virtual machines
  • Intermediate languages

Formal Definitions

Theory

Language Classifications

  • Procedural
  • Functional languages
    • Applicative
    • Single Assignment
  • Object-oriented languages
  • Logic
    • Declarative
    • Constraint logic languages
  • Imperative
  • Event-Driven
  • Data flow languages
  • Concurrent Languages
  • Very high level languages (aka Fourth Generation Languages)
  • Query Languages
  • Assembly Languages
  • Design languages
  • Extensible languages
  • Microprogramming languages
  • Multiparadigm languages
  • Nondeterministic languages
  • Specialized application languages
  • Intermediate Languages
  • Metalanguage
  • Markup languages
  • Scripting languages
  • Modeling, specification languages (synonyms)

Language Constructs and Features

  • Pointer to Programming Fundamentals

Language Translation and Execution

  • Interpreters
  • Compilers
  • Debuggers
  • Language translation phases
    • lexical analysis
    • parsing
    • code generation
    • optimization
  • Computer architecture-specific translation requirements
    • Addressing modes
    • Instruction set
    • Instruction format
    • paralellism
  • Computer architecture-independent translation elements
    • Regular expressions in lexical scanners
    • Parsing (concrete and abstract syntax, abstract syntax trees)
    • Context-free grammars in table-driven and recursive-descent parsing
    • Symbol table management
    • Code generation by tree walking
    • Optimization techniques
  • Tools for the translation process
    • lexer (lexical analysis tool)
    • parser
  • Separate (modular) compilation
    • Program libraries
    • Linking
  • Retargetable compilers
  • Translator writing systems compiler generators
  • Run time environments

PL design and implementation

  • Language design
    • General principles of language design
    • Design goals
    • Constraints
    • Programming language syntax
  • Language features: implementation issues
    • Typing regimes
    • Data structure models
    • Name scopes
    • Declarations
      • binding
      • visibility
      • scope
      • lifetime
    • Instruction and control flow
    • Fuctions, procedures, and subroutines

  • Parameters
Changed:
<
<
    • Pass by reference
    • Pass by value
    • Pass by name
    • Pass by result
    • Pass by sharing
    • Pass by value-result

Algorithms and problem-solving

  • Problem-solving strategies
  • Algorithms: concepts & properties
  • Algorithms: implementation
    • Testing
    • Debugging strategies

Data structures and Abstract Data Types (ADT)

  • Linked Structures
  • Hash Table
  • Heap
  • Advanced Data Structures
  • Set ADT
  • Dictionary
  • Graph
  • Queue
>
>
      • Run time memory management
        • Static and dynamic storage management
        • Activation records
        • Garbage collection

  • Stack
Changed:
<
<
  • Tree
  • Implementation strategies
  • Selection strategy

Recursion

  • The concept of recursion
  • Recursive mathematical functions
  • Simple recursive procedures
  • Divide-and-conquer strategies
  • Recursive backtracking
  • Implementation of recursion
  • Recursive algorithms

Event-Driven Programming

  • Event-handling methods
  • Event propagation
  • Managing concurrency in event handling
>
>
        • Heap
    • Coroutines
    • Data abstraction and object orientation
    • Input output

  • Exception handling
Changed:
<
<
  • Asynchronous I/O
>
>
    • Concurrent programming structures
      • Threads
    • Modules packages
  • Frameworks

Changed:
<
<
Object-oriented design
  • Polymorphism (subtype polymorphism vs. inheritance)
  • Class hierarchies: Classes and subclasses
  • Collection classes and iteration protocols
  • Class objects
  • Design patterns
  • Reuse
  • Encapsulation and information-hiding
  • Separation of behavior and implementation
  • Inheritance (overriding, dynamic dispatch)

Component-based computing

  • API programming
  • Class browsers and related tools
  • Debugging in the API environment
  • Using APIs
  • Middleware
>
>
Programming language semantics
  • Informal semantics
  • Formal semantics
    • Denotational semantics
    • Axiomatic semantics
    • Operational semantics

 <<O>>  Difference Topic ProgrammingFundamentals (r1.3 - 26 Apr 2007 - Main.nova)

META TOPICPARENT OntologyProject
Changed:
<
<

Programming Languages

>
>

Programming Fundamentals


Changed:
<
<
Virtual machines
  • The concept of a virtual machine
  • Hierarchy of virtual machines
  • Intermediate languages

Formal Definitions

Theory

Language Classifications

  • Procedural
  • Functional languages
    • Applicative
    • Single Assignment
  • Object-oriented languages
  • Logic
    • Declarative
    • Constraint logic languages
  • Imperative
  • Event-Driven
  • Data flow languages
  • Concurrent Languages
  • Very high level languages (aka Fourth Generation Languages)
  • Query Languages
  • Assembly Languages
  • Design languages
  • Extensible languages
  • Microprogramming languages
  • Multiparadigm languages
  • Nondeterministic languages
  • Specialized application languages
  • Intermediate Languages
  • Metalanguage
  • Markup languages
  • Scripting languages
  • Modeling, specification languages (synonyms)

Language Constructs and Features

  • Pointer to Programming Fundamentals

Language Translation and Execution

  • Interpreters
  • Compilers
  • Debuggers
  • Language translation phases
    • lexical analysis
    • parsing
    • code generation
    • optimization
  • Computer architecture-specific translation requirements
    • Addressing modes
    • Instruction set
    • Instruction format
    • paralellism
  • Computer architecture-independent translation elements
    • Regular expressions in lexical scanners
    • Parsing (concrete and abstract syntax, abstract syntax trees)
    • Context-free grammars in table-driven and recursive-descent parsing
    • Symbol table management
    • Code generation by tree walking
    • Optimization techniques
  • Tools for the translation process
    • lexer (lexical analysis tool)
    • parser
  • Separate (modular) compilation
    • Program libraries
    • Linking
  • Retargetable compilers
  • Translator writing systems compiler generators
  • Run time environments

PL design and implementation

  • Language design
    • General principles of language design
    • Design goals
    • Constraints
    • Programming language syntax
  • Language features: implementation issues
    • Typing regimes
    • Data structure models
    • Name scopes
    • Declarations
      • binding
      • visibility
      • scope
      • lifetime
    • Instruction and control flow
    • Fuctions, procedures, and subroutines
>
>
Programming Paradigms
  • Procedural programming
  • Functional programming
  • Object-oriented programming
  • Event-Driven programming
  • Logic Programming

Fundamental programming constructs: Basic syntax and semantics of a higher-level language

  • Variables
  • Types
    • Elementary types
    • Pointers
    • Structured types
      • Array
      • Record
      • String
    • Product and coproduct types
    • Algebraic types
    • Recursive types
    • Arrow (function) types
    • Parameterized types
    • User-defined types
    • Abstract data types
  • Expressions
    • Order of evaluation
    • Side effects
  • Assignments
  • Arithmetic Operations
  • Simple I/O
  • Control flow
    • Sequential
    • Conditional
    • Iterative
    • Recursive
  • Procedures
  • Functions

      • Parameters
Changed:
<
<
      • Run time memory management
        • Static and dynamic storage management
        • Activation records
        • Garbage collection
        • Stack
>
>
    • Pass by reference
    • Pass by value
    • Pass by name
    • Pass by result
    • Pass by sharing
    • Pass by value-result

Algorithms and problem-solving

  • Problem-solving strategies
  • Algorithms: concepts & properties
  • Algorithms: implementation
    • Testing
    • Debugging strategies

Data structures and Abstract Data Types (ADT)

  • Linked Structures
  • Hash Table

        • Heap
Changed:
<
<
    • Coroutines
    • Data abstraction and object orientation
    • Input output
>
>
  • Advanced Data Structures
  • Set ADT
  • Dictionary
  • Graph
  • Queue
  • Stack
  • Tree
  • Implementation strategies
  • Selection strategy

Recursion

  • The concept of recursion
  • Recursive mathematical functions
  • Simple recursive procedures
  • Divide-and-conquer strategies
  • Recursive backtracking
  • Implementation of recursion
  • Recursive algorithms

Event-Driven Programming

  • Event-handling methods
  • Event propagation
  • Managing concurrency in event handling

    • Exception handling
Changed:
<
<
    • Concurrent programming structures
      • Threads
    • Modules packages
  • Frameworks
>
>
  • Asynchronous I/O

Changed:
<
<
Programming language semantics
  • Informal semantics
  • Formal semantics
    • Denotational semantics
    • Axiomatic semantics
    • Operational semantics
>
>
Object-oriented design
  • Polymorphism (subtype polymorphism vs. inheritance)
  • Class hierarchies: Classes and subclasses
  • Collection classes and iteration protocols
  • Class objects
  • Design patterns
  • Reuse
  • Encapsulation and information-hiding
  • Separation of behavior and implementation
  • Inheritance (overriding, dynamic dispatch)

Component-based computing

  • API programming
  • Class browsers and related tools
  • Debugging in the API environment
  • Using APIs
  • Middleware

 <<O>>  Difference Topic ProgrammingFundamentals (r1.2 - 06 Mar 2007 - Main.nova)

META TOPICPARENT OntologyProject
Changed:
<
<

Programming Fundamentals

>
>

Programming Languages


Changed:
<
<
Programming Paradigms
  • Procedural programming
  • Functional programming
  • Object-oriented programming
  • Event-Driven programming
  • Logic Programming

Fundamental programming constructs: Basic syntax and semantics of a higher-level language

  • Variables
  • Types
    • Elementary types
    • Structured types
    • Product and coproduct types
    • Algebraic types
    • Recursive types
    • Arrow (function) types
    • Parameterized types
    • User-defined types
    • Abstract data types
  • Expressions
    • Order of evaluation
    • Side effects
  • Assignments
  • Arithmetic Operations
  • Simple I/O
  • Control flow
    • Sequential
    • Conditional
    • Iterative
    • Recursive
  • Procedures
  • Functions
>
>
Virtual machines
  • The concept of a virtual machine
  • Hierarchy of virtual machines
  • Intermediate languages

Formal Definitions

Theory

Language Classifications

  • Procedural
  • Functional languages
    • Applicative
    • Single Assignment
  • Object-oriented languages
  • Logic
    • Declarative
    • Constraint logic languages
  • Imperative
  • Event-Driven
  • Data flow languages
  • Concurrent Languages
  • Very high level languages (aka Fourth Generation Languages)
  • Query Languages
  • Assembly Languages
  • Design languages
  • Extensible languages
  • Microprogramming languages
  • Multiparadigm languages
  • Nondeterministic languages
  • Specialized application languages
  • Intermediate Languages
  • Metalanguage
  • Markup languages
  • Scripting languages
  • Modeling, specification languages (synonyms)

Language Constructs and Features

  • Pointer to Programming Fundamentals

Language Translation and Execution

  • Interpreters
  • Compilers
  • Debuggers
  • Language translation phases
    • lexical analysis
    • parsing
    • code generation
    • optimization
  • Computer architecture-specific translation requirements
    • Addressing modes
    • Instruction set
    • Instruction format
    • paralellism
  • Computer architecture-independent translation elements
    • Regular expressions in lexical scanners
    • Parsing (concrete and abstract syntax, abstract syntax trees)
    • Context-free grammars in table-driven and recursive-descent parsing
    • Symbol table management
    • Code generation by tree walking
    • Optimization techniques
  • Tools for the translation process
    • lexer (lexical analysis tool)
    • parser
  • Separate (modular) compilation
    • Program libraries
    • Linking
  • Retargetable compilers
  • Translator writing systems compiler generators
  • Run time environments

PL design and implementation

  • Language design
    • General principles of language design
    • Design goals
    • Constraints
    • Programming language syntax
  • Language features: implementation issues
    • Typing regimes
    • Data structure models
    • Name scopes
    • Declarations
      • binding
      • visibility
      • scope
      • lifetime
    • Instruction and control flow
    • Fuctions, procedures, and subroutines

  • Parameters
Changed:
<
<
      • Pass by reference
      • Pass by value
      • Pass by name
      • Pass by result
      • Pass by sharing
      • Pass by value-result

Algorithms and problem-solving

  • Problem-solving strategies
  • Algorithms: concepts & properties
  • Algorithms: implementation
  • Debugging strategies

Data structures

  • Primitive types
  • Array
  • Record
>
>
      • Run time memory management
        • Static and dynamic storage management
        • Activation records
        • Garbage collection

  • Stack
Deleted:
<
<
  • Queue

  • Heap
Changed:
<
<
  • String
  • Pointer
    • Pointers and functions
    • Pointers and arrays
    • Arrays of pointers
    • Multidimensional arrays and pointers
    • Static initialization of pointer arrays
    • Pointers and structures
    • Command-Line Arguments
    • Pointers and linked lists
    • Pointer and trees
    • Pointers and references
  • Hash Table
  • Graph
  • Tree
  • Linked Structures
  • Implementation strategies
  • Selection strategy

Recursion

  • The concept of recursion
  • Recursive mathematical functions
  • Simple recursive procedures
  • Divide-and-conquer strategies
  • Recursive backtracking
  • Implementation of recursion
  • Recursive algorithms

Event-Driven Programming

  • Event-handling methods
  • Event propagation
  • Managing concurrency in event handling
>
>
    • Coroutines
    • Data abstraction and object orientation
    • Input output

  • Exception handling
Changed:
<
<
  • Asynchronous I/O
>
>
    • Concurrent programming structures
      • Threads
    • Modules packages
  • Frameworks

Changed:
<
<
Object-oriented design
  • Polymorphism (subtype polymorphism vs. inheritance)
  • Class hierarchies: Classes and subclasses
  • Collection classes and iteration protocols
  • Class objects
  • Design patterns
  • Reuse
  • Encapsulation and information-hiding
  • Separation of behavior and implementation
  • Inheritance (overriding, dynamic dispatch)

Component-based computing

  • API programming
  • Class browsers and related tools
  • Debugging in the API environment
  • Using APIs
  • Middleware

-- Main.nova - 31 Aug 2006

>
>
Programming language semantics
  • Informal semantics
  • Formal semantics
    • Denotational semantics
    • Axiomatic semantics
    • Operational semantics

 <<O>>  Difference Topic ProgrammingFundamentals (r1.1 - 31 Aug 2006 - Main.nova)
Line: 1 to 1
Added:
>
>
META TOPICPARENT OntologyProject

Programming Fundamentals

Programming Paradigms

  • Procedural programming
  • Functional programming
  • Object-oriented programming
  • Event-Driven programming
  • Logic Programming

Fundamental programming constructs: Basic syntax and semantics of a higher-level language

  • Variables
  • Types
    • Elementary types
    • Structured types
    • Product and coproduct types
    • Algebraic types
    • Recursive types
    • Arrow (function) types
    • Parameterized types
    • User-defined types
    • Abstract data types
  • Expressions
    • Order of evaluation
    • Side effects
  • Assignments
  • Arithmetic Operations
  • Simple I/O
  • Control flow
    • Sequential
    • Conditional
    • Iterative
    • Recursive
  • Procedures
  • Functions
  • Parameters
      • Pass by reference
      • Pass by value
      • Pass by name
      • Pass by result
      • Pass by sharing
      • Pass by value-result

Algorithms and problem-solving

  • Problem-solving strategies
  • Algorithms: concepts & properties
  • Algorithms: implementation
  • Debugging strategies

Data structures

  • Primitive types
  • Array
  • Record
  • Stack
  • Queue
  • Heap
  • String
  • Pointer
    • Pointers and functions
    • Pointers and arrays
    • Arrays of pointers
    • Multidimensional arrays and pointers
    • Static initialization of pointer arrays
    • Pointers and structures
    • Command-Line Arguments
    • Pointers and linked lists
    • Pointer and trees
    • Pointers and references
  • Hash Table
  • Graph
  • Tree
  • Linked Structures
  • Implementation strategies
  • Selection strategy

Recursion

  • The concept of recursion
  • Recursive mathematical functions
  • Simple recursive procedures
  • Divide-and-conquer strategies
  • Recursive backtracking
  • Implementation of recursion
  • Recursive algorithms

Event-Driven Programming

  • Event-handling methods
  • Event propagation
  • Managing concurrency in event handling
  • Exception handling
  • Asynchronous I/O

Object-oriented design

  • Polymorphism (subtype polymorphism vs. inheritance)
  • Class hierarchies: Classes and subclasses
  • Collection classes and iteration protocols
  • Class objects
  • Design patterns
  • Reuse
  • Encapsulation and information-hiding
  • Separation of behavior and implementation
  • Inheritance (overriding, dynamic dispatch)

Component-based computing

  • API programming
  • Class browsers and related tools
  • Debugging in the API environment
  • Using APIs
  • Middleware

-- Main.nova - 31 Aug 2006

View topic | Diffs | r1.4 | > | r1.3 | > | r1.2 | More
Revision r1.1 - 31 Aug 2006 - 20:55 - Main.nova
Revision r1.4 - 27 Sep 2007 - 16:13 - Main.nova