ICPT
Hogeschool leiden – Informatica
Vak: ICPT
Versie: 3
,Inhoudsopgave
1. De historie van C++ 6
1.1. De voordelen van C++ 7
1.2. Nadelen van C++ 7
2. Compiler enToolchain (C) 8
2.1.1. Preprocessor 8
2.1.2. Compiler 9
2.1.3. Assembler 9
2.1.4. Linker 10
2.2. Vertaling van een complexer programma 10
3. Names Bindings, and Scopes (JS) 23
3.1. Names 23
3.2. Binding(Shallow/Deep binding) 23
3.3. Scope and lifetime 26
3.3.1. Function scope 26
3.3.2. Global scope 26
3.3.3. Block scope 27
3.3.4. Lifetime 27
3.4. Referencing environments(dynamic/closures) 29
3.5. Hoisting 29
3.6. Memory allocation 30
3.6.1. Stack geheugen 31
3.6.2. Heap geheugen 31
4. Data types 31
4.1. Types 31
4.2. Pointer and Reference Types 31
4.3. Type Checking 31
4.4. Strong Typing 31
4.5. Type equivalence 31
5. Expressions and Assignment Statements JS) 32
5.1. Arithmetic expressions 32
5.2. Relational and Boolean Expressions 32
5.3. Expression Evaluation 33
5.4. Type Conversions 35
2
, 5.4.1. Impliciete conversie 35
5.4.2. Expliciete conversie 35
5.5. Overloaded Operators 36
5.6. Bitwise operations 36
5.7. Javascript specifieke operatoren 37
6. Statement-Level Control Structures 38
6.1. Arithmetic expressions 38
6.2. Relational and Boolean Expressions 38
6.3. Expression Evaluation 38
6.4. Type Conversions 38
6.5. Overloaded Operators 38
7. Subprograms & Implementing subprograms (C#) 39
7.1. Fundamentals of Subprograms 39
7.2. Parameter-Passing Methods 39
7.3. Overloaded Subprograms 43
7.4. Nested Subprograms & indirect calling 43
7.5. Stacks & Recursion aspects 45
7.6. Closures 46
8. Abstract Data Types and Encapsulation Constructs (C#) 47
8.1. The Concepts of Abstraction 47
8.2. Encapsulation Constructs 48
8.3. Naming Encapsulations 49
8.4. User-defined Abstract Data types 49
8.5. Parameterized Abstract Data Types 50
8.6. Access specifiers 51
9. Exception handling and Event handling (C++) 53
9.1. Exception handling 53
9.2. Event handling 56
10. Concurrency (Go) 58
10.1. Threads 58
10.2. Subprogram-Level Concurrency Discussion 59
10.3. Thread Concepts and Implementation 61
10.4. The scheduler 62
10.5. Co-operative processing 62
3
, 10.6. Synchronisation methods 62
11. Functional programming(Scala) 65
11.1. Fundamentals of Functional Programming Languages 65
11.2. Data Types and Structures 65
11.3. Defining Functions, Lambda’s, List functions 66
11.4. High Order functions 68
12. Reflectie 69
12.1. Waarvoor zijn deze talen volgens jou geschikt en waarom? 69
12.2. Wat is het meest opvallende wat je geleerd hebt van dit verslag? 69
12.3. Wat is jouw mening over deze taal? Onderbouw het. 69
13. Bronvermelding 70
4
Hogeschool leiden – Informatica
Vak: ICPT
Versie: 3
,Inhoudsopgave
1. De historie van C++ 6
1.1. De voordelen van C++ 7
1.2. Nadelen van C++ 7
2. Compiler enToolchain (C) 8
2.1.1. Preprocessor 8
2.1.2. Compiler 9
2.1.3. Assembler 9
2.1.4. Linker 10
2.2. Vertaling van een complexer programma 10
3. Names Bindings, and Scopes (JS) 23
3.1. Names 23
3.2. Binding(Shallow/Deep binding) 23
3.3. Scope and lifetime 26
3.3.1. Function scope 26
3.3.2. Global scope 26
3.3.3. Block scope 27
3.3.4. Lifetime 27
3.4. Referencing environments(dynamic/closures) 29
3.5. Hoisting 29
3.6. Memory allocation 30
3.6.1. Stack geheugen 31
3.6.2. Heap geheugen 31
4. Data types 31
4.1. Types 31
4.2. Pointer and Reference Types 31
4.3. Type Checking 31
4.4. Strong Typing 31
4.5. Type equivalence 31
5. Expressions and Assignment Statements JS) 32
5.1. Arithmetic expressions 32
5.2. Relational and Boolean Expressions 32
5.3. Expression Evaluation 33
5.4. Type Conversions 35
2
, 5.4.1. Impliciete conversie 35
5.4.2. Expliciete conversie 35
5.5. Overloaded Operators 36
5.6. Bitwise operations 36
5.7. Javascript specifieke operatoren 37
6. Statement-Level Control Structures 38
6.1. Arithmetic expressions 38
6.2. Relational and Boolean Expressions 38
6.3. Expression Evaluation 38
6.4. Type Conversions 38
6.5. Overloaded Operators 38
7. Subprograms & Implementing subprograms (C#) 39
7.1. Fundamentals of Subprograms 39
7.2. Parameter-Passing Methods 39
7.3. Overloaded Subprograms 43
7.4. Nested Subprograms & indirect calling 43
7.5. Stacks & Recursion aspects 45
7.6. Closures 46
8. Abstract Data Types and Encapsulation Constructs (C#) 47
8.1. The Concepts of Abstraction 47
8.2. Encapsulation Constructs 48
8.3. Naming Encapsulations 49
8.4. User-defined Abstract Data types 49
8.5. Parameterized Abstract Data Types 50
8.6. Access specifiers 51
9. Exception handling and Event handling (C++) 53
9.1. Exception handling 53
9.2. Event handling 56
10. Concurrency (Go) 58
10.1. Threads 58
10.2. Subprogram-Level Concurrency Discussion 59
10.3. Thread Concepts and Implementation 61
10.4. The scheduler 62
10.5. Co-operative processing 62
3
, 10.6. Synchronisation methods 62
11. Functional programming(Scala) 65
11.1. Fundamentals of Functional Programming Languages 65
11.2. Data Types and Structures 65
11.3. Defining Functions, Lambda’s, List functions 66
11.4. High Order functions 68
12. Reflectie 69
12.1. Waarvoor zijn deze talen volgens jou geschikt en waarom? 69
12.2. Wat is het meest opvallende wat je geleerd hebt van dit verslag? 69
12.3. Wat is jouw mening over deze taal? Onderbouw het. 69
13. Bronvermelding 70
4