0% found this document useful (0 votes)
8 views6 pages

Document 26

The document discusses the evolution of programming languages, starting from ENIAC and assembly language to the introduction of high-level languages like Fortran, which simplified programming. It categorizes software into system software and application software, explaining their functions and the relationship between software and hardware. Additionally, it covers operating system functions, types of programming languages, and the role of translators in converting code.

Uploaded by

Nourhene Aouidi
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)
8 views6 pages

Document 26

The document discusses the evolution of programming languages, starting from ENIAC and assembly language to the introduction of high-level languages like Fortran, which simplified programming. It categorizes software into system software and application software, explaining their functions and the relationship between software and hardware. Additionally, it covers operating system functions, types of programming languages, and the role of translators in converting code.

Uploaded by

Nourhene Aouidi
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/ 6

1.

Pair Activity:
a. Work with a partner to list all the software you’ve ever used.
b. Try to categorize them based on:
i. What they do (e.g., writing, gaming, browsing).
ii. How they’re used (e.g., for work, school, entertainment).
c. Examples of categories: Operating systems, word processors, web
browsers, etc.

Development of Programming Languages

• The first programmable computer was ENIAC (built during WWII).


o Its job? Perform calculations faster than humans.
o It could only do what it was programmed to do.
• From ENIAC, assembly language emerged:
o It allowed people to write instructions for computers but was still
challenging because:
▪ It required exact memory locations (e.g., “store this in location 3”).
▪ Programs had to be rewritten for every different type of computer.
• Fortran (1957) changed everything:
o It introduced a high-level language:
▪ Easier to write than assembly.
▪ Could work on different computers without needing to be
rewritten.

Discussion Questions:

1. What problems do you think arise when using only assembly language?
2. How has the invention of programming languages like Fortran impacted how we
use computers today?

Types of Software

Computers rely on software to function. Software is like the brain of a computer, giving
it instructions. It’s categorized into:

1. System Software:
a. Manages hardware and other software.
b. Examples:
i. Operating Systems (OS): Windows, Linux, macOS, Android.
ii. Utility Programs: Help maintain the computer, such as:
1. System clean-up: Removes unused programs.
2. Defragmentation: Organizes files for better performance.
2. Application Software:
a. Helps the user perform specific tasks.
b. Examples (Generic names):
i. Word processor: For creating text-based documents.
ii. Spreadsheet: For calculations and data analysis.
iii. Database: For storing and searching data.
iv. Web browser: For viewing websites.

The Relationship Between Software and Hardware

• Software and hardware work together in layers:


o Application Software runs on top of the...
o Operating System, which relies on...
o Firmware (basic instructions stored in the ROM), which starts with the...
o Bootstrap Program (the first commands executed when the computer is
turned on).

Activity:

1. Log onto any device (PC, tablet, or phone).


2. List the types of application software installed (use generic names, not brand
names).

Key Terms

• Software: Instructions that tell the computer what to do.


• System Software: Manages hardware and allows other software to run.
• Operating System (OS): A program that lets users interact with the computer
and run software.
• Utility Programs: Tools for maintaining the computer.
• Application Software: Programs that let users perform tasks (e.g., writing,
browsing).
• Firmware: Instructions in the ROM, loaded when the computer starts.
• Bootstrap: Initial commands run when the computer powers on.
Would you like me to adjust the explanations or add more interactive activities?

This text explains key concepts related to operating systems (OS) and their functions,
providing an overview of their components and how they manage various tasks. Below
is a concise summary of the main points covered:

OS Functions and Interfaces

1. Providing an Interface:
a. Graphical User Interface (GUI): Uses windows, icons, menus, and
pointers (WIMP). It is intuitive and user-friendly, e.g., Windows.
b. Command Line Interface (CLI): Requires exact text commands, ideal for
experts.
c. Natural Language Interface: Accepts text or spoken commands, e.g.,
Alexa or Siri.
2. Managing Files:
a. Allows creating, moving, copying, deleting, and renaming files.
b. Supports organizing files into directories.
3. Managing Peripherals and Drivers:
a. Peripherals are external hardware devices like printers or keyboards.
b. Drivers enable communication between the OS and peripherals, ensuring
compatibility.
4. Managing Memory:
a. Allocates and monitors memory for processes.
b. Prevents multiple processes from accessing the same memory location.
5. Managing Multitasking:
a. Simulates simultaneous execution of multiple tasks by rapidly switching
between them.
b. Uses interrupts to prioritize tasks.
6. Providing a Platform for Applications:
a. Fetches and executes application instructions, allowing software to run
seamlessly.
7. Managing User Accounts:
a. Supports multiple users with unique preferences, usernames, and
passwords.
b. Restricts unauthorized access using security measures like biometrics or
passwords.
Interrupts

1. Definition:
a. Signals sent to the processor to gain its attention.
b. Can be hardware-based (e.g., keyboard input) or software-based (e.g.,
application errors).
2. Interrupt Handling:
a. Interrupts are prioritized by the interrupt handler (IH).
b. High-priority interrupts (e.g., hardware failure) are addressed before low-
priority ones (e.g., data input).
c. The interrupt service routine (ISR) processes each interrupt.
3. Process Flow:
a. The processor checks the interrupt queue after completing each fetch-
decode-execute (FDE) cycle.
b. If an interrupt has higher priority, the current process is paused, and the
interrupt is handled.
c. The processor resumes or fetches the next high-priority interrupt once
completed.

Questions

1. Examples of Application Software:


a. Word processors, web browsers, or games.
2. Purpose of System Software:
a. Manages hardware and software resources, providing a platform for
application software.
3. Relationship Between Application Software and the Bootstrap:
a. The bootstrap is responsible for initializing the OS, which then allows
application software to run.
4. File Management Tasks in an OS:
a. Creating, moving, renaming, deleting, and organizing files into directories.
5. Examples of Interrupts:
a. Software Interrupts: System errors, application requests.
b. Hardware Interrupts: Keyboard input, printer out of paper.
6. Process When an Interrupt is Sent:
a. The processor pauses the current task, evaluates interrupt priority,
processes the interrupt via the ISR, and resumes the previous task or
handles the next interrupt.

Would you like to dive deeper into any of these topics?


Here’s a concise summary of the content:

4.4 Types of Programming Language

High-Level Languages

• Description: Uses English-like commands (e.g., if, print) for easier


understanding.
• Examples: Python, Java, VB.NET.
o Python: print("This is a high-level language statement.")
o Java: num1 = 10; num2 = 5; num3 = num1 + num2;
• Advantages:
o Portable (can run on different systems).
o Easier to write, debug, and amend.

Low-Level Languages

• Types:
o Machine Code: Binary instructions (1s and 0s), executed directly by the
computer.
▪ Non-portable and specific to the hardware.
o Assembly Language: Uses mnemonics (e.g., STO, LDD) as shorthand for
binary instructions.
▪ Requires more effort but allows manipulation of hardware and is
slightly more human-readable.
▪ Example: LDD count
ADD 1
STO count
Equivalent to count = count + 1 in a high-level language.
• Advantages:
o Direct hardware manipulation.
o Efficient in speed and memory usage.

Comparison of High- and Low-Level Languages

Feature High-Level Language Low-Level Language


User-friendliness Easier to read/write Harder to read/write
Debugging Easier Harder
Portability Portable Non-portable
Machine code
Conversion Requires translation
doesn't
Hardware
Indirect Direct
interaction
Efficiency Less efficient More efficient

4.5 Translators

Definition:

• Software that converts code from one language to another, typically from high-
level or assembly language into machine code.

Key Words:

• High-Level Language: Human-readable commands, e.g., Python.


• Low-Level Language: Machine code (binary) or assembly language
(mnemonics).
• Mnemonic: Shorthand code in assembly language.
• Translator: Converts high-/assembly-level code to machine code.

Questions:

1. Describe what a high-level language is.


2. Identify the type of language for the given examples (high-level, assembly,
machine code).
3. Suggest a programming language for minimal memory usage and justify the
choice.

Let me know if you'd like additional explanations, or help answering the questions!

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy