CMPE13Cyrus Bazeghi 1 Chapter 11 Introduction to Programming in C.

Slides:



Advertisements
Similar presentations
Chapter 11 Introduction to Programming in C
Advertisements

CSE 105 Structured Programming Language (C)
COSC 120 Computer Programming
CSE1301 Computer Programming Lecture 4: C Primitives I.
1 ICS103 Programming in C Lecture 3: Introduction to C (2)
C Programming Language 4 Developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories 4 Used to rewrite the UNIX operating system 4 Widely used on UNIX.
1 Introduction to “C” HLL’s and the Basic Syntax Patt and Patel Ch. 11 & 12.
1 Lecture 2  Input-Process-Output  The Hello-world program  A Feet-to-inches program  Variables, expressions, assignments & initialization  printf()
C programming.
1 Key Concepts:  Why C?  Life Cycle Of a C program,  What is a computer program?  A program statement?  Basic parts of a C program,  Printf() function?
Introduction to C Programming Overview of C Hello World program Unix environment C programming basics.
Chapter 11-12, Appendix D C Programs Higher Level languages Compilers C programming Converting C to Machine Code C Compiler for LC-3.
Chapter 11-12, Appendix D C Programs Higher Level languages Compilers C programming Converting C to Machine Code C Compiler for LC-3.
CMSC 104, Version 9/011 Introduction to C Topics Compilation Using the gcc Compiler The Anatomy of a C Program 104 C Programming Standards and Indentation.
C programming Language and Data Structure For DIT Students.
CHAPTER 1: INTORDUCTION TO C LANGUAGE
Copyright 2003 Scott/Jones Publishing Brief Version of Starting Out with C++, 4th Edition Chapter 1 Introduction to Computers and Programming.
Computer Science 210 Computer Organization Introduction to C.
1 C Programming Language Review and Dissection I: Overview, Static and Automatic Variables, and Program Control Flow These lecture notes created by Dr.
Hello World 2 What does all that mean?.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Goals of Course Introduction to the programming language C Learn how to program Learn ‘good’ programming practices.
Chapter 11 Programming in C Compilation vs. Interpretation Different ways of translating high-level language Compilation translates code into machine.
IPC144 Introduction to Programming Using C Week 1 – Lesson 2
Creating your first C++ program
Programming With C.
History of C 1950 – FORTRAN (Formula Translator) 1959 – COBOL (Common Business Oriented Language) 1971 – Pascal Between Ada.
Chapter 11 Introduction to Programming in C. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display Compilation.
CMSC 104, Version 9/011 Introduction to C Topics Compilation Using the gcc Compiler The Anatomy of a C Program 104 C Programming Standards and Indentation.
C Tutorial - Program Organization CS Introduction to Operating Systems.
Algorithms  Problem: Write pseudocode for a program that keeps asking the user to input integers until the user enters zero, and then determines and outputs.
CSC141 Introduction to Computer Programming Teacher: AHMED MUMTAZ MUSTEHSAN Lecture - 6.
CMSC 104, Lecture 111 Introduction to C Topics l Compilation l Using the gcc Compiler l The Anatomy of a C Program l 104 C Programming Standards and Indentation.
Chapter 1 Introduction. Chapter 1 -- Introduction2  Def: Compiler --  a program that translates a program written in a language like Pascal, C, PL/I,
CMSC 1041 Introduction to C Creating your first C program.
Programming Fundamentals. Overview of Previous Lecture Phases of C++ Environment Program statement Vs Preprocessor directive Whitespaces Comments.
1 Programming a Computer Lecture Ten. 2 Outline  A quick introduction to the programming language C  Introduction to software packages: Matlab for numerical.
Scott Marino MSMIS Kean University MSAS5104 Programming with Data Structures and Algorithms Week 1 Scott Marino.
An overview of C Language. Overview of C C language is a general purpose and structured programming language developed by 'Dennis Ritchie' at AT &T's.
Sudeshna Sarkar, IIT Kharagpur 1 Programming and Data Structure Sudeshna Sarkar Lecture 3.
1 Types of Programming Language (1) Three types of programming languages 1.Machine languages Strings of numbers giving machine specific instructions Example:
Chapter 1: Introduction to Computers and Programming.
L071 Introduction to C Topics Compilation Using the gcc Compiler The Anatomy of a C Program Reading Sections
Chapter 1 slides1 What is C? A high-level language that is extremely useful for engineering computations. A computer language that has endured for almost.
INTRODUCTION TO PROGRAMING System Development Mansoura October 2015.
Introduction To Software Development Environment.
From Algorithms to Programs Both are sets of instructions on how to do a task Algorithm: –talking to humans, easy to understand –in plain (English) language.
CCSA 221 Programming in C CHAPTER 3 COMPILING AND RUNNING YOUR FIRST PROGRAM 1 ALHANOUF ALAMR.
Introduction to C Topics Compilation Using the gcc Compiler
UMBC CMSC 104 – Section 01, Fall 2016
Basic C programming Convert C program statements to LC-3 Cache (how to bridge the speed gap between memory and CPU) Virtual memory (how to run multiple.
Computer Science 210 Computer Organization
C Programming Hardik H. Maheta.
Algorithms Problem: Write pseudocode for a program that keeps asking the user to input integers until the user enters zero, and then determines and outputs.
ICS103 Programming in C Lecture 3: Introduction to C (2)
Introduction to C Topics Compilation Using the gcc Compiler
Introduction to C Topics Compilation Using the gcc Compiler
Choice of Programming Language
Computer Science 210 Computer Organization
Chapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C
Introduction to C Topics Compilation Using the gcc Compiler
Creating your first C program
Chapter 11 Introduction to Programming in C
Introduction to Computer Programming
Introduction to C Topics Compilation Using the gcc Compiler
Chapter 11 Programming in C
Introduction to C Topics Compilation Using the gcc Compiler
Chapter 11 Introduction to Programming in C
Presentation transcript:

CMPE13Cyrus Bazeghi 1 Chapter 11 Introduction to Programming in C

CMPE13Cyrus Bazeghi 2 The C language - history Late ‘60s: MIT, GE, and Bell Labs partner up to build MULTICS, to provide computational power on a grid, just like electrical power, using the B programming language Early ’70s: from B, Dennis Ritchie develops C, used by Ken Thompson to rewrite UNIX (at Bell Labs) “The white book” by Brian Kernighan and Dennis Ritchie:

CMPE13Cyrus Bazeghi 3 C: A High-Level Language Gives symbolic names to values –don’t need to know which register or memory location Provides abstraction of underlying hardware –operations do not depend on instruction set –example: can write “a = b * c”, even though LC-3 doesn’t have a multiply instruction

CMPE13Cyrus Bazeghi 4 C: A High-Level Language Provides expressiveness –use meaningful symbols that convey meaning –simple expressions for common control patterns (if-then-else) Enhances code readability Safeguards against bugs –can enforce rules or conditions at compile- time or run-time

CMPE13Cyrus Bazeghi 5 Compilation vs. Interpretation Different ways of translating high-level language Interpretation –interpreter = program that executes program statements –generally one line/command at a time –limited processing –easy to debug, make changes, view intermediate results –languages: BASIC, LISP, Perl, Java, Matlab, C-shell

CMPE13Cyrus Bazeghi 6 Compilation vs. Interpretation Compilation –translates statements into machine language does not execute, but creates executable program –performs optimization over multiple statements –change requires recompilation can be harder to debug, since executed code may be different –languages: C, C++, Fortran, Pascal

CMPE13Cyrus Bazeghi 7 Compilation vs. Interpretation Consider the following algorithm: –Get W from the keyboard. –X = W + W –Y = X + X –Z = Y + Y –Print Z to screen. If interpreting, how many arithmetic operations occur? If compiling, we can analyze the entire program and possibly reduce the number of operations. Can we simplify the above algorithm to use a single arithmetic operation?

CMPE13Cyrus Bazeghi 8 Compiling a C Program Entire mechanism is usually called the “compiler” Preprocessor –macro substitution –conditional compilation –“source-level” transformations output is still C Compiler –generates object file machine instructions Linker –combine object files (including libraries) into executable image

CMPE13Cyrus Bazeghi 9 Compiler Source Code Analysis –“front end” –parses programs to identify its pieces variables, expressions, statements, functions, etc. –depends on language (not on target machine) Code Generation –“back end” –generates machine code from analyzed source –may optimize machine code to make it run more efficiently –very dependent on target machine Symbol Table –map between symbolic names and items –like assembler, but more kinds of information

CMPE13Cyrus Bazeghi 10 A Simple C Program #include #define STOP 0 /* Function: main */ /* Description: counts down from user input to STOP */ main() { /* variable declarations */ int counter; /* an integer to hold count values */ int startPoint; /* starting point for countdown */ /* prompt user for input */ printf("Enter a positive number: "); scanf("%d", &startPoint); /* read into startPoint */ /* count down and print count */ for (counter=startPoint; counter >= STOP; counter--) printf("%d\n", counter); }

CMPE13Cyrus Bazeghi 11 Preprocessor Directives #include –Before compiling, copy contents of header file (stdio.h) into source code. –Header files typically contain descriptions of functions and variables needed by the program. no restrictions -- could be any C source code

CMPE13Cyrus Bazeghi 12 Preprocessor Directives #define STOP 0 –Before compiling, replace all instances of the string "STOP" with the string "0" –Called a macro –Used for values that won't change during execution, but might change if the program is reused. (Must recompile.)

CMPE13Cyrus Bazeghi 13 Comments Begins with /* and ends with */ Can span multiple lines Cannot have a comment within a comment Comments are not recognized within a string –example: "my/*don't print this*/string" would be printed as: my/*don't print this*/string Use comments to help reader, not to confuse or to restate the obvious Some C compiler allow C++ line commenting “//”

CMPE13Cyrus Bazeghi 14 main Function Every C program must have a function called main(). This is the code that is executed when the program is run. The code for the function lives within brackets: main() { /* code goes here */ }

CMPE13Cyrus Bazeghi 15 Structure of a C program A C program is a set of functions, all at the same level, always including main() - the execution starting point. /*****************************/ main() { } /* */ functionA() { } /* */ functionB() { } /*****************************/

CMPE13Cyrus Bazeghi 16 Variable Declarations Variables are used as names for data items. Each variable has a type, which tells the compiler how the data is to be interpreted (and how much space it needs, etc.). int counter; int startPoint; int is a predefined integer type in C.

CMPE13Cyrus Bazeghi 17 Input and Output Variety of I/O functions in C Standard Library. Must include to use them. printf("%d\n", counter); –String contains characters to print and formatting directions for variables. –This call says to print the variable counter as a decimal integer, followed by a linefeed ( \n ).

CMPE13Cyrus Bazeghi 18 Input and Output scanf("%d", &startPoint); –String contains formatting directions for looking at input. –This call says to read a decimal integer and assign it to the variable startPoint. (Don't worry about the & yet.)

CMPE13Cyrus Bazeghi 19 More About Output Can print arbitrary expressions, not just variables printf("%d\n", startPoint - counter); Print multiple expressions with a single statement printf("%d %d\n", counter, startPoint - counter);

CMPE13Cyrus Bazeghi 20 More About Output Different formatting options: %d decimal integer %x hexadecimal integer %c ASCII character %f floating-point number

CMPE13Cyrus Bazeghi 21 Examples This code: printf("%d is a prime number.\n", 43); printf(" in decimal is %d.\n", 43+59); printf(" in hex is %x.\n", 43+59); printf(" as a character is %c.\n", 43+59); produces this output: 43 is a prime number in decimal is in hex is as a character is f.

CMPE13Cyrus Bazeghi 22 Examples of Input Many of the same formatting characters are available for user input. scanf("%c", &nextChar); –reads a single character and stores it in nextChar scanf("%f", &radius); –reads a floating point number and stores it in radius

CMPE13Cyrus Bazeghi 23 Examples of Input scanf("%d %d", &length, &width); –reads two decimal integers (separated by whitespace), stores the first one in length and the second in width Must use ampersand ( & ) for variables being modified. (Explained in Chapter 16.)

CMPE13Cyrus Bazeghi 24 Compiling and Linking Various compilers available –cc, gcc –include preprocessor, compiler, and linker Lots and lots of options! –level of optimization, debugging –preprocessor, linker options –intermediate files: object (.o), assembler (.s), preprocessor (.i), etc. Ex: >gcc –O3 –o myProg myProg.c

CMPE13Cyrus Bazeghi 25 Remaining Chapters A more detailed look at many C features –Variables and declarations –Operators –Control Structures –Functions –Data Structures –I/O Also see C Reference in Appendix D.