Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
34 views

Lecture Note 4 Part 1

This document provides an overview of computer software, including system software and application software. It discusses the main types of system software, including operating systems, language translators like compilers and interpreters, and utility software. It describes common operating system functions such as managing hardware resources, providing a user interface, managing memory and processing tasks. The document also covers different programming languages like low-level languages and high-level languages, and how language translators like compilers and interpreters are used to convert between languages.

Uploaded by

Dorego Taofeeq
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

Lecture Note 4 Part 1

This document provides an overview of computer software, including system software and application software. It discusses the main types of system software, including operating systems, language translators like compilers and interpreters, and utility software. It describes common operating system functions such as managing hardware resources, providing a user interface, managing memory and processing tasks. The document also covers different programming languages like low-level languages and high-level languages, and how language translators like compilers and interpreters are used to convert between languages.

Uploaded by

Dorego Taofeeq
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

CSC111

Introduction to Computer Science


Introduction to Software and Programming
Languages
 System Software
 Operating Systems
 Types of Operating Systems
 Language Translators
 Utility Software
 Application Software
 Desktop Publishing Packages
 Word Processing Packages
 Games Packages
 Spread sheet Packages
 Communication Packages
 Graphic Packages
 User Programs
 Database Packages
 Integrated Packages
 Computer Languages
 Machine Languages
 Low-Level Languages
 High-Level Languages
Computer Software
 Computer software is the set of programs that makes the hardware

perform a set of tasks in particular order.

 Hardware and software are complimentary to each other. Both have to

work together to produce meaningful results.

 Computer software is classified into two broad categories;


 System Software and
 Application Software.
A Layered View of the Computer
Hardware/Software interface

Application Programs
Word-Processors, Spreadsheets,
Database Software, IDEs,
etc…
System Software
Compilers, Interpreters,Preprocessors, etc.
Operating System, Device Drivers
Machine with all its hardware
Systems Software
 Set of programs that coordinates activities and functions of the hardware
and various other programs.

 The software that controls everything that happens in a computer.

 Background software, manages the computer’s internal resources

 Programs written for computer systems

• Compilers, operating systems, …

 System software consists of a group of programs that control the operations of


a computer equipment including functions
 managing memory,
 managing peripherals,
 loading, storing,
 an interface between the application programs and the computer.
 MS DOS (Microsoft’s Disk Operating System), UNIX are examples of system
software

 System Software manages the fundamental operations of your


computer
 Operating system
• System resource
• Multitasking
 Utilities
 Programming Languages
Operating Systems or OS
 The operating system (OS) controls all other software and allows the
hardware devices to work properly.

 Without an operating system, a user cannot run an application program on


their computer, unless the application program is self booting.

 Some popular operating systems are:


 Microsoft Windows - for PCs
 Mac OS - for Apple computers
 Linux - for very large network computers
 Handheld operating systems - for PDAs, MP3 players, and cell phones
 Is software, consisting of programs and data, that runs on computers,
manages computer hardware resources, and provides common services for
execution of various application software.

 The OS is the most important type of system software in a computer


system.
 Provides several essential services:
 Loading & running application programs
 Allocating memory & processor time
 Providing input & output facilities
 Managing files of information
Role of the Operating System

Operating
Application and
software Systems
Software

Users
Hardware
Operating System Functions
An operating system is primarily a resource manager

Design is tied to the hardware and software resources the operating


system must manage
 Perform common computer hardware functions
Ex: Get input from keyboard
 Provide a user interface
Command-based user interface (ms-dos)
Graphical-user interface (windows)
 Provide a degree of hardware independence
Application program interface
 Manage system memory
Convert logical view to physical view
Operating System Functions
 Manage processing tasks

 Allocate computer resources

 Multitasking (run more than once application at a time)

 Time-sharing (allow multiple access to a system)

 Provide networking capability

 Enable connection to the Internet

 Control access to system resources

 Authentication

 Manage files

 Access to files
 Perform common computer hardware functions:
Processors, secondary storage (such as hard disks), other I/O devices, processes,
threads, databases
 Provide a user interface
 Provide a degree of hardware independence
 Manage system memory
 Manage processing tasks
 Provide networking capability
 Control access to system resources
 Manage files
Types of Operating Systems
Today’s computers are:

1. Multi-user - A multi-user operating system allows for multiple users to use


the same computer at the same time and different times.

2. Multiprocessing - An operating system capable of supporting and utilizing


more than one computer processor.

3. Multitasking - An operating system that is capable of allowing multiple


software processes to run at the same time.

4. Multithreading - Operating systems that allow different parts of a software


program to run concurrently.
Programs
Programs are written in programming languages
 PL = programming language
 Pieces of the same program can be written in different PLs
 Languages closer to the machine can be more efficient
 As long as they agree on how to communicate

A PL is
 A special purpose and limited language
 A set of rules and symbols used to construct a computer program
 A language used to interact with the computer
Language Translators
A programming language (PL) is a vocabulary and set of grammatical rules
for instructing a computer or computing device to perform specific tasks.

PL refers to high-level languages, such as BASIC, C, C++, COBOL, Java,


FORTRAN, Ada, and Pascal.

Each PL has a unique set of keywords (words that it understands) and a


special syntax for organizing program instructions.

A programmers uses PL to develop software programs, scripts, or other sets


of instructions for computers to execute.

PL share similarities, each has its own syntax.


Language Translators
A programmer learns the languages rules, syntax, and structure, they write

the source code in a text editor or IDE.

The programmer often compiles the code into machine language that can be
understood by the computer.
Scripting languages, which do not require a compiler, use an interpreter to
execute the script.
Assemblers
An assembler is a program that converts assembly language into machine code.

It takes the basic commands and operations from assembly code and converts them

into binary code that can be recognized by a specific type of processor.

Assemblers are similar to compilers in that they produce executable code.

However, assemblers are more simplistic since they only convert low-level code

(assembly language) to machine code.


Compilation into Assembly Language

Source Assembly
Program Compiler Language

Machine
Assembly
Assembler Languag
Language
e
Compilers
A compiler is a software program that transforms high-level source code that
is written by a developer in a high-level programming language into a low level
object code (binary code) in machine language, which can be understood by the
processor.
The process of converting high-level programming into machine language is
known as compilation.
The processor executes object code, which indicates when binary high and
low signals are required in the arithmetic logic unit of the processor.
The stages in compilation include:
Lexical Analysis
Syntax Analysis
Semantic Analysis
Intermediate code generation
Code optimization
Code generation
Compiler
 A program that converts another program from some source language

(or high-level programming language / HLL) to machine language

(object code).

 Some compilers output assembly language which is then converted to

machine language by a separate assembler.

 Is distinguished from an assembler by the fact that each input

statement, in general, correspond to more than one machine

instruction.
Compilation
Source Target
Compiler
Program Progra
m

Input Target Program Outpu


t

 Compiler translates source into target (a machine language program)

 Compiler goes away at execution time

 Compiler is itself a machine language program, presumably created by


compiling some other high-level program

 Machine language, when written in a format understood by the OS is


object code
Interpreters
An interpreter is a computer program that is used to directly execute

program instructions written using one of the many high-level programming

languages.

The interpreter transforms the high-level program into an intermediate

language that it then executes, or it could parse the high-level source code and

then performs the commands directly, which is done line by line or statement

by statement.

Programming languages are implemented in two ways:

interpretation and compilation.


Interpreters
An interpreter transforms or interprets a high-level programming code into

code that can be understood by the machine (machine code) or into an

intermediate language that can be easily executed as well.

The interpreter reads each statement of code and then converts or executes

it directly.

In contrast, an assembler or a compiler converts a high-level source code into

native (compiled) code that can be executed directly by the operating system.
Interpretation

Source
Program

Interpreter Outpu
t
Input

 The interpreter stays around during execution


 It reads and executes statements one at a time
Compilation vs. Interpretation
Compilation:
 Syntax errors caught before running the program
 Better performance
 Decisions made once, at compile time
Interpretation:
 Better diagnostics (error messages)
 More flexibility
 Supports late binding (delaying decisions about program
implementation until runtime)
 Can better cope with PLs where type and size of variables depend
on input
 Supports creation/modification of program code on the fly
(e.g. Lisp, Prolog)
Mixture of C & I

Source Intermediat
Translator e
Program
Program
Intermediate
Program
VM Outpu
t
Input

• Many programming languages implement this

• Interpreter implements a Virtual Machine (VM).


JAVA
For portability:

Java Compiler

bytecode

ML Interpreter

For flexibility: Just In Time (JIT) compiler translates


bytecode into ML just before execution
Utility Software
 It helps you maintain your computer and keep it in good running condition

 Utility software is software designed to help to analyse, configure, optimize


or maintain a computer.

 It is used to support the computer infrastructure - in contrast to application


software, which is aimed at directly performing tasks that benefit ordinary
users.

 Utilities often form part of application systems.


For example a batch job may run user-written code to update a database and
may then include a step that runs a utility to back up the database, or a job
may run a utility to compress a disk before copying files.
 File Conversion
File conversion is the process of converting a file into another type.
For example:
 transferring a file used in Microsoft Word to Corel Word Perfect.
 It overs data transfer from any medium to another medium, making an exact
copy or simultaneously editing and Validating data.
 a copy from a hard disk to a diskette.

 File Copy
File copying is the creation of a new file which has the same content as an existing
file.
For example:
 File copying is the creation of a new copy file which has the same content as an
existing file.

 Housekeeping Operations
These include programs to clear areas of storage, writing file labels, updating
common data e.g. data.
Application Software
 Programs that help users solve particular computing problems

 Programs written for computer users and it enables you to perform specific
computer tasks, such as document production, spreadsheet calculations, and
database management
• Word-processors, spreadsheets, & other application packages
 Software that can perform a specific task for the user, such as
 Word processors– example: Microsoft word
 Spreadsheets-- example: Microsoft Excel
 Database managers-- example: Microsoft Access
 Graphics-- example: Photoshop

Application Software – Basic Tools: Examples


word processing, accounting, budgeting or payroll, fall under the category of application
software. Word processors, spreadsheets, database management systems are all
examples of general purpose application software
 Word processing software:
 The main purpose of this software is to produce documents.
 MS-Word, Word Pad, Notepad and some other text editors are some of the
examples of word processing software
 Spread sheet software:
 The spread sheet software is used to maintain budget, financial
statements, grade sheets, and sales records.
 The purpose of this software is organizing numbers.
 It also allows the users to perform simple or complex calculations on the
numbers entered in rows and columns.
 MS-Excel is one of the example of spreadsheet software.
 Presentation software:
 This software is used to display the information in the form of slide show.
 The three main functions of presentation software is editing that allows
insertion and formatting of text, including graphics in the text and
executing the slide shows.
 The best example for this type of application software is Microsoft
PowerPoint.
 Multimedia software:
 Media players and real players are the examples of multimedia software.
 This software will allow the user to create audio and videos.
 The different forms of multimedia software are audio converters, players,
burners, video encoders and decoders.

You might also like