0% found this document useful (0 votes)
12 views3 pages

Promgraming L Summery

The document outlines the importance of studying programming languages, highlighting benefits such as improved expressiveness, better language selection, and enhanced learning capabilities. It covers the history of programming languages, their categories, paradigms, domains, and criteria for evaluation and design. Key influences and trade-offs in language implementation are also discussed.

Uploaded by

mohammedbala843
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views3 pages

Promgraming L Summery

The document outlines the importance of studying programming languages, highlighting benefits such as improved expressiveness, better language selection, and enhanced learning capabilities. It covers the history of programming languages, their categories, paradigms, domains, and criteria for evaluation and design. Key influences and trade-offs in language implementation are also discussed.

Uploaded by

mohammedbala843
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Reasons for Studying Concepts of Programming

Languages
1. Increased ability to express ideas/algorithms
2.Improved background for choosing appropriate Languages
3.Increased ability to learn new languages
4.Better Understanding of Significance of implementation
5. Better use of languages that are already known
6. The overall advancement of computing
CSC306 Programming Languages – Exam Study Summary

1. History of Programming Languages


• Ada Lovelace (1843): First algorithm (Difference Engine).
• Plankalkül (Zuse, 1940s): First high-level language.
• FORTRAN (1957): Scientific computing.
• LISP (1958): AI, functional.
• COBOL (1959): Business, still used in banking.
• BASIC (1964): For beginners.
• C (1972): Systems programming.
• Simula (1965): First OOP language.
• Smalltalk, Pascal, C++: Influential structured/OOP languages.
• Python, Java, JavaScript, PHP (1990s): Web & scripting.
• C#, Swift, Go, Dart: Modern multi-purpose/mobile.

🔹 2. Why Study Programming Languages?


• Expressiveness: Write clearer, more powerful code.
• Language choice: Pick the right tool for each job.
• Easier learning: Concepts like OOP help across languages.
• Better debugging: Know how features work under the hood.
• Deeper use: Use advanced features of known languages.
• Progress: Informed developers lead to better languages.

🔹 3. Categories of Programming Languages


• Machine Language: Binary, machine-specific.
• Assembly Language: Human-readable, close to hardware.
• High-Level Language: Abstracted from hardware (e.g., Python, C++).
• System Languages: Low-level control (e.g., C).
• Scripting Languages: Automation & web (e.g., Python, JavaScript).
• Domain-Specific: Specialized (e.g., SQL for databases).
• Visual & Esoteric: Graphical or experimental (e.g., Scratch).

🔹 4. Programming Paradigms
• Imperative: Step-by-step commands (C, Java).
• Declarative: Describe what, not how (SQL, Prolog).
• Structured: Goto-free, nested blocks (Pascal, C).
• Procedural: Functions & procedures (Pascal).
• OOP: Objects & classes (Java, C++, Python).
• Functional: Pure functions, no side effects (Haskell, Scheme).
• Logic/Constraint: Facts + rules, solve with inference (Prolog).
• Others: Event-driven, Aspect-oriented, Reflective, Flow-driven.

🔹 5. Programming Domains
• Scientific: FORTRAN, MATLAB – number-heavy.
• Data Processing: COBOL – records/files.
• Text Processing: SNOBOL, Python – text & string handling.
• AI: LISP, Prolog, Python – intelligent behavior.
• Systems Programming: C, Ada – hardware control.
• Web: HTML (markup), JS, PHP – dynamic content.
• Mobile: Swift, Flutter – phone apps.

🔹 6. Language Evaluation & Design


Key Criteria:
• Expressivity: Clear, compact code.
• Well-Defined: Predictable syntax & semantics.
• Data Types: Integers, strings, arrays, etc.
• Modularity: Support for subprograms and custom types.
• I/O: File handling, DB access.
• Portability: Works across platforms.
• Efficiency: Fast compile/run time.
• Pedagogy: Easy to learn/teach.
• Generality: Usefulness across domains.
Influences:
• Von Neumann Architecture: Memory-based model favors imperative style.
• Programming Methods: E.g., OOP shaped Java/C++.
Design Trade-offs:
• Reliability vs Speed: E.g., Java checks arrays but is slower.
• Readability vs Writability: APL is concise but hard to read.
• Flexibility vs Safety: C++ pointers are powerful but risky.
Implementation Types:
• Compiled: Fast run time (C, C++).
• Interpreted: Easier debugging, slower (Python, PHP).
• Hybrid: Compiled + interpreted (Java bytecode).
• Just-in-Time (JIT): Runtime compiled for speed (Java, .NET).

You might also like