1/37
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Programmable Hardware Example
Analytical Engine & Jacquard Loom
Machine Code Example
Binary, Octal, & Hexadecimal
Evolution of Programming Languages
Programmable Hardware → Machine Code → Assembly → Macro Assembly → Fortran
Why so many languages?
rise of for loops, system types, recursive types, personal preferences, pointers, socioeconomic factors such, & commercial advantages
Scientific App Programming Languages
Fortran & TCE
Artificial Intelligence Programming Languages
Lisp
Embedded Systems Programming Languages
C & Ada
Business App Programming Languages
COBOL
Systems Programming Languages
C & C++
Web Service Programming Languages
C#, JS, Java, PHP, Ruby
Machine Learning Programming Languages
Python & R
Scripting Programming Languages
Perl & Python
Special Purpose Programming Languages
Bash & Make
First Object Oriented Languages
Simula → Smalltalk → C++
Factors for a Successful Language
Easy-to-learn, Easy Implementation, Fast Code Generation, Open Libraries, Cheap/Accessible, and Familiary Syntax
Reasons to Study Programming Languages
Learn situational uses, understand obscurities, learn faster, optimize debuggers + tools, simulate features, + design simple languages
Programming Paradigms
Imperative, Functional, Logic, & Object Oriented
Imperative (Programming Paradigm)
To program with assignments + loops
Functional (Programming Paradigm)
To program with first class or high order functions
(can have imperative abilities)
Logic (Programming Paradigm)
To program with predicates
Object Oriented (Programming Paradigm)
To program with classes and objects
(can be imperative or functional but most languages are imperative)
High Order Function
A function that takes functions as parameter and/or returns functions as an output
Predicate
a statement that defines expresses properties & relations among objects
Imperative Languages
Fortran, C, and Pascal
Functional Languages
Lisp, ML, Haskell, F#
Logic Languages
Prolog
Object Oriented Languages
Java, C#, Python, Common Lisp, Ada
Implementation Methods
Compilation & Interpretation
Compilation (Implementation Method)
offers better performance
operates by taking the source program as input and outputs target program. The target program takes input then returns an output.
Interpretation (Implementation Method)
offers flexibility & error diagnostics
operates by taking both the source code and input and returns an output.
Hybrid System
a modern implementation, has translator produce intermediate program
Virtual Machine (Hybrid System)
possess a translator and JIT compiler (ex Java + Javac)
src program → [translator] → intermediate program
(intermediate program + input) → [vm] → outut
Implementation Strategies
Preprocess, Actual Compiler , Multi-Compiler, Assembler
Preprocess (Implementation Strategy)
used by complex systems; processes macro and adds include files
Actual Compiler (Implementation Strategy)
takes preprocessor output as an input then outputs assembly text (not assembly code)
Multi-Compiler (Implementation Strategy)
complies C to C++ then C++ to assembly
Assembly (Implementation Strategy)
generates relocatable machine code fragments, then the machine code is assembled into an executable by the Linker
Linker (Implementation Strategy)
combines machine code into an executable