Soft ware & hardware
Programs,namely, the list of instructions to be executed by a computer are known as the software of a computer The electronic circuits used in building a computer that executes the soft ware is known as the hardware
Computer software may be classified in to two categories 1)System software 2)Application software
System software
System software is a program that controls the computers hardware or that can be used to maintain the computer in some way so that it runs more efficiently. We have 3 basic types of system software
Application software
It tells the computer how to accomplish specific tasks such as word processing or drawing for the user. Thousands of applications are available for many purposes and for people of all ages. Some of the major categories of these applications include a) Word processing software is used for creating text based documents such as news papers or brochures and so on.
b) spread sheets are designed to use numbers and formulas to do calculations very easily. commonly used spreadsheet programs are microsoft excel. c)Database management system(DBMS) is a software tool that allows multiple users to store , access and process data into useful information. ex: oracle,microsoft access.
Evolution and History of Programming Languages
Software/Hardware/System
Software Programming Language
History Timeline
The Evolution of Programming Languages
To build programs, people use languages that are similar to human language. The results are translated into machine code, which computers understand. Programming languages fall into three broad categories: Machine languages Assembly languages Higher-level languages
The Evolution of Programming Languages Machine Languages
Machine languages (first-generation languages) are the most basic type of computer languages, consisting of strings of numbers the computer's hardware can use. Different types of hardware use different machine code. For example, IBM computers use different machine language than Apple computers.
The Evolution of Programming Languages Assembly Languages
Assembly languages (second-generation languages) are only somewhat easier to work with than machine languages. To create programs in assembly language, developers use cryptic English-like phrases to represent strings of numbers. The code is then translated into object code, using a translator called an assembler.
Assembly code
Assembler Object code
The Evolution of Programming Languages Higher-Level Languages
Higher-level languages are more powerful than assembly language and allow the programmer to work in a more English-like environment. Higher-level programming languages are divided into three "generations," each more powerful than the last: Third-generation languages Fourth-generation languages Fifth-generation languages
Higher-Level Languages Third-Generation Languages
Third-generation languages (3GLs) are the first to use true English-like phrasing, making them easier to use than previous languages. 3GLs are portable, meaning the object code created for one type of system can be translated for use on a different type of system. The following languages are 3GLs: FORTAN COBOL BASIC Pascal C C++ Java ActiveX
A Typical C Program Development Environment
Phases of C Programs:
Editor Preprocessor Compiler Linker Disk Disk Disk Disk Primary Memory Loader
1. Program is created in the editor and stored on disk 2. Preprocessor program processes the code 3. Compiler creates object code and stores it on disk. 4. Linker links the object code with the libraries
1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute
5. Loader puts program in memory.
Disk
Primary Memory CPU
6. CPU takes each instruction and executes it, possibly storing new data values as the program executes
Higher-Level Languages Fourth-Generation Languages
Fourth-generation languages (4GLs) are even easier to use than 3GLs. 4GLs may use a text-based environment (like a 3GL) or may allow the programmer to work in a visual environment, using graphical tools. The following languages are 4GLs: Visual Basic (VB) VisualAge Authoring environments
Higher-Level Languages Fifth-Generation Languages
Fifth-generation languages (5GLs) are an issue of debate in the programming community some programmers cannot agree that they even exist. These high-level languages would use artificial intelligence to create software, making 5GLs extremely difficult to develop. Solve problems using constraints rather than algorithms, used in Artificial Intelligence Prolog
Summary