Presentation is loading. Please wait.

Presentation is loading. Please wait.

Creating your first C program

Similar presentations


Presentation on theme: "Creating your first C program"— Presentation transcript:

1 Creating your first C program
Introduction to C Creating your first C program

2 Writing C Programs The programmer uses a text editor to create or modify files containing C code. C code is also called source code A file containing source code is called a source file The source file is designed for people After a source file has been created, the programmer must invoke the C compiler.

3 Writing C Programs The source file is designed for people, not computers The algorithms expressed in the source file must be translated into executable machine language To complete this translation, the programmer must invoke the C compiler. A compiler is a program that automatically translates source code to machine code.

4 The Compiler Object Code Compiler Source Code

5 Using the C Compiler Invoking the compiler is system dependent.
At UMBC, we have two C compilers available, cc and gcc. For this class, we will use the cc compiler, because the error messages given by the cc compiler are easier for beginners to understand.

6 Invoking the Compiler Example
cc pgm.c where pgm.c is the source file that contains a program

7 The Result : a.out If there are no errors in pgm.c, this command produces an executable file, one that can be run or executed. Both the cc and the gcc compilers name the executable file a.out To execute the program, type a.out at the Unix prompt. Although we call this “compiling a program”, what actually happens is more complicated.

8 3 Stages of Compilation 1: Preprocessor
Modifies the source code Substitutes user-defined abbreviations #define CSE_NUM CMSC #define INST_NAME “Mr. Olsen” Handles preprocessor directives #define COMPILER_VER 2.2.7 Strips comments and whitespace from the code

9 3 Stages of Compilation 2: Compiler
Translates the modified source code into object code (machine code that does not yet have the libraries necessary to run) Parser - breaks program into lexical units and checks for errors Code Generator - makes the object code Optimizer - may change the code to be more efficient

10 Parsing Based on syntax (“lexical unit”) a = b + c;
printf(“This is a sample”); if(a == b){ c = x + y; }

11 3 Stages of Compilation 3: Linker
Linker - combines the object code of our program with other object code to produce the executable file. The other object code can come from: The Run-Time Library - a collection of object code with an index so that the linker can find the appropriate code. other object files other libraries

12 Compilation Diagram Editor < Compiler Preprocessor Parser
Source File myprog.c Compiler Preprocessor Parser Code Generator Optimizer Object File myprog.o Other Obj’s Run-time library Other libraries Linker Executable file a.out

13 An algorithm for writing code
Write the algorithm Write the code using emacs (pico, vi) Try to compile the code While there are still syntax errors Fix errors Test the program Fix any semantic errors Compile the code

14 Incremental Approach to Writing Code
Tips about writing code. Write your code in incomplete but working pieces. For instance: For your project Don’t write the whole program at once. Just write enough that you display the prompt to the user on the screen. Get that part working first. Next write the part that gets the value from the user, and then just print it out.

15 Incremental Approach to Writing Code (continued)
Get that working. Next change the code so that you use the value in a calculation and print out the answer. Make program modifications: perhaps additional instructions to the user a displayed program description for the user add more comments. Get the final version working.

16 A Simple C Program /* Filename: hello.c Author: Peter Olsen
Date written: 10/9/99 Description: This program prints the greeting “Hello, World!” */ #include <stdio.h> /* Tells how to call IO lib */ main ( ) { printf (“Hello, World!\n”) ; }

17 Anatomy of a C Program program header comment preprocessor directives
main ( ) { statement(s) }

18 The Program Header Comment
All comments must begin with the characters /* and end with the characters */ The program header comment always comes first The program header comment should include the filename, author, date written and a description of the program

19 Preprocessor Directive
Lines that begin with a # are called preprocessor directives The #include <stdio.h> directive causes the preprocessor to include a copy of the standard input/output header file stdio.h at this point in the code. This header file was included because it contains information about the printf ( ) function that’s used in this program.

20 main ( ) Every program has a function called main, where execution begins --- and where execution should end. The parenthesis following main indicate to the compiler that it is a function.

21 Left Brace A left curly brace -- { -- begins the body of every function. A corresponding right curly brace must end the function. The style is to place these braces on separate lines in column 1.

22 printf (“Hello, World!\n”) ;
This is the function printf ( ) being called with a single argument, namely the string “Hello, World!\n” Even though a string may contain many characters, the string itself should be thought of as a single entity. Notice that this line ends with a semicolon. All statements in C end with a semicolon.

23 Right Brace This right curly brace -- } --matches the left curly brace above. It ends the function main ( ).

24 Good Programming Practices
C programming standards are available on the Web -- see course homepage You will be expected to conform to these standards for all programming projects in this class and in CMSC 201 These standards include: Naming conventions Use of whitespace Use of Braces Comments

25 Examples of Comment Styles
/* a comment */ /*** another comment ***/ /*****/ /*A comment can be written in this * fashion to set it off from the * surrounding code. */

26 More Comments /*******************************************\
* If you wish, you can put comments * * in a box. This is typically used for * * program header comments and for * * function header comments * \*******************************************/

27 Use of Whitespace Use blank lines to separate major parts of a source file or function Separate declarations from executable statements with a blank line Preprocessor directives, main(), braces are in column 1

28 Use of Whitespace (continued)
All executable statements are indented at least one tab stop. How deep should my tabs be ? Typically 3 or 4 spaces. 2 is not enough for good readability, more than four causes indentation to be too deep.


Download ppt "Creating your first C program"

Similar presentations


Ads by Google