180 likes | 237 Views
C++ Programming Language Lecture 1 Introduction. By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department. Outline. Introduction. C++ overview. Computer organization and hardware trends. Evolution of operating systems and types of computing. Programming languages.
E N D
C++ Programming LanguageLecture 1Introduction By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department
Outline • Introduction. • C++ overview. • Computer organization and hardware trends. • Evolution of operating systems and types of computing. • Programming languages. • Basics of a typical C++ environment. The Hashemite University
Introduction • In this course you will learn C++ and the legacy C code. • It is your first step in the software programming world. • It will provide you with the needed tools and background to learn object-oriented programming. The Hashemite University
What is C++? • A powerful programming language that enables you to write instructions (i.e. software) to drive the hardware of the computer (i.e. to perform actions and take decisions). • But first, what is computers? What is hardware? And what is software? The Hashemite University
What is a Computer? • Computer • A device capable of performing computations and making logical decisions in a very fast manner. • Computer programs • Sets of instructions that control a computer’s processing of data • Hardware • Various devices comprising a computer • Examples: keyboard, screen, mouse, disks, memory, CD-ROM, and processing units • Software • Programs that run a computer The Hashemite University
Computer Organization • Six logical units in every computer: • Input unit • Obtains information from input devices (keyboard, mouse). • Output unit • Outputs information (to screen, to printer, to control other devices) • Memory unit • Rapid access, low capacity, stores input information and programs while they are being executed (active programs and data). • Arithmetic and logic unit (ALU) • Performs arithmetic calculations and logical decisions. • Central processing unit (CPU) • Supervises and coordinates the other sections of the computer (called the heart of the computer). • Secondary storage unit • Cheap, long-term, high-capacity storage, stores inactive programs. The Hashemite University
Hardware Trends • Every year or two computers approximately double the following: • The amount of memory they contain • Memory used to execute programs • The amount of secondary storage they contain • Secondary storage (such as disk storage) is used to hold programs and data over time • Their processor speeds • The speed at which computers execute their programs • This development is accompanied with a decrease in prices and computers cost. The Hashemite University
Evolution of Operating Systems • Operating system (OS) is the intermediary software that lies between the hardware and the computer applications where it enables the interfacing between the user and the computer hardware. • Operating systems development: • Batch processing • Do only one job or task or program at a time while processing data in groups or batches. • Operating systems • Manage transitions between jobs. • Increased throughput : Amount of work computers process. • Still batch processing. • Multiprogramming • Many jobs or tasks sharing a computer’s resources • Timesharing • Special case of multiprogramming. • Access computer resources via terminals. • Perform a small portion of one user’s job then moves on to service the next user The Hashemite University
Types of Computing • Personal computers • Economical enough for individual • Distributed computing • Organizations computing is distributed over networks • Client/server computing • Sharing of information across computer networks between servers (such as file servers, email servers, etc.) and clients (personal computers connected to the network) The Hashemite University
Programming Languages I • Three types of programming languages • Machine languages • Strings of numbers giving machine specific instructions. • Computers can only understand this language. • Example: 101000110010011111111111111100000001110100 • Machine dependent: every machine has its own language. • Hard to be understood by humans. • Hard to be used in programming. • Too slow and tedious. • Error prone. The Hashemite University
Programming Languages II • Assembly languages • English-like abbreviations representing elementary computer operations so it is easier to be understood by humans. • Translated or converted into machine language via assemblers. • Also, it is slow and hard to be used in programming. • Machine dependent. • Example: LOAD BASEPAYADD OVERPAYSTORE GROSSPAY The Hashemite University
Programming Languages III • High-level languages • Similar to everyday English, use mathematical notations. • Translated into machine language via compilers (compile the whole program at once). • Interpreters are used to execute high level languages without need to compile them into machine language and it execute single line at a time. • Compiled programs are faster than the interpreted ones. • Fast and easy for programming. • Machine independent. • Example: grossPay = basePay + overTimePay The Hashemite University
Programming Languages IV • It is common to classify the computer programming languages into two types: • Low level programming languages which includes both the machine and assembly languages. • High level languages as in the previous slide. The Hashemite University
Example of High-level Languages • Other high-level languages • C and C++. • Java • Visual basic 6/.Net • C#.Net • FORTRAN • Used in scientific and engineering applications • COBOL • Used to manipulate large amounts of data • Pascal • Used to teach structured programming The Hashemite University
History of C and C++ • C++ evolved from C • C evolved from two other programming languages: BCPL and B which are used mainly to develop operating systems and compilers. • ANSI C: standard of C and C++ • ANSI (American National Standard Institution ) has cooperated with ISO (International Organization for Standardization) to established worldwide standards for C and C++ programming to make C++ programs portable. • C99 is the latest ANSI standard of C/C++ • C++ “spruces up” C • Provides capabilities for object-oriented programming • Objects are reusable software components that model things in the real world • Object-oriented programs are easy to understand, correct and modify The Hashemite University
C++ Standard Library • C++ programs • Built from pieces called classes and functions. • C++ standard library • Provides rich collections of existing classes and functions for all programmers to use. The Hashemite University
Program is created in the editor and stored on disk. Preprocessor program processes the code. Compiler creates object code and stores it on disk. Compiler Linker links the object code with the libraries, creates a.out and stores it on disk Primary Memory Loader Loader puts program in memory. Primary Memory CPU takes each instruction and executes it, possibly storing new data values as the program executes. Preprocessor Linker Editor Disk Disk Disk Disk Disk CPU . . . . . . . . . . . . Basics of a Typical C++ Environment • Phases of C++ Programs: • Edit (create .h and .cpp files): create the source code or file • Preprocess • Compile: creates the object code • Link: creates the executable file • Load • Execute The Hashemite University
Additional Notes • Check the Black Board to get your copy of the lecture. • The lecture covers the following sections from the textbook: • Chapter 1: Sections 1.1 – 1.5, 1.8 – 1.10, and 1.15. The Hashemite University