Professional Documents
Culture Documents
CNG242 Lecture 1a2023
CNG242 Lecture 1a2023
• Easy to use
– Especially for teaching / learning tasks
• IEEE Spectrum 2017 • IEEE Spectrum 2021
• IEEE Spectrum 2018 • IEEE Spectrum 2022
• IEEE Spectrum 2019 • Introductory Teaching Languages US
• IEEE Spectrum 2020 • Introductory Teaching Languages UK
• Ease of implementation • Business Insider, 2023
• There are different selections of key concepts support radically different styles
of programming, which are called paradigms.
• There are six major paradigms.
– Imperative programming : characterized by the use of variables, commands,
and procedures (Fortran, Cobol, Pascal, C, C++, Java,Basic)
– object-oriented programming: by the use of objects, classes, and
inheritance (Smalltalk, C++, Object Pascal, Eifell,Java, Csharp)
– concurrent programming: by the use of concurrent processes, and
various control abstractions; (Ada, Occam, Par-C, Pict, Oz)
– functional programming: by the use of functions; (Lisp, ML, Haskell)
– logic programming: by the use of relations
– scripting languages: by the presence of very high-level features.
Syntax and Semantics
• Syntax =Form.
– Concerned with the form of programs: how expressions, commands, declarations,
and other constructs must be arranged to make a well-formed program.
– How language is structured, how it is expressed.
– Syntax is represented by Context Free Grammars expressed in BNF (Bacus Naur
Form) notation (SeeCNG 280, Formal Languages and Abstract Machines)
• Semantics=Meaning
– Concerned with the meaning of programs: how a well-formed program may be
expected to behave when executed on a computer.
– What does a program mean? How it works.
• Verifiers
History