Download presentation
Presentation is loading. Please wait.
Published byMonica Walton Modified over 9 years ago
1
CPS120: Introduction to Computer Science Compiling Your First Program
2
Compilers An engine that works on your behalf to process instructions and allow you to deal with various basic rules of the language The compiler’s job is to make sure you follow the rules, to require that you provide enough information that the compiler can translate you instructions into languages the components can understand
3
Compilers Available Products range from freeware compilers to work environments designed for commercial application development Borland C++ compiler CodeWarrior IBM Visual Age C++ Microsoft Visual C++ GNU freeware DJGPP freeware ( www.delorie.com/djgpp/ )www.delorie.comdjgpp
4
Compilation Process 1. Get the set of instructions from you (source file) 2. Review the instructions to see if they violate the rules (syntax) of the language 3. If all the rules are obeyed, create a working file in the language of the computer (machine language) 4. Attach to the working file full instructions for any shortcuts you may have used (linkage) 5. Assemble a final file in machine language (executable)
5
Source Code The set of instruction that you will develop on your own for processing by the compiler
6
Executable Files A machine-language executable file created when the compilation process is complete All that is needed to run the program Not human-readable Has the extension.EXE Stored in binary form Copies may be distributed (portable) Known as an application
7
Compiling and Debugging Executable code will not be created until you correct all of the syntax errors in your source code Then the fun (with logic errors) begins
8
Creating Source Code Files Actually Compiling a Program
9
Creating Source Code Programmers spend most of their time with source code files Need to be comfortable with an editor that creates text files Don’t use a word processor
10
Using the Visual Studio Editor Save often because there is no autosave in Visual C++ The editor will do matching of delimiters and intelligent indentation
11
Using C++ Actually Compiling a Program
12
C++ Usages & Conventions C++ is absolutely case sensitive For Instance: A is 97 in ASCII and a is 65 Remember: in ASCII {, [, and ( are not equivalent No keywords in ANSI standard are even partially uppercase ‘While’ is not a keyword, ‘while’ is
13
Comments Document what is happening, why it is happening and other issues Commentary is ignored by the compiler C++ has inline, block and documentary comments Inline comments are within line of code Use the // symbols Block comments are long comments delimited with /* and */
14
Scope Delimiters A symbol or pair of symbols used to define a region or area which is considered a locale In programming, many structures need to have their scope defined because they should not affect the entire program In C++, the symbols ‘{‘ and ‘}’ are used
15
Literals Literals are system commands and other pieces of information that the compiler doesn’t understand, and therefore, takes your word for them In C++, literals are enclosed in straight double quotes " " which is the shift of the apostrophe
16
Columns and White Space Modern programming languages are free form with delimiters instead of columns to determine the end of instructions The ; (semi-colon) is the delimiter used in C++ Use tabs, indents, and blank lines in any manner that makes code easier to understand Many programming instructions become subordinate to other instructions due to scope and other restrictions. Formatting code to reflect this makes it easier to read
17
Variables Variables or identifiers are used to hold information Usually mixed case with the first letters small and the rest starting with a capital e.g. theWeight
18
Color Coding in Visual C++ Editor Comments are green and are ignored by the compiler All ANSI keywords are coded in blue Other code is in plain black Compiler keywords like cin and cout are also shown in black
19
Setting Up a Visual C++ Workspace 1. Left-click START 2. In the program section, select Visual Studio or Visual C++ (depending on what is installed) 3. Left click on the Visual C++ icon to load the environment 4. Create a new work area by choosing FILE/NEW 5. Choose FILES tab 6. Click on the C++ Source File to reach the editor i. Add a filename and directory before continuing e.g. c:/cppFun/myFirstCpp
20
Setting Up a Visual C++ Workspace 7. Create the directory with START / EXPLORE 8. Double-click the drive letter 9. Choose FILE, NEW FOLDER 10. Left click on FOLDER 11. Change new folder to cppFUN 12. Close Explorer with the X 13. Back in Visual C++, type myFirstCpp in the file box 14. Click OK and get back to the main edit screen
21
Setting Up a Visual C++ Workspace 15. Enter the source code 16. After entering the program, FILE then SAVE
22
Why Create New Subdirectories? You should always use subdirectories to store your files. Visual C++ creates quite a few work files when it generates the executable file for you source code, and they will be easy to dispose of if you keep everything together in one convenient place.
23
Running the Program 1. Press the REBUILD ALL button. It has two arrows in a box 2. Press the RUN button. It is a red exclamation point
24
Disk Space Issues Text files are insignificant in terms of space However, at least six other files are created every time something is compiled Some of these are significantly larger You can delete anything but the file with the.cpp suffix; everything else can be recreated You probably also want the.exe file
25
An Introduction to Debugging CPS120 Introduction to Computer Science Lecture 5
26
Compiling and Debugging Executable code will not be created until you correct all of the syntax errors in your source code
27
Syntax and Logic Errors A syntax error is simply the violation of the rules of a language; misuse of structure and form in programming or a violation of the compiler’s rules. These errors are detected by the compiler Also know as 'fatal compilation errors' A logic error is a mistake that complies with the rules of the compiler that causes the program to generate incorrect output
28
Linker Errors Not all syntax errors are detectable by the compiler These errors do not become apparent until files are put together to create an executable These errors are not linked to a specific line of code Look for the name of the variable and see what lines of code it occurs on using EDIT and FIND >LNIK2001: unresolved external >LNK1120: unresolved externals
29
Debugging Debugging is the process of locating and fixing or bypassing bugs (errors) in computer program code or the engineering of a hardware device.bugs To debug a program or hardware device is to start with a problem, isolate the source of the problem, and then fix it.
30
Debugging Objective 1. Find the line(s) containing the syntax error(s) using the compiler's chosen line and error messages as a starting point
31
Debugging is an Art Compilers often miss reporting an actual error and report on subsequent lines which are effected by error but may be completely correct After encountering a real syntax error, compilers often generate many incorrect syntax error messages Different compilers produce different errors and warnings for the same errors in the same program
32
Debugging Steps 1. Proofread before compiling 2. Compile 3. Correct all the obvious errors >Start at the beginning of the list of errors and warnings >A single syntax error may cause the compiler to believe numerous other syntax errors are occurring >Look at the error lines and if you see the error, fix it. Otherwise, leave it for later. It may vanish when you fix something else >Don’t worry if more errors appear. Some errors mask other errors
33
Debugging Steps 4. Recompile when you have fixed what you recognize 5. Repeat 3 & 4 until no further errors are obvious 6. Attempt to solve the remaining errors in a top- down fashion 7. Solve whatever errors you can without spending long periods of time on any given error 8. Recompile whenever you feel you don’t see any further solutions
34
Debugging Aids 1. In the Visual C++ (and other GUI-based compilers) double-clicking on an error message move the cursor to the line where the compiler detected the error This may not be the actual line where the error occurred – don’t trust the compiler on lines 2. Work from the beginning of the program, because in most compilers, the errors are detected from the beginning to end, sequentially 3. Some errors are so severe, they stop the compiler from continuing so more errors may appear after you successfully fix one or more
35
A Debugging Mindset Assume your syntax is wrong. Look it up! Add working comments as you change things If you are 100% sure a line is correct, then search for a syntax error in the lines ABOVE that line Start with the immediately previous line and work backward Never make a change you can’t explain
36
Sample Debugging Comment cuot << "This is a line of code"<< endl; /*************Debug************* Error is undeclared identifier 1. Checked syntax for endl 2. Check syntax for screen output -- cuot is misspelled */
37
Warnings Actions that may represent problems but do not cause the compiler to flag an error Don’t ignore warnings Most common warning is a ‘typecasting’ warning Indicates that the conversion of one type of a number was moved to a number (variable) of a different type without inclusion of a typecasting operation >E.G. – Moving a float to an integer variable
38
Disk Space Issues If the floppy is full or becomes full during the compilation process, the compile will fail with an error message such as: fatal error C1033: cannot open program database A very cryptic message like this can result If you are not able to view all of the intermediate files created in a compile, suspect a space error
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.