Difference between revisions of "Multi-Paradigm Programming and Scripting"
Adelo Vieira (talk | contribs) |
Adelo Vieira (talk | contribs) |
||
Line 51: | Line 51: | ||
<br /> | <br /> | ||
− | == | + | ==Compilation vs Interpretation== |
− | |||
<br /> | <br /> | ||
− | == | + | ===Phases of Compilation=== |
− | + | [[File:Phases of compilation.png|950px|thumb|center|]] | |
<br /> | <br /> | ||
− | == | + | ==Object-Oriented Paradigm== |
− | |||
− | |||
− | |||
− | |||
− | |||
<br /> | <br /> | ||
− | ==C++ Inheritance== | + | ===C++ Inheritance=== |
https://www.w3schools.com/cpp/cpp_inheritance.asp | https://www.w3schools.com/cpp/cpp_inheritance.asp | ||
Line 77: | Line 71: | ||
<br /> | <br /> | ||
− | ==Difference Between Static and Dynamic Binding== | + | ===Difference Between Static and Dynamic Binding=== |
https://techdifferences.com/difference-between-static-and-dynamic-binding.html | https://techdifferences.com/difference-between-static-and-dynamic-binding.html | ||
<br /> | <br /> | ||
− | ==Reflection== | + | ===Reflection=== |
A programming language that supports reflection allows its programs to have runtime access to their types and structure and to be able to dynamically modify their behavior | A programming language that supports reflection allows its programs to have runtime access to their types and structure and to be able to dynamically modify their behavior | ||
Line 109: | Line 103: | ||
<br /> | <br /> | ||
− | ===Reflection in Java=== | + | ====Reflection in Java==== |
*Limited support from <code>java.lang.Class</code> | *Limited support from <code>java.lang.Class</code> | ||
Line 132: | Line 126: | ||
::<code>getDeclaredMethods</code> returns an array of all methods of a class | ::<code>getDeclaredMethods</code> returns an array of all methods of a class | ||
::The <code>Method</code> class defines the invoke method, which is used to execute the method found by <code>getMethod</code> | ::The <code>Method</code> class defines the invoke method, which is used to execute the method found by <code>getMethod</code> | ||
+ | |||
<br /> | <br /> | ||
+ | ==Some tutorials== | ||
+ | |||
+ | |||
+ | <br /> | ||
+ | ===Examples from Introduction to Programming Using Python 3=== | ||
+ | http://www.cs.armstrong.edu/liang/py/ExampleByChapters.html | ||
+ | |||
+ | |||
+ | <br /> | ||
+ | ===C++ tutorial=== | ||
+ | http://www.cplusplus.com/doc/tutorial/program_structure/ | ||
<br /> | <br /> |
Revision as of 19:00, 2 November 2019
Why Multi-Paradigm Programming and Scripting? | |||
---|---|---|---|
| |||
Content of this course | |||
Programming Constructs:
|
Programming Paradigms & Languages:
|
Scripting:
|
Applications of Shell Scripting:
|
Contents
Compilation vs Interpretation
Object-Oriented Paradigm
C++ Inheritance
https://www.w3schools.com/cpp/cpp_inheritance.asp
https://www.tutorialspoint.com/cplusplus/cpp_interfaces.htm
Difference Between Static and Dynamic Binding
https://techdifferences.com/difference-between-static-and-dynamic-binding.html
Reflection
A programming language that supports reflection allows its programs to have runtime access to their types and structure and to be able to dynamically modify their behavior
- The types and structure of a program are called
metadata
- The process of a program examining its metadata is called
introspection
- Interceding in the execution of a program is called
intercession
Uses of reflection for software tools:
- Class browsers need to enumerate the classes of a program
- Visual IDEs use type information to assist the developer in building type correct code
- Debuggers need to examine private fields and methods of classes
- Test systems need to know all of the methods of a class
Downsides of Reflection:
- Performance costs
- Exposes private fields and methods
- Voids the advantages of early type checking
- Some reflection code may not run under a security manager, making code nonportable
Reflection in Java
- Limited support from
java.lang.Class
- Java runtime instantiates an instance of
Class
for each object in the program
- The
getClass
method ofClass
returns theClass
object of an object
float[] totals = new float[100];
Class fltlist = totals.getClass();
Class stg = "hello".getClass();
- If there is no object, use class field:
Class stg = String.class;
- Class has four useful methods:
getMethod
searches for a specific public method of a classgetMethods
returns an array of all public methods of a classgetDeclaredMethod
searches for a specific method of a classgetDeclaredMethods
returns an array of all methods of a class- The
Method
class defines the invoke method, which is used to execute the method found bygetMethod
Some tutorials
Examples from Introduction to Programming Using Python 3
http://www.cs.armstrong.edu/liang/py/ExampleByChapters.html
C++ tutorial
http://www.cplusplus.com/doc/tutorial/program_structure/