Updated Introduction to Programming Notes Part 1 of 3
Updated Introduction to Programming Notes Part 1 of 3
Definition of Terms
1. Data
Raw facts or figures that are not yet processed to gain meaning.
o
Example: Numbers like 10, 20, or a string like "John".
o
2. Information
o Processed or organized data that is meaningful and useful.
o Example: "John scored 20 marks in Math" (information derived from data).
Data processing involves transforming raw data into meaningful information through a sequence of operations. Below are the key data
processing operations:
1. Collection
2. Validation
Definition: Ensuring that the collected data is accurate, complete, and in the correct format.
Examples:
o Checking if a field (e.g., email) follows the correct format.
o Verifying that no critical fields are left blank.
Importance: Prevents errors during subsequent processing steps.
3. Sorting
4. Classification
1
5. Calculation
Definition: Performing arithmetic or logical operations on the data to derive meaningful results.
Examples:
o Summing up total sales revenue.
o Calculating the average score of students.
Importance: Generates insights and supports decision-making.
6. Storage
Definition: Saving processed data in a storage medium for future access and use.
Examples:
o Saving customer data in a database.
o Storing processed reports on cloud storage.
Importance: Ensures data is preserved and accessible when needed.
7. Retrieval
Definition: Accessing and extracting stored data for further use or analysis.
Examples:
o Retrieving past sales data for comparison.
o Accessing patient records in a hospital management system.
Importance: Facilitates efficient use of historical and current data.
8. Analysis
9. Summarization
10. Reporting
Definition: Presenting processed data in a readable format, such as charts, graphs, or tables.
Examples:
o Generating financial statements.
o Preparing visual dashboards for business intelligence.
Importance: Communicates insights effectively to users.
2
Page
2
11. Integration
12. Transcription/Conversion
Definition: Converting data from one format to another for compatibility or usability.
Examples:
o Converting handwritten forms into digital formats.
o Transforming a CSV file into a database format.
Importance: Ensures data can be used in desired systems or applications.
Summary of Operations
Operation Purpose
Collection Gathering raw data.
Validation Ensuring data accuracy and completeness.
Sorting Organizing data systematically.
Classification Grouping data into categories.
Calculation Performing operations to derive results.
Storage Saving data for future use.
Retrieval Accessing stored data.
Analysis Interpreting data to gain insights.
Summarization Condensing data for simplicity.
Reporting Presenting data in an understandable format.
Integration Combining data from multiple sources.
Transcription Converting data into usable formats.
NB: The above operation is basically tasks performed by computer to covert/ process data to
information.
3. Computer
o An electronic device that processes data to produce information according to
given instructions.
4. Program
o A set of instructions written in a programming language that tells a computer
how to perform a specific task.
5. Software
o A collection of programs and related data that tell a computer how to operate
and perform tasks.
o Example: Operating systems (e.g., Windows, Linux) or applications (e.g.,
Microsoft Word).
6. Computer System
o An integrated system consisting of hardware (physical components), software
(programs), and users that work together to perform computational tasks.
7. Programming
o The process of designing, writing, testing, and maintaining a computer
3
program.
Page
8. Computer Program
3
A complete, executable set of instructions written to solve a problem or
o
perform a specific task on a computer.
9. Programming Languages
o Formal languages used to write instructions that a computer can understand
and execute.
o Examples: Python, Java, C++, HTML.
10. Source Code
python
print("Hello, World!")
12. Compilation
The process of converting source code into object code or machine code using a
compiler.
The lowest-level programming language consisting of binary instructions (0s and 1s)
that the computer can execute directly.
Example: 10110100 00000011 (binary code).
1. INTRODUCTION TO PROGRAMMING
A language used by human beings to communicate is called a natural language. English is an example of a
natural language. A programming language is used to communicate a set of instructions to a computer. Every
natural language has a set of symbols, which are used to form sentences. Similarly, every programming
language has a set of characters, which are used to construct programs. This set of symbols is known as
character set of that language. There are two aspects to any language: syntax and semantics. The syntax of a
language is the set of rules for constructing correct sentences in the language. Semantics, on the other hand,
associates a meaning according to certain rules, like those used in a natural language. The different is that in
programming languages, the rules are strict and precise. The following sentences in English are perfectly clear
to the reader.
4
The word lead is used in both sentences and has different meanings but there is no confusion because the
meaning can be interpreted from the context. A programming language however cannot allow such usage.
There should be no scope for ambiguity because programs have to be interpreted correctly by the computer.
1. Syntax
Definition:
Syntax refers to the formal rules and structure of a programming language. It defines
how the symbols, keywords, and characters in the language must be arranged to create
valid statements or expressions.
Purpose:
To ensure that code is well-formed and can be parsed or compiled by the
programming environment.
Example (Python):
python
Copy code
print("Hello, World!")
o Correct syntax: The parentheses and quotation marks are used properly.
o Incorrect syntax:
python
Copy code
print "Hello, World!"
Key Features:
o Enforced by the compiler or interpreter.
o Syntax errors prevent the program from running.
2. Semantics
Definition:
Semantics refers to the meaning or behavior of a program. It defines what the
program does when executed and how each statement or expression is interpreted.
Purpose:
To ensure that the code performs the intended functionality.
5
Example:
Page
python
5
Copy code
x = 10 / 2 # Semantics: The value of x will be 5.0
python
Copy code
x = 10 / 0
Key Features:
o Ensures the logic of the program aligns with its intended behavior.
o Semantic errors lead to incorrect results or runtime issues but may not prevent
the program from running.
Both are crucial for writing correct, reliable, and functional programs.
application, ensuring it is functional, efficient, and meets the user’s requirements. This
Page
process involves several steps, which can vary slightly depending on the development
methodology used (e.g., Waterfall, Agile). Below are the key stages:
6
1. Problem Analysis
3. Coding (Implementation)
4. Testing
7
5. Debugging
Programming errors can be broadly categorized into syntax errors, runtime errors, and logical errors. Understanding
these types of errors helps developers debug and write better code.
1. Syntax Errors
Definition:
Errors that occur when the code violates the grammatical rules of the programming language.
Characteristics:
o Detected at compile time or during interpretation.
o Prevent the code from running until fixed.
o Commonly caused by typos, missing or extra symbols (e.g., brackets, semicolons).
Examples:
o Python:
python
print("Hello, World!" # Missing closing parenthesis
o C++:
Resolution:
Fix the syntax to comply with the language rules.
2. Runtime Errors
Definition:
Errors that occur during the execution of a program after it has successfully compiled or interpreted.
Characteristics:
o Cause the program to crash or produce unexpected behavior during execution.
o Not detected during compilation or syntax checking.
o Often caused by invalid operations, such as:
Dividing by zero.
Accessing out-of-bounds array indices.
Using uninitialized variables.
Examples:
o Python:
8
python
Page
o C++:
8
int arr[3] = {1, 2, 3};
cout << arr[5]; // Accessing out-of-bounds index
Resolution:
Use error-handling techniques like try-except blocks in Python or exceptions in C++ to manage runtime
errors.
3. Logical Errors
Definition:
Errors that occur when the program runs without crashing but produces incorrect or unintended results due to
flawed logic.
Characteristics:
o Hardest to detect because they do not generate error messages.
o Caused by incorrect algorithms, flawed conditions, or miscalculated expressions.
o Example issues include:
Wrong use of operators.
Incorrect loop conditions.
Misunderstanding program requirements.
Examples:
o Python:
python
Copy code
x = 5
y = 10
z = x + y # Programmer intended to multiply (x * y), not add
print(z) # Produces 15 instead of the intended 50
o C++:
cpp
Copy code
int total = 0;
for (int i = 1; i <= 10; i--)
total += i; // Wrong loop condition leads to an infinite loop
Resolution:
Debug the program by tracing its execution and reviewing the program's logic.
Comparison Table
When
Type Causes Examples Resolution
Detected
Before Violating language Missing parentheses, Fix syntax according to the
Syntax Errors
execution rules semicolons, etc. language rules.
Runtime During Invalid operations at Division by zero, invalid Add error-handling or input
Errors execution runtime memory access validation.
Logical Incorrect logic or Incorrect calculations, wrong
After execution Debug and correct program logic.
Errors algorithms loop logic
6. Deployment
9
Page
9
oInstall or deploy the program in the intended environment.
oProvide necessary documentation and training for users.
oConfigure settings based on the deployment environment.
Outcome: The program is live and accessible to end users.
Summary of Steps
Step Description
Problem Analysis Define what the program needs to achieve.
Planning/Design Create a blueprint, including algorithms and data structures.
Coding Write the actual program code.
Testing Verify that the program works correctly and efficiently.
Debugging Identify and fix errors.
Deployment Release the program for users.
Maintenance Regularly update and fix the program as needed.
Programming
Programming languages are tools used to write instructions for computers to perform tasks.
They are categorized based on their level of abstraction, purpose, and programming
paradigm.
10
10
Close to machine code; minimal abstraction.
Provide direct control over hardware.
Examples:
o Machine Language: Binary code (0s and 1s).
o Assembly Language: Symbolic code with mnemonics (e.g., MOV, ADD).
Abstract from hardware and easier for humans to read and write.
Examples: Python, Java, C++, JavaScript.
2. Categories by Purpose
3. Categories by Paradigm
11
3.3. Functional Programming Languages
Often interpreted; used for automating tasks and writing quick scripts.
Examples: Python, JavaScript, Perl, Ruby.
12
Examples: Python (OOP, procedural), Scala (functional, OOP).
Designed for developing low-level systems like operating systems and device drivers.
Examples: Rust, C, C++.
Summary Table
13
Programming languages have evolved through different generations, each designed to
address specific needs while improving upon the previous generation. Below is a detailed
breakdown of their characteristics, examples, advantages and disadvantages, and usage.
Characteristics:
o Written in binary code (0s and 1s).
o Directly executed by the computer's hardware.
o Machine-dependent (specific to a computer's architecture).
o Very basic and error-prone.
Examples:
o Binary instructions such as 10110100 00000011.
Advantages:
o High execution speed since it is directly executed by the machine.
o No need for a translator (compiler/interpreter).
Disadvantages:
o Extremely difficult to write, debug, and maintain.
o Not portable between different hardware architectures.
Usage:
o Early computing systems like ENIAC and UNIVAC.
o Used for hardware-level programming in very low-level tasks.
Characteristics:
o Uses symbolic mnemonics instead of binary (e.g., MOV, ADD).
o Machine-dependent and needs an assembler to convert to machine code.
o Slightly easier to read and write compared to 1GL.
Examples:
o Assembly code for x86 architecture:
asm
Copy code
MOV AX, 5 ; Move value 5 into register AX
ADD AX, BX ; Add contents of BX to AX
Advantages:
o Faster and more efficient than higher-level languages.
o Easier to understand than machine code.
Disadvantages:
o Still hardware-specific and not portable.
o Steep learning curve for complex tasks.
Usage:
14
14
3. Third Generation (3GL): High-Level Languages
Characteristics:
o Closer to human language, making it easier to write and understand.
o Platform-independent (with compilers/interpreters for different systems).
o Supports structured programming and abstraction.
Examples:
o Procedural languages: C, COBOL, FORTRAN.
o Object-oriented languages: C++, Java, Python.
Advantages:
o Easier to learn and write compared to low-level languages.
o Portable across platforms with minimal changes.
o Supports modular and reusable code.
Disadvantages:
o Slower than low-level languages because of translation overhead.
o Requires compilers or interpreters.
Usage:
o Application development.
o Business software, database systems, and system-level programs.
Characteristics:
o Focuses on what the program should do rather than how to do it.
o Abstracts most of the procedural details.
o Often includes tools for rapid application development (RAD).
Examples:
o Database query languages: SQL.
o Report generators: RPG (Report Program Generator).
o Mathematical/engineering tools: MATLAB.
Advantages:
o Reduces development time significantly.
o Easier for non-programmers to use.
o High productivity and concise code.
Disadvantages:
o Less control over hardware and system performance.
o Limited in flexibility and general-purpose use.
Usage:
o Database management.
o Business applications and reporting tools.
o GUI-based applications and simulation.
Characteristics:
Page
Comparison Table
Conclusion
16
abstract tools tailored for specific tasks. Each generation provides increased abstraction,
usability, and application scope while reducing manual effort and error potential. Choosing
16
the appropriate language generation depends on the task requirements, hardware constraints,
and desired outcomes.
Low-Level Languages
Low-level languages are closer to the hardware and require a detailed understanding of the
computer’s architecture.
Characteristics:
Types:
1. Machine Language (1GL): Binary code (0s and 1s) that the computer understands
directly.
2. Assembly Language (2GL): Uses mnemonics (e.g., ADD, MOV) as a symbolic
representation of machine instructions.
Examples:
asm
Copy code
MOV AX, 5 ; Move the value 5 into the AX register
ADD AX, BX ; Add BX to AX
Advantages:
Disadvantages:
Page
17
Not portable.
Usage:
High-Level Languages
High-level languages are abstracted from hardware, making them easier for humans to write
and understand.
Characteristics:
Types:
Examples:
Python:
python
Copy code
print("Hello, World!")
C:
c
Copy code
printf("Hello, World!");
Advantages:
Disadvantages:
18
Less control over hardware.
18
Usage:
Application development.
Web and mobile development.
Scientific and business software.
Comparison Table
Conclusion
Low-Level Languages provide high performance and hardware control but are
difficult to program and maintain.
High-Level Languages prioritize ease of use, productivity, and portability, making
them ideal for general-purpose application development.
The choice between these languages depends on the task at hand: low-level for performance-
critical applications and high-level for ease of development and versatility.
Programming Paradigms
1. Imperative Programming
19
Definition: Focuses on describing how a program operates, using a sequence of
instructions to change a program's state.
Characteristics:
o Code is structured as a series of commands.
o Relies heavily on loops, conditionals, and variables.
o State and mutable data are central concepts.
Examples: C, Python (procedural), Assembly
Advantages:
o Simple and intuitive for small programs.
o Good control over hardware-level details.
Disadvantages:
o Difficult to manage complex systems due to state management.
Usage:
o System programming, embedded systems, and scripting.
2. Procedural Programming
Definition: Focuses on organizing code around objects, which combine data and
behavior.
Characteristics:
o Encapsulation: Data and methods are bundled in objects.
o Inheritance: Classes can inherit properties and methods from other classes.
o Polymorphism: Objects can be treated as instances of their parent class.
o Abstraction: Hides implementation details, exposing only the necessary parts.
Examples: Java, C++, Python (OOP style), Ruby
20
Advantages:
o Enhances code reusability through inheritance and modularity.
Page
20
o Increased complexity for simple tasks.
o Performance overhead due to abstraction.
Usage:
o GUI applications, game development, and enterprise software.
4. Functional Programming
5. Declarative Programming
6. Event-Driven Programming
21
Definition: A paradigm where the program flow is determined by events like user
actions, sensor outputs, or messages from other programs.
Characteristics:
o Uses event handlers and listeners.
o Common in GUI and real-time systems.
Examples: JavaScript, C# (in GUI development)
Advantages:
o Ideal for interactive applications.
o Simplifies handling asynchronous operations.
Disadvantages:
o Difficult to debug due to event dependencies.
Usage:
o GUI applications, real-time systems, and web applications.
7. Logic Programming
Definition: Based on formal logic, where programs consist of a set of rules and facts,
and the system derives answers using inference.
Characteristics:
o Uses declarative statements.
o Focuses on what needs to be achieved, not how.
Examples: Prolog, Datalog
Advantages:
o Suitable for reasoning and problem-solving tasks.
o Good for knowledge representation and AI.
Disadvantages:
o Limited performance for general-purpose applications.
o Steep learning curve.
Usage:
o Expert systems, AI, and natural language processing.
22
Paradigm Focus Examples Advantages Disadvantages Usage
results, less
not how Prolog over execution
complexity
Handling JavaScript, Great for GUIs, GUI
Debugging event
Event- events C# simplifies applications,
dependencies can
Driven asynchronous web
be difficult
tasks development
Slow for general-
Rules and Prolog, Ideal for AI, expert
Logic purpose
inference Datalog reasoning tasks systems
programming
Conclusion
Choosing the right programming language is a critical step in software development. The
decision depends on multiple factors that align with the project's requirements, constraints,
and long-term goals. Below are the key considerations:
Type of Application:
o Web applications: Languages like JavaScript, Python, or PHP are common.
o Mobile development: Swift for iOS, Kotlin or Java for Android.
o System-level programming: C, C++, or Rust.
o Data analysis and AI: Python or R.
Complexity:
o For simple tasks or prototypes, a high-level language like Python is ideal.
o For performance-intensive tasks, low-level languages like C or C++ are
preferred.
2. Performance Requirements
Speed:
23
23
3. Development Time
4. Platform Compatibility
Cross-Platform:
o Languages like Java, Python, and C# are platform-independent.
Platform-Specific:
o Languages like Swift (iOS) or Kotlin (Android) are tailored for specific
platforms.
7. Scalability
Horizontal Scalability: Consider languages that can handle distributed systems (e.g.,
Go, Java).
24
Vertical Scalability: Languages like C++ or Java are better for scaling single
systems efficiently.
Page
24
8. Maintenance and Longevity
Readability: High-level languages like Python or Java are easier to maintain due to
their readable syntax.
Longevity: Consider how long the language will remain relevant and supported.
Established languages like Java, C++, and Python have proven long-term stability.
9. Cost of Development
Developer Availability: Popular languages like JavaScript, Java, and Python have
a large talent pool, reducing hiring costs.
Development Tools: Open-source languages (e.g., Python, PHP) reduce software
licensing costs compared to proprietary options.
25
Training costs may influence the choice if new skills are required.
Some languages or tools have licensing restrictions that may not align with the
project’s requirements.
o Open-source options like Python or JavaScript are often preferred over
proprietary languages.
The characteristics of a programming language define its design and how easily it can be
used for specific tasks. These features impact the language’s usability, performance, and
suitability for different applications. Here are some of the key characteristics of programming
languages:
1. Syntax
Definition: The syntax of a programming language refers to the rules that define the
structure of valid statements, expressions, and commands.
Characteristics:
o Rules for Writing Code: Specifies how keywords, operators, and symbols are
arranged to form statements.
o Clarity: A clean and intuitive syntax makes it easier for developers to
understand and write code.
o Examples: The syntax of Python is known for being simple and readable,
while C++ is more complex.
2. Semantics
Definition: Semantics define the meaning of the syntactical elements, i.e., what
happens when a particular piece of code is executed.
Characteristics:
o Understanding Operations: Determines what the program does when a
particular statement is executed.
o Behavior: Ensures the correctness of actions (e.g., a + sign may mean addition
in arithmetic, or string concatenation in some languages).
o Consistency: Ensures that the program behaves predictably according to the
language’s rules.
26
Page
3. Abstraction
26
Definition: Abstraction refers to hiding the complex details of a system and exposing
only the essential parts to the programmer.
Characteristics:
o Level of Abstraction: High-level languages (e.g., Python, Java) abstract the
hardware details, while low-level languages (e.g., Assembly) are close to
hardware.
o Simplifies Programming: Reduces the complexity of coding and makes
software development faster.
o Examples: In Java, developers can work with objects without worrying about
memory management.
4. Efficiency
Definition: The ability of the programming language to perform tasks in a way that
uses resources like memory and processing power optimally.
Characteristics:
o Execution Speed: Languages like C and C++ offer greater control over
memory and execution, making them more efficient for performance-sensitive
applications.
o Memory Management: Languages like C++ allow manual memory
management, whereas languages like Python handle memory automatically
with garbage collection.
o Optimization: Some languages are designed for speed and low-level control,
while others prioritize ease of use at the expense of performance.
5. Portability
Definition: Portability refers to the ability to run the same program on different
hardware or operating systems without modification.
Characteristics:
o Cross-Platform Compatibility: High-level languages like Java and Python
are portable across different platforms (e.g., Windows, Linux, Mac).
o Interpreted vs. Compiled: Interpreted languages (e.g., Python) are generally
more portable than compiled languages (e.g., C), but compiled languages can
also achieve portability with cross-compilers.
o Examples: Java’s "write once, run anywhere" philosophy is built around the
platform independence of the JVM (Java Virtual Machine).
6. Readability
Definition: The ease with which a human programmer can read and understand the
27
code.
Characteristics:
Page
27
o Well-Structured Code: Good naming conventions, indentation, and modular
design (e.g., functions and classes) contribute to readability.
o Examples: Python emphasizes readability with its simple and consistent
syntax, while languages like C++ may require more effort to understand due to
their complexity.
7. Reliability
8. Maintainability
Definition: The ease with which a program can be modified, updated, or corrected
over time.
Characteristics:
o Modularity: Supports code organization into functions, classes, or modules,
making it easier to update or fix parts of the code without affecting the whole
program.
o Reusability: Allows code reuse across multiple projects or modules (e.g.,
libraries and frameworks).
o Documentation: Clear documentation and support for comments in the code
increase maintainability.
o Examples: Object-Oriented Programming (OOP) languages like Java and
Python enhance maintainability due to their structure and reusability.
9. Expressiveness
o Examples: Python is known for its expressiveness, while languages like C can
be more verbose.
28
10. Support for Concurrency
11. Security
Definition: The rules governing how types (such as integers, strings, etc.) are handled
in a programming language.
Characteristics:
o Static Typing: Types are checked at compile time, and mismatched types
result in errors (e.g., Java, C++).
o Dynamic Typing: Types are checked at runtime, allowing more flexibility but
possibly leading to runtime errors (e.g., Python, JavaScript).
o Strong Typing: Ensures strict type adherence, reducing type-related errors
(e.g., Java, Haskell).
o Weak Typing: Allows more flexibility but can lead to unpredictable behavior
29
(e.g., JavaScript).
Page
29
13. Support for Libraries and Frameworks
Definition: The availability of external tools, libraries, and frameworks that extend
the functionality of the language.
Characteristics:
o Rich Ecosystem: A language with a vast collection of libraries can save time
by providing pre-built functionality (e.g., Python's data science libraries,
JavaScript's front-end frameworks like React).
o Third-Party Support: Availability of tools to support tasks like database
access, web frameworks, machine learning, etc.
o Examples: JavaScript is widely supported with libraries like React, Angular,
and Node.js; Python offers libraries like NumPy, Pandas, and TensorFlow.
Definition: The language’s mechanisms for managing errors and exceptions that
occur during execution.
Characteristics:
o Exception Handling: Support for try-catch blocks, allowing errors to be
caught and handled gracefully (e.g., Java, Python).
o Error Reporting: Good error reporting mechanisms provide detailed error
messages, helping developers diagnose and fix problems.
o Examples: Java has structured exception handling with try, catch, and
finally blocks, while Python uses try-except for error handling.
Source Program
Object Code
30
30
that transforms the high-level source code into a form the computer's processor can
execute.
Characteristics:
o Represented in binary format (0s and 1s) or machine code.
o It is a low-level code that is specific to the architecture of the computer or
processor.
o Object code may not be directly executable if generated by a compiler or
assembler and may need linking.
Example: The output of a C compiler after compiling a C source program could be an
object code file, typically with a .obj or .o extension.
Translators
Definition: Translators are programs that convert source code (written in a high-
level programming language) into object code or machine code. Translators ensure
that high-level human-readable code can be executed by a computer.
Types of Translators:
1. Compilers: Convert the entire source program into object code at once.
2. Interpreters: Translate source code into machine code line by line, executing
it as it goes.
3. Assemblers: Convert assembly language code into object code or machine
language.
Examples:
Assembler
Interpreter
Page
31
Definition: An interpreter is a type of translator that reads and executes a high-level
programming language source code line by line rather than translating it entirely into
object code in one go.
Characteristics:
o Executes the source code directly, without producing intermediate object code
or machine code files.
o Slower execution than compiled languages because it translates each line on
the fly.
o Errors are detected at runtime, making it easier to debug since the interpreter
stops at the line causing the error.
Advantages:
o Easier debugging and testing due to immediate execution.
o Ideal for scripting and interactive environments.
Disadvantages:
o Slower execution compared to compiled languages because the translation
happens at runtime.
Example: Python is interpreted, where each line of Python code is processed one by
one when executed.
Compiler
Definition: A compiler is a translator that converts the entire source program written
in a high-level language into an object code or machine code in a single process.
Characteristics:
o Translates the entire source code at once, producing an executable or object
code file.
o Errors are reported after the whole program is analyzed, making it harder to
debug early in the process.
o Once compiled, the program can be executed multiple times without
recompiling.
o Generally faster execution since the translation happens beforehand.
Advantages:
o Produces optimized code for better performance.
o Faster execution compared to interpreted languages.
Disadvantages:
o Debugging can be more difficult because all errors must be fixed before the
program can be run.
o Compilation can take time.
Examples: C, C++, Java (Java is compiled to bytecode, which is then interpreted by
the JVM).
32
Aspect Assembler Interpreter Compiler
Converts assembly
Translates and executes Translates entire code at
Translation language to machine
line-by-line once to object code
code
Slower (line-by-line Faster execution after
Speed Fast (direct conversion)
execution) compilation
Error Detects errors at Detects errors during Detects errors during
Handling translation time execution (runtime errors) compilation
NASM (for x86
Example Python interpreter GCC (C Compiler)
assembly)
Summary
33
Page
33