Software HARISH MORWANI
[email protected]
P102 Prog. Fundamentals I: Software / Slide 2
Introduction ●
●
●
Computer software, or just software is a general term used to describe a collection of computer programs, procedures and documentation that perform some tasks on a computer system. Computer software are often regarded as anything but hardware, meaning that the "hard" are the parts that are tangible while the "soft" part is the intangible objects inside the computer. The term "software" was first used in this sense by John W. Tukey in 1958. In computer science and software engineering, computer software is all computer programs.
P102 Prog. Fundamentals I: Software / Slide 3
Computer Software Relationships User Interface Application Programs
User Interface
Operating System
User Basic Input and Output Services (BIOS) • needed for a computer to boot up Interface
Computer Hardware
P102 Prog. Fundamentals I: Software / Slide 4
Categories
P102 Prog. Fundamentals I: Software / Slide 5
Application Software ●
Easy-to-use programs designed to perform specific tasks/applications Packaged
Available in Market requirements
Customized
Designed as per User
P102 Prog. Fundamentals I: Software / Slide 6
Application Software ●
●
Application software makes computer popular and easy to use Common application software: Microsoft Word PowerPoint Netscape, Internet Explorer PhotoShop, Photo-Paint Quick Time Dreamweaver
P102 Prog. Fundamentals I: Software / Slide 7
System Software ■ Programs
that support the execution and development of other programs
Operating systems
Translators
P102 Prog. Fundamentals I: Software / Slide 8
Operating System)
P102 Prog. Fundamentals I: Software / Slide 9
Operating System ● ●
Controls and manages the computing resources Examples ■
●
Windows, Unix, MSDOS,
Important services that an operating system provides: ■ ■ ■ ■
File system Commands to manipulate the file system Input and output on a variety of devices Memory management
102 Prog. Fundamentals I: Software / Slide 10
Translators ●
●
These system softwares are required to translate the language used by the USER to write Programs into a language which can be understood by the Machine. For understanding Translators, let us understand the different types of Programming languages first.
102 Prog. Fundamentals I: Software / Slide 11
PROGRAMMING LANG.
102 Prog. Fundamentals I: Software / Slide 12
MACHINE LANGUAGE •
•
Each computer has its own machine language, which is made of streams of 0s and 1s because the internal circuit of a computer is made of switches, transistors and other electronic devices that can only be in one of two states: off or on. 0 represents the off state; 1 represents the on state.
01011110
11111000 11101111
00000000 00001100 11101111 11101111 10101101 01100010 00000010
00000100 11000010 00010110 10011110 11011111 11011111 11111011
00000000 00000000 00000000 00000000 00000000 00000000 00000000
102 Prog. Fundamentals I: Software / Slide 13
MACHINE LANGUAGE Example of a machine language instruction: 00000101 ADD to operation result
00010000 Value of 1st operand
00000000 Address store
102 Prog. Fundamentals I: Software / Slide 14
ASSEMBLY LANGUAGE • •
Symbols replace the machine language operations & operands making it more easy to work on. A special program called assembler translates symbolic code into machine language, thus it is also called assembly language. entry subl2 jsb movab
main, ^m
#12,sp C$MAIN_ARGS $CHAR_STRING_CON
pushal pushal calls pushal calls mull3 pusha calls clrl ret
–8(fp) (r2) #2,read –12(fp) #2, read –8(fp), -12(fp), 6(r2) #2, print r0
TRANSLATOR
102 Prog. Fundamentals I: Software / Slide 15
HIGH-LEVEL LANGUAGE • • •
Portable to many kinds of computers, allowing the programmer to concentrate on the problem at hand rather than the intricacies of the computer. Relieve the programmer from the details of the assembly language. Share one thing with symbolic languages: they must be compiled or interpreted to convert to machine language. #include using namespace std; int main (void) { // Local Declarations int number1; int number2; int result; // Statements cin >> number1; cin >> number2; result = number1 * number2; cout << result; return 0; } // main
102 Prog. Fundamentals I: Software / Slide 16
Procedural v/s Non-Procedural Non-Procedural ●
What is to be done?
Procedural ●
What is to be done & How it is to be done?
102 Prog. Fundamentals I: Software / Slide 17
Interpreter v/s Compiler ●
A compiler is a computer program (or set of programs) that transforms source code from a high-level programming language to a lower level language (e.g., machine language). Translation is done at once. Faster than Interpreter.
●
●
An interpreter is a program that translates source code into some efficient intermediate representation (code) and immediately executes this . Translation is done statement by statement.
SOFTWARE POWER IN 3000
102 Prog. Fundamentals I: Software / Slide 19
102 Prog. Fundamentals I: Software / Slide 20
102 Prog. Fundamentals I: Software / Slide 21
102 Prog. Fundamentals I: Software / Slide 22
102 Prog. Fundamentals I: Software / Slide 23
102 Prog. Fundamentals I: Software / Slide 24
102 Prog. Fundamentals I: Software / Slide 25
102 Prog. Fundamentals I: Software / Slide 26