C++ Programming Language Lecture 1 Introduction By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department
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 objectoriented programming. The Hashemite University 2
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 3
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 Arithmetic and logic unit (ALU) Performs arithmetic calculations and logic decisions Central processing unit (CPU) Supervises and coordinates the other sections of the computer Secondary storage unit Cheap, long-term, high-capacity storage, stores inactive programs The Hashemite University 4
Evolution of Operating Systems 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 5
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 file servers and clients (personal computers) The Hashemite University 6
Programming Languages I Three types of programming languages Machine languages Strings of numbers giving machine specific instructions. Computers can only understand this language. Example: 10100011001001 11111111111111 00000001110100 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 7
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 BASEPAY ADD OVERPAY STORE GROSSPAY The Hashemite University 8
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 9
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 10
History of C and C++ C++ evolved from C C evolved from two other programming languages, BCPL and B. ANSI C (American National Standard Institution) Established worldwide standards for C programming 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 11
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 12
Basics of a Typical C++ Environment Editor Disk Program is created in the editor and stored on disk. Phases of C++ Programs: 1. Edit (create.h and.cpp files) 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Preprocessor Compiler Linker Loader Disk CPU Primary Memory Primary Memory Preprocessor program processes the code. Compiler creates object code and stores it on disk. Linker links the object code with the libraries, creates a.out and stores it on disk Loader puts program in memory. CPU takes each instruction and executes it, possibly storing new data values as the program executes. The Hashemite University. 13 Disk Disk Disk.....
Hardware Trends Every year or two computers approximately double 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 to hold programs and data over time Their processor speeds The speed at which computers execute their programs The Hashemite University 14
Memory Concepts Variable names Correspond to locations in the computer's memory Every variable has a name, a type, a size and a value Whenever a new value is placed into a variable, it replaces the previous value - it is destroyed Reading variables from memory does not change them A visual representation that we will always use: integer1 45 The Hashemite University 15
Additional Notes Check the Black Board to get your copy of the lecture. The lecture covers the following sections from the book: Section 1.1 1.15 and 1.23. The Hashemite University 16