The document discusses key concepts related to programming languages including:
1. Programming languages are influenced by computer architecture, particularly the von Neumann architecture, and programming methodologies like structured programming and object-oriented programming.
2. There are different types of programming languages including imperative, functional, logic, and object-oriented languages.
3. When designing languages, there are trade-offs between factors like reliability and performance that must be considered.
4. Programming languages can be implemented via compilation, interpretation, or hybrid approaches like just-in-time compilation. Compilers translate to machine code while interpreters execute programs directly.
The document provides an overview of principles of programming languages, including:
- Reasons for studying programming language concepts such as improved ability to learn new languages.
- Categories of programming languages including imperative, functional, logic, and object-oriented languages.
- Factors that influence language design such as computer architecture and programming methodologies.
- Methods of describing syntax including Backus-Naur Form and context-free grammars. Attribute grammars add semantic information to parse trees.
- Implementation methods for languages including compilation, interpretation, and hybrid systems.
This chapter introduces programming language concepts. It discusses reasons for studying programming languages, including being able to express ideas more effectively and choose appropriate languages. It also covers language evaluation criteria like readability and cost. Major influences on language design are identified as computer architecture and programming methodologies. Implementation methods like compilation, interpretation and hybrid systems are also introduced.
The document provides information about a programming languages course, including:
- The lecturer's details and contact information.
- Assessment criteria including tutorials, assignments, exams.
- An outline of course topics such as language categories, evaluation criteria, and implementation methods.
- References and resources used in the course.
1. This document discusses the concepts of programming languages including evaluation criteria, influences on language design, categories, and implementation methods.
2. Key evaluation criteria are readability, writability, reliability, and cost. Major influences are computer architecture and programming methodologies.
3. Major language categories are imperative, functional, logic, and markup/programming hybrids. Implementation methods include compilation, pure interpretation, and hybrid systems.
This document provides an overview of the CSC 447 course on Organization of Programming Languages taught at the Federal University of Agriculture, Abeokuta. The course will cover topics like language definition structures, data types, control structures, runtime considerations, and language evaluation over weeks 1 and 2. It also outlines various programming language paradigms, implementation methods, influences on language design, and criteria for comparing languages.
What You'll Learn:
- Types of programming languages and how theyre used
- The difference between backend and frontend development
- Understanding servers and databases
- Static vs. dynamic websites
A live example of a backend server in action!
This chapter introduces the key concepts around programming languages. It discusses the reasons for studying programming languages, including being able to express ideas in different ways and choosing the right language for a task. It also covers important criteria for evaluating languages, influences on language design like computer architecture and programming paradigms, different categories of languages, trade-offs in language design, and methods for implementing languages like compilation and interpretation.
This document provides a comparative study of six programming languages: C++, PHP, C#, Java, Python, and VB. It summarizes the history, versions, paradigms, strengths/weaknesses, and available compilers/IDEs for PHP and C++. PHP was created in 1994 and has undergone several versions to support new features and platforms. It uses object-oriented and reflection paradigms. PHP code is interpreted and dynamically typed. Popular IDEs for PHP include Eclipse, Visual PHP, and Dreamweaver. C++ was created in 1979 by Bjarne Stroustrup as an enhancement to C, supporting features like classes, templates, and exceptions. It uses procedural, object-oriented, and generic parad
This document provides an overview of computer software and its development. It begins with definitions of software and different types including system software (operating systems, utilities), language translators (compilers, interpreters), and application software. It then discusses programming languages at different levels from machine to natural languages. The document outlines the software development life cycle and common models like waterfall and agile. It also summarizes key aspects of operating systems and general software trends regarding features, hardware requirements, and capabilities.
This document provides information about a programming languages concepts course, including details about the course code, title, lecturer, and description. The course aims to describe the evolution of programming languages and understand different computation models or paradigms like imperative, functional, logic and object-oriented programming. It will cover topics like syntax, semantics, data types, expressions and control structures over 13 weeks. Students will complete an assignment on MATLAB/Octave and two term exams. The course objectives are listed as understanding different programming language paradigms and concepts to select the proper language to solve problems.
This document discusses programming languages and their key concepts. It defines a programming language as a set of rules that tells a computer what operations to perform. It describes the syntax, semantics, and pragmatics of languages. It also discusses different language paradigms like imperative, functional, object-oriented, and rule-based languages. Finally, it outlines criteria for evaluating languages, including readability, writability, reliability, and cost.
The document provides an overview of programming languages and the program development life cycle (PDLC). It discusses several types of programming languages including machine/assembly languages, algorithmic languages, business-oriented languages, education-oriented languages, and object-oriented languages. It also describes the six main steps of the PDLC: defining the problem, designing the program, coding the program, testing and debugging the program, documenting the program, and deploying and maintaining the program.
The document discusses programming languages and their importance. It covers the following key points:
- A programming language allows computation to be described in both machine-readable and human-readable form. Most languages today are high-level languages.
- Studying programming languages improves one's ability to choose the right language for a task, learn new languages, and better understand how language features are implemented.
- Major programming domains include scientific, business, artificial intelligence, systems, and web applications. Each domain utilizes languages suited to its particular needs and purposes.
The document discusses software and its different types. It defines software as the logical component of a computer that provides instructions. There are two main types: system software and application software. System software includes operating systems, utilities, and programming languages. It controls the fundamental operations of the computer and allows communication between hardware and software. Application software is used to perform specific tasks like word processing. Popular examples provided are Windows, Linux, and programming languages like COBOL and BASIC.
The document discusses computer programming and provides details about:
- The process of programming which involves analysis, algorithm development, coding, and testing
- Common programming languages like C, C++, Java, and Python
- The roles of programmers and the different phases of programming like planning, coding, testing, and documentation
- Key aspects of programming like reliability, robustness, usability, portability, and maintainability
The document discusses computer programming and provides details about:
- The process of programming which involves analysis, algorithm development, coding, and testing
- Common programming languages like C, C++, Java, and Python
- The roles of programmers and the different phases of programming like planning, coding, testing, and documentation
- Key aspects of programming like reliability, robustness, usability, portability, and maintainability
Perl is a scripting language originally developed for text manipulation and report generation. It is now used for a variety of purposes including web development, GUI development, and system administration. Perl scripts are interpreted, providing ease of use and rapid development at the cost of efficiency. Perl supports features like regular expressions, strings, arrays, references, and modules that make it well-suited for tasks like extracting information from files and converting text from one format to another.
This document provides an overview of key concepts related to programming languages. It discusses the definition of a programming language and the history and evolution of popular languages from 1951 to present. It covers programming language paradigms like procedural, object-oriented, functional, and logic-based languages. It also discusses factors that influence language design like efficiency, regularity, and issues in language translation. Finally, it summarizes the structure and operation of computers and how different programming models map to underlying computer architectures.
The document discusses compilers and their role in translating high-level programming languages into machine-readable code. It notes that compilers perform several key functions: lexical analysis, syntax analysis, generation of an intermediate representation, optimization of the intermediate code, and finally generation of assembly or machine code. The compiler allows programmers to write code in a high-level language that is easier for humans while still producing efficient low-level code that computers can execute.
This presentation was provided by Jack McElaney of Microassist during the initial session of the NISO training series "Accessibility Essentials." Session One: The Introductory Seminar was held April 3, 2025.
General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...Amlan Sarkar
油
Prelims (with answers) + Finals of a general quiz originally conducted on 13th November, 2024.
Part of The Maharaja Quiz - the Annual Quiz Fest of Maharaja Agrasen College, University of Delhi.
Feedback welcome at amlansarkr@gmail.com
More Related Content
Similar to Chapter 1: Theory of programming languages (20)
This document provides an overview of the CSC 447 course on Organization of Programming Languages taught at the Federal University of Agriculture, Abeokuta. The course will cover topics like language definition structures, data types, control structures, runtime considerations, and language evaluation over weeks 1 and 2. It also outlines various programming language paradigms, implementation methods, influences on language design, and criteria for comparing languages.
What You'll Learn:
- Types of programming languages and how theyre used
- The difference between backend and frontend development
- Understanding servers and databases
- Static vs. dynamic websites
A live example of a backend server in action!
This chapter introduces the key concepts around programming languages. It discusses the reasons for studying programming languages, including being able to express ideas in different ways and choosing the right language for a task. It also covers important criteria for evaluating languages, influences on language design like computer architecture and programming paradigms, different categories of languages, trade-offs in language design, and methods for implementing languages like compilation and interpretation.
This document provides a comparative study of six programming languages: C++, PHP, C#, Java, Python, and VB. It summarizes the history, versions, paradigms, strengths/weaknesses, and available compilers/IDEs for PHP and C++. PHP was created in 1994 and has undergone several versions to support new features and platforms. It uses object-oriented and reflection paradigms. PHP code is interpreted and dynamically typed. Popular IDEs for PHP include Eclipse, Visual PHP, and Dreamweaver. C++ was created in 1979 by Bjarne Stroustrup as an enhancement to C, supporting features like classes, templates, and exceptions. It uses procedural, object-oriented, and generic parad
This document provides an overview of computer software and its development. It begins with definitions of software and different types including system software (operating systems, utilities), language translators (compilers, interpreters), and application software. It then discusses programming languages at different levels from machine to natural languages. The document outlines the software development life cycle and common models like waterfall and agile. It also summarizes key aspects of operating systems and general software trends regarding features, hardware requirements, and capabilities.
This document provides information about a programming languages concepts course, including details about the course code, title, lecturer, and description. The course aims to describe the evolution of programming languages and understand different computation models or paradigms like imperative, functional, logic and object-oriented programming. It will cover topics like syntax, semantics, data types, expressions and control structures over 13 weeks. Students will complete an assignment on MATLAB/Octave and two term exams. The course objectives are listed as understanding different programming language paradigms and concepts to select the proper language to solve problems.
This document discusses programming languages and their key concepts. It defines a programming language as a set of rules that tells a computer what operations to perform. It describes the syntax, semantics, and pragmatics of languages. It also discusses different language paradigms like imperative, functional, object-oriented, and rule-based languages. Finally, it outlines criteria for evaluating languages, including readability, writability, reliability, and cost.
The document provides an overview of programming languages and the program development life cycle (PDLC). It discusses several types of programming languages including machine/assembly languages, algorithmic languages, business-oriented languages, education-oriented languages, and object-oriented languages. It also describes the six main steps of the PDLC: defining the problem, designing the program, coding the program, testing and debugging the program, documenting the program, and deploying and maintaining the program.
The document discusses programming languages and their importance. It covers the following key points:
- A programming language allows computation to be described in both machine-readable and human-readable form. Most languages today are high-level languages.
- Studying programming languages improves one's ability to choose the right language for a task, learn new languages, and better understand how language features are implemented.
- Major programming domains include scientific, business, artificial intelligence, systems, and web applications. Each domain utilizes languages suited to its particular needs and purposes.
The document discusses software and its different types. It defines software as the logical component of a computer that provides instructions. There are two main types: system software and application software. System software includes operating systems, utilities, and programming languages. It controls the fundamental operations of the computer and allows communication between hardware and software. Application software is used to perform specific tasks like word processing. Popular examples provided are Windows, Linux, and programming languages like COBOL and BASIC.
The document discusses computer programming and provides details about:
- The process of programming which involves analysis, algorithm development, coding, and testing
- Common programming languages like C, C++, Java, and Python
- The roles of programmers and the different phases of programming like planning, coding, testing, and documentation
- Key aspects of programming like reliability, robustness, usability, portability, and maintainability
The document discusses computer programming and provides details about:
- The process of programming which involves analysis, algorithm development, coding, and testing
- Common programming languages like C, C++, Java, and Python
- The roles of programmers and the different phases of programming like planning, coding, testing, and documentation
- Key aspects of programming like reliability, robustness, usability, portability, and maintainability
Perl is a scripting language originally developed for text manipulation and report generation. It is now used for a variety of purposes including web development, GUI development, and system administration. Perl scripts are interpreted, providing ease of use and rapid development at the cost of efficiency. Perl supports features like regular expressions, strings, arrays, references, and modules that make it well-suited for tasks like extracting information from files and converting text from one format to another.
This document provides an overview of key concepts related to programming languages. It discusses the definition of a programming language and the history and evolution of popular languages from 1951 to present. It covers programming language paradigms like procedural, object-oriented, functional, and logic-based languages. It also discusses factors that influence language design like efficiency, regularity, and issues in language translation. Finally, it summarizes the structure and operation of computers and how different programming models map to underlying computer architectures.
The document discusses compilers and their role in translating high-level programming languages into machine-readable code. It notes that compilers perform several key functions: lexical analysis, syntax analysis, generation of an intermediate representation, optimization of the intermediate code, and finally generation of assembly or machine code. The compiler allows programmers to write code in a high-level language that is easier for humans while still producing efficient low-level code that computers can execute.
This presentation was provided by Jack McElaney of Microassist during the initial session of the NISO training series "Accessibility Essentials." Session One: The Introductory Seminar was held April 3, 2025.
General Quiz at Maharaja Agrasen College | Amlan Sarkar | Prelims with Answer...Amlan Sarkar
油
Prelims (with answers) + Finals of a general quiz originally conducted on 13th November, 2024.
Part of The Maharaja Quiz - the Annual Quiz Fest of Maharaja Agrasen College, University of Delhi.
Feedback welcome at amlansarkr@gmail.com
Different Facets of Knowledge on different View.pptxNrapendraVirSingh
油
Knowledge is a fundamental aspect of human understanding, evolving through different dimensions and perspectives. The nature of knowledge varies depending on its scope, application, and contextual relevance. In this lecture, we explore four key distinctions in knowledge: Particular vs. Universal, Concrete vs. Abstract, Practical vs. Theoretical, and Textual vs. Contextual. Each of these dichotomies helps us comprehend how knowledge is categorized, interpreted, and applied across different fields of study.
How to Setup Company Data in Odoo 17 Accounting AppCeline George
油
The Accounting module in Odoo 17 is a comprehensive tool designed to manage all financial aspects of a business. It provides a range of features that help with everything from day-to-day bookkeeping to advanced financial analysis.
General Quiz at ChakraView 2025 | Amlan Sarkar | Ashoka Univeristy | Prelims ...Amlan Sarkar
油
Prelims (with answers) + Finals of a general quiz originally conducted on 9th February, 2025.
This was the closing quiz of the 2025 edition of ChakraView - the annual quiz fest of Ashoka University.
Feedback welcome at amlansarkr@gmail.com
Measles OutbreakSouthwestern US This briefing reviews the current situation surrounding the measles outbreaks in Texas, New Mexico, Oklahoma, and Kansas.
Unit1 Inroduction to Internal Combustion EnginesNileshKumbhar21
油
Introduction of I. C. Engines, Types of engine, working of engine, Nomenclature of engine, Otto cycle, Diesel cycle Fuel air cycles Characteristics of fuel - air mixtures Actual cycles, Valve timing diagram for high and low speed engine, Port timing diagram
CLEFT LIP AND PALATE: NURSING MANAGEMENT.pptxPRADEEP ABOTHU
油
Cleft lip, also known as cheiloschisis, is a congenital deformity characterized by a split or opening in the upper lip due to the failure of fusion of the maxillary processes. Cleft lip can be unilateral or bilateral and may occur along with cleft palate. Cleft palate, also known as palatoschisis, is a congenital condition characterized by an opening in the roof of the mouth caused by the failure of fusion of the palatine processes. This condition can involve the hard palate, soft palate, or both.
This presentation was provided by Lettie Conrad of LibLynx and San Jos辿 University during the initial session of the NISO training series "Accessibility Essentials." Session One: The Introductory Seminar was held April 3, 2025.
Knownsense is the General Quiz conducted by Pragya the Official Quiz Club of the University of Engineering and Management Kolkata in collaboration with Ecstasia the official cultural fest of the University of Engineering and Management Kolkata
Managing Online Signature and Payment with Odoo 17Celine George
油
Odoo Digital Signature is a feature that allows users to sign documents electronically within the Odoo platform. This functionality streamlines workflows by enabling the creation, distribution, and signing of documents digitally, reducing the need for physical paperwork and speeding up processes.
A measles outbreak originating in West Texas has been linked to confirmed cases in New Mexico, with additional cases reported in Oklahoma and Kansas. 58 individuals have required hospitalization, and 3 deaths, 2 children in Texas and 1 adult in New Mexico. These fatalities mark the first measles-related deaths in the United States since 2015 and the first pediatric measles death since 2003. The YSPH The Virtual Medical Operations Center Briefs (VMOC) were created as a service-learning project by faculty and graduate students at the Yale School of Public Health in response to the 2010 Haiti Earthquake. Each year, the VMOC Briefs are produced by students enrolled in Environmental Health Science Course 581 - Public Health Emergencies: Disaster Planning and Response. These briefs compile diverse information sources including status reports, maps, news articles, and web content into a single, easily digestible document that can be widely shared and used interactively.Key features of this report include:
- Comprehensive Overview: Provides situation updates, maps, relevant news, and web resources.
- Accessibility: Designed for easy reading, wide distribution, and interactive use.
- Collaboration: The unlocked" format enables other responders to share, copy, and adapt it seamlessly.
The students learn by doing, quickly discovering how and where to find critical油information and presenting油it in an easily understood manner.油油
5. Rules and Considerations
Be on time for every class. Late arrivals may be marked absent.
Active participation in discussions is encouraged.
All assignments must be submitted on time. Late submissions may result
in deductions.
Quizzes can be surprise or scheduled, so stay prepared.
For any queries, contact: laraibsaeed828@gmail.com
1-5
6. Chapter 1 Topics
Reasons for Studying Concepts of Programming Languages
Programming Domains
Language Evaluation Criteria
Influences on Language Design
Language Categories
Language Design Trade-Offs
Implementation Methods
Programming Environments
1-6
7. Reasons for Studying Concepts of Programming
Languages
Increased ability to express ideas
Write more efficient and effective programs
Convey your thoughts and intentions clearly
Develop a unique programming style
Improved background for choosing appropriate languages
Understand the strengths and weaknesses of different languages
Make informed decisions about language selection
Adapt to new languages and technologies more easily
Increased ability to learn new languages
Recognize similarities and differences between languages
Transfer knowledge and skills to new languages
Learn new languages more quickly and efficiently
1-7
8. Reasons for Studying Concepts of
Programming Languages
Better understanding of significance of implementation
Data structures and algorithms
Memory management and optimization
Error handling and debugging
Overall advancement of computing
Drive innovation and research in computer science
Improve software development methodologies and tools
Enhance the overall quality and reliability of software systems
1-8
9. Programming Domains
Scientific applications
Help scientists and researchers solve complex problems
Large number of floating point computations
Fortran
Business applications
Produce reports, use decimal numbers and characters
COBOL
1-9
10. Programming Domains
Artificial intelligence
Creating intelligent machines that can think and learn like humans
Symbols, Logic and Reasoning rather than numbers manipulated
LISP
Systems programming
Creating software that manages and controls computer hardware resources
Need efficiency because of continuous use
C
Web Software
Software refers to programs that run on the web, like websites, web applications,
and mobile apps.
Eclectic collection of languages: markup (e.g., XHTML), scripting (e.g., PHP),
general-purpose (e.g., Java)
1-10
11. Language Evaluation Criteria
Readability: the ease with which programs can be read and
understood
Writability: the ease with which a language can be used to create
programs
Reliability: conformance to specifications (i.e., performs to its
specifications)
Cost: the ultimate total cost
1-11
12. Evaluation Criteria: Readability
Overall simplicity
A manageable set of features and constructs
Few feature multiplicity (means of doing the same operation)
Minimal operator overloading
Orthogonality
A relatively small set of primitive constructs can be combined
in a relatively small number of ways
Every possible combination is legal
Control statements
The presence of well-known control structures (e.g., while
statement)
1-12
13. Evaluation Criteria: Readability
Data types and structures
The presence of adequate facilities for defining data structures
Syntax considerations
Identifier forms: flexible composition
Special words and methods of forming compound statements
Form and meaning: self-descriptive constructs, meaningful keywords
1-13
14. Evaluation Criteria: Writability
Simplicity and orthogonality
Few constructs, a small number of primitives, a small set of
rules for combining them
Support for abstraction
The ability to define and use complex structures or operations in
ways that allow details to be ignored
Expressivity
A set of relatively convenient ways of specifying operations
Example: the inclusion of for statement in many modern
languages
1-14
15. Evaluation Criteria: Reliability
Type checking
Testing for type errors
Exception handling
Intercept run-time errors and take corrective measures
Aliasing
Presence of two or more distinct referencing methods for the
same memory location
Readability and writability
A language that does not support natural ways of expressing
an algorithm will necessarily use unnatural approaches, and
hence reduced reliability
1-15
16. Evaluation Criteria: Cost
Training programmers to use language
Writing programs (closeness to particular applications)
Compiling programs
Executing programs
Language implementation system: availability of free compilers
Reliability: poor reliability leads to high costs
Maintaining programs
1-16
17. Evaluation Criteria: Others
Portability
The ease with which programs can be moved from one
implementation to another
Generality
How widely a programming language can be used for different types
of applications.
Well-definedness
How clear and precise the rules and definitions of a programming
language are.
1-17
18. Influences on Language Design
Computer Architecture
Languages are developed around the prevalent computer architecture,
known as the von Neumann architecture
Programming Methodologies
New software development methodologies (e.g., object-oriented
software development) led to new programming paradigms and by
extension, new programming languages
1-18
19. Computer Architecture Influence
Well-known computer architecture: Von Neumann
Imperative languages(How to perform a task), most dominant, because of von
Neumann computers
Data and programs stored in memory
Memory is separate from CPU
Instructions and data are piped from memory to CPU
Basis for imperative languages
Variables model memory cells
Assignment statements model piping
Iteration is efficient
1-19
21. Programming Methodologies Influences
1950s and early 1960s: Simple applications; worry about machine efficiency
Late 1960s: People efficiency became important; readability, better control
structures
structured programming
top-down design and step-wise refinement
Late 1970s: Process-oriented to data-oriented
data abstraction
Middle 1980s: Object-oriented programming
Data abstraction + inheritance + polymorphism
1-21
22. Language Categories
Imperative
Central features are variables, assignment statements, and iteration
Examples: C, Pascal
Functional
Main means of making computations is by applying functions to given
parameters
Examples: LISP, Scheme
Logic
Rule-based (rules are specified in no particular order)
Example: Prolog
1-22
23. Language Categories
Object-oriented
Data abstraction, inheritance, late binding (Resolve meaning of a
symbol or identifier at run time)
Examples: Java, C++
Markup
New; not a programming per se, but used to specify the layout of
information in Web documents
Examples: XHTML, XML
1-23
24. Language Design Trade-Offs
Reliability vs. cost of execution
Conflicting criteria
Example: Java demands all references to array elements be checked for
proper indexing but that leads to increased execution costs
Readability vs. writability
Another conflicting criteria
Example: APL provides many powerful operators (and a large number of
new symbols), allowing complex computations to be written in a compact
program but at the cost of poor readability
Writability (flexibility) vs. reliability
Another conflicting criteria
Example: C++ pointers are powerful and very flexible but not reliably used
1-24
25. Implementation Methods
Compilation
Programs are translated into machine language
Pure Interpretation
Programs are interpreted by another program known as an interpreter
Hybrid Implementation Systems
A compromise between compilers and pure interpreters
1-25
26. Layered View of Computer
The operating system and language implementation are layered over
machine interface of a computer
1-26
27. Compilation
Translate high-level program (source language) into machine code (machine
language)
Slow translation, fast execution
Compilation process has several phases:
lexical analysis: converts characters in the source program into lexical units
Syntax analysis: transforms lexical units into parse trees which represent
the syntactic structure of program
Semantics analysis: generate intermediate code
code generation: machine code is generated
1-27
29. Additional Compilation Terminologies
Load module (executable image): the user and system code
together
Linking and loading: the process of collecting system program
and linking them to user program
1-29
30. Von Neumann Bottleneck
Connection speed between a computers memory and its
processor determines the speed of a computer
Program instructions often can be executed a lot faster than the
above connection speed; the connection speed thus results in a
bottleneck
Known as von Neumann bottleneck; it is the primary limiting factor
in the speed of computers
1-30
31. Pure Interpretation
No translation
Easier implementation of programs (run- time errors can easily and
immediately displayed)
Slower execution (10 to 100 times slower than compiled programs)
Often requires more space
Significant comeback with some Web scripting languages (e.g.,
JavaScript)
Becoming rare on high-level languages
1-31
33. Hybrid Implementation Systems
A compromise between compilers and pure interpreters
A high-level language program is translated to an intermediate
language that allows easy interpretation
Faster than pure interpretation
Examples
Perl programs are partially compiled to detect errors before
interpretation
Initial implementations of Java were hybrid; the intermediate
form, byte code, provides portability to any machine that has a
byte code interpreter and a run-time system (together, these are
called Java Virtual Machine)
1-33
35. Just-in-Time Implementation Systems
Initially translate programs to an intermediate language
Then compile intermediate language into machine code
Machine code version is kept for subsequent calls
JIT systems are widely used for Java programs
.NET languages are implemented with a JIT system
1-35
36. Preprocessors
Preprocessor macros (instructions) are commonly used to specify that code
from another file is to be included
A preprocessor processes a program immediately before the program is
compiled to expand embedded preprocessor macros
A well-known example: C preprocessor
expands #include, #define, and similar macros
1-36
37. Programming Environments
The collection of tools used in software development
UNIX
An older operating system and tool collection
Nowadays often used through a GUI (e.g., CDE, KDE, or GNOME) that run
on top of UNIX
Borland JBuilder
An integrated development environment for Java
Microsoft Visual Studio.NET
A large, complex visual environment
Used to program in C#, Visual BASIC.NET, Jscript, J#, or C++
1-37
38. Summary
The study of programming languages is valuable for a number of reasons:
Increase our capacity to use different constructs
Enable us to choose languages more intelligently
Makes learning new languages easier
Most important criteria for evaluating programming languages include:
Readability, writability, reliability, cost
Major influences on language design have been machine architecture and
software development methodologies
The major methods of implementing programming languages are:
compilation, pure interpretation, and hybrid implementation
1-38
39. 39
TIOBI Index
The TIOBE Programming Community index is an indicator of the popularity
of programming languages.
The index is updated once a month.
The ratings are based on the number of skilled engineers world-wide,
courses and third-party vendors.
Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon,
YouTube and Baidu are used to calculate the ratings.
It is important to note that the TIOBE index is not about
the best programming language or the language in which most lines of
code have been written.
https://www.tiobe.com/tiobe-index/