CS-121 Programming I

Total Page:16

File Type:pdf, Size:1020Kb

CS-121 Programming I CS-121 Programming I Dr. Nagia M. Ghanem [email protected] Topics • Algorithms & Design • Tracing • Identifiers • Variables • Primitive Date Types • Literals • Named Constants 2 Algorithms and Design • If we want to write a program for solving a given problem, this involves 2 basic steps: 1. Write an algorithm for solving the problem (write recipe). 2. Write code for implementing the algorithm (carry out recipe). • We cannot skip first step and go directly to second step. 3 Algorithm • An algorithm, named after the ninth century scholar Abu Jafar Al-Khowarizmi, is defined as follows: – An algorithm is a set of rules for carrying out calculation either by hand or on a machine (like a recipe). • Two ways to write algorithms: – Pseudo-code – Flowcharts 4 Algorithm - Pseudocode • Pseudocode is an artificial and informal language that helps programmers develop algorithms. Pseudocode is very similar to everyday English. • Operations involved in an algorithm – Output ( print “Hello Worlds!”) – Input (input height, input width) – Compute value of a given variable (set rectangleArea height*width) – Conditions (if height = 0 then set rectangleArea 0 ) – Loops (while count <=100 ………) 5 Pseudocode & Algorithm • Example 1: Write an algorithm to determine a student’s final grade and indicate whether it is passing or failing. The final grade is calculated as the average of four marks. 6 Pseudocode & Algorithm Pseudocode: • Input a set of 4 marks • Calculate their average by summing and dividing by 4 • if average is below 50 Print “FAIL” else Print “PASS” 7 Pseudocode & Algorithm • Detailed Algorithm • Step 1: Input M1,M2,M3,M4 Step 2: GRADE (M1+M2+M3+M4)/4 Step 3: if (GRADE < 50) then Print “FAIL” else Print “PASS” endif 8 The Flowchart • A graphical representation that shows the flow of control in a program. • Flow of Control: – Order of which program statements are executed. • Different symbols are used to draw each type of flowchart. 9 Flowchart Symbols Name Symbol BasicUse in Flowchart Oval Denotes the beginning or end of the program Parallelogram Denotes an input operation Rectangle Denotes a process to be carried out e.g. addition, subtraction, division etc. Diamond Denotes a decision (or branch) to be made. The program should continue along one of two routes. (e.g. IF/THEN/ELSE) Hybrid Denotes an output operation Flow line Denotes the direction of logic flow in the program 10 Example START Step 1: Input M1,M2,M3,M4 Step 2: GRADE (M1+M2+M3+M4)/4 Input M1,M2,M3,M4 Step 3: if (GRADE <50) then Print “FAIL” else GRADE(M1+M2+M3+M4)/4 Print “PASS” endif N Y IS GRADE<50 PRINT PRINT “PASS” “FAIL” STOP 11 Tracing (Analysis) • Step through an algorithm (program) line by line and carefully record everything that happens. • Build Tracing table : one column for every variable and one column for output Set num to 2 num count Output Set count to 1 2 1 While count < 5 set count count*num 2 Hello if (count/2) < 2 The count is 2. print “Hello” else 4 set count count+1 5 The count is 5. endif print “The count is” + count+”.” 12 Variables and Types • A variable is a location in memory where values can be stored and referenced. • Variables are associated with types, which have particular data sizes and a restricted set of valid operations that can be performed on them. • Variable declarations assign an identifier, a type, and may declare an initial value. Many types have a default value. For example, an uninitialized integer defaults to 0. • All program variables must be declared before using them Variable (a memory location) a value (a default value) address a type a name (identifier) Declaration Rules Must be declared with name and type Value is optional Cannot have two variables with same name and different type Identifiers • Names in programs are called identifiers. • An identifier is the name of something (e.g. a variable, object, or method) used in a Java program. • Syntax rules for identifiers tell what names are allowed. • Naming conventions are not required by the compiler but are good practice. 15 Syntax Rules for Identifiers • Always start with a letter. • Can include, digits, underscore, characters 'a' through 'z', 'A' through 'Z', '0' through '9', ‘_’ and '$'. • Cannot be reserved words / keywords (e.g. “if,” “for”, public, static, class, and void, ) • Cannot have a digit for the first character. 16 Syntax Rules for Identifiers • Cannot have spaces or dots. • have no official length limit (there is always a finite limit, but it is very large and big enough for reasonable names) • Must be unique within its scope • are case sensitive! – hope, Hope and HOPE are three valid and different identifiers, so be sure to be careful in your typing! 17 Naming Conventions • Choose meaningful and descriptive names. • Variables and method names: – Use lowercase. If the name consists of several words, concatenate all in one, use lowercase for the first word, and capitalize the first letter of each subsequent word in the name. For example, the variables radius and area, and the method computeArea. • Class names: – Capitalize the first letter of each word in the name. For example, the class name ComputeArea. • Constants: – Capitalize all letters in constants. For example, the constant PI. Java Data Types • Java Data Types – Boolean – Character – Integer – Floating point 19 Boolean Data Type • Boolean variables can only take the values true or false. • They are often used to test for conditions in a program. • Memory space: 1 bit • Examples: – boolean status = true; – boolean isNegative = false; 20 Characters • Character variables can store one character. • A character value is a character surrounded by single quotes – char pLetter = 'P‘ • Characters are actually stored as integers according to a special code – each printable character (letter, number, punctuation mark, space, and tab) is assigned a different integer code – the codes are different for upper and lower case – for example 97 may be the integer value for ‘a’ and 65 for ‘A’ • ASCII and Unicode are common character codes 21 Characters • Unicode includes all the ASCII codes plus additional ones for languages with an alphabet other than English • Java uses Unicode • All characters are represented by 16-bit Unicode. • '\u' followed by four hexadecimal digits represent 16 bit Unicode character. char x = '\u1234‘ 22 Integers • An integer is any whole number, negative or positive, including 0. • In Java, we can have integers of different sizes – long (8 bytes) can store values from -263 to 263 -1 – int: (4 bytes) can store values from -231 to 231 -1 – short: (2 bytes) can store values from -215 to 215 -1 – byte: (1 byte) can store values from -128 to 127 • When using integers, we usually use int • Examples: – byte b = 127; – short s = -32768; – int i = 4; 23 Floating Point Numbers • Floating-point numbers are used to represent reals, i.e. numbers that may have fractional parts, e.g. – 123.4, 55., .99 • The Java floating-point types are: – float: 32 bits – double: 64 bits • A float literal ends with 'f'. • Examples: – float f = 123.4f – float f2 = .99f • A floating-point literal is by default of type double 24 Java Primitive Types 25 Declaring Variables int x; // Declare x to be an // integer variable; double radius; // Declare radius to // be a double variable; char a; // Declare a to be a // character variable; Assignment Statements x = 1; // Assign 1 to x; radius = 1.0; // Assign 1.0 to radius; a = 'A'; // Assign 'A' to a; Declaring and Initializing in One Step • int x = 1; • double d = 1.4; • float f = 1.4; Is this statement correct? Literals • A literal is a constant value that appears directly in the program. – 10 a literal that specifies an integer – 3.14 specifies a floating point value – true specifies a Boolean value – 'X' specifies a character constant – "Hello" specifies a string • For example, 34, 1,000,000, and 5.0 are literals in the following statements: int i = 34; long l = 1000000; double d = 5.0; Integer Literals • An integer literal can be assigned to an integer variable as long as it can fit into the variable. • A compilation error would occur if the literal were too large for the variable to hold. For example, the statement byte b = 1000 would cause a compilation error, because 1000 cannot be stored in a variable of the byte type. • An integer literal is assumed to be of the int type, whose value is between -231 (-2147483648) to 231–1 (2147483647). • To denote an integer literal of the long type, append it with the letter L or l. L is preferred because l (lowercase L) can easily be confused with 1 (the digit one). • What about octal and hexadecimal literals? Floating-Point Literals • Floating-point literals are written with a decimal point. • By default, a floating-point literal is treated as a double type value. For example, 5.0 is considered a double value, not a float value. • You can make a number a float by appending the letter f or F, and make a number a double by appending the letter d or D. • For example, – 100.2f or 100.2F for a float number – and 100.2d or 100.2D for a double number. Scientific Notation • Floating-point literals can also be specified in scientific notation. • for example: – 1.23456e+2, same as 1.23456e2, is equivalent to 123.456 – 1.23456e-2 is equivalent to 0.0123456. • E (or e) represents an exponent and it can be either in lowercase or uppercase. Named Constants • Useful when you want a variable whose value never changes • Use the modifier final in its declaration • Example 1: final int US_Population = 278058881; • Example 2: – Hard-coded constants (Literals) double celsius= (5.0/9.0) * (fah- 32.0); – Named Constants final double FREEZING_POINT = 32.0; final double CONVERSION_FACTOR = 5.0/9.0; double Fah=50; double celsius= CONVERSION_FACTOR * (fah- FREEZING_POINT); 33 Helping Material • Java 2, the Complete Reference, 7th edition, Herbert Schildt, 2007, ISBN: 0-07- 222420-7 – Chapter 3 till page 41 • Next time.
Recommended publications
  • C Constants and Literals Integer Literals Floating-Point Literals
    C Constants and Literals The constants refer to fixed values that the program may not alter during its execution. These fixed values are also called literals. Constants can be of any of the basic data types like an integer constant, a floating constant, a character constant, or a string literal. There are also enumeration constants as well. The constants are treated just like regular variables except that their values cannot be modified after their definition. Integer literals An integer literal can be a decimal, octal, or hexadecimal constant. A prefix specifies the base or radix: 0x or 0X for hexadecimal, 0 for octal, and nothing for decimal. An integer literal can also have a suffix that is a combination of U and L, for unsigned and long, respectively. The suffix can be uppercase or lowercase and can be in any order. Here are some examples of integer literals: Floating-point literals A floating-point literal has an integer part, a decimal point, a fractional part, and an exponent part. You can represent floating point literals either in decimal form or exponential form. While representing using decimal form, you must include the decimal point, the exponent, or both and while representing using exponential form, you must include the integer part, the fractional part, or both. The signed exponent is introduced by e or E. Here are some examples of floating-point literals: 1 | P a g e Character constants Character literals are enclosed in single quotes, e.g., 'x' and can be stored in a simple variable of char type. A character literal can be a plain character (e.g., 'x'), an escape sequence (e.g., '\t'), or a universal character (e.g., '\u02C0').
    [Show full text]
  • PYTHON NOTES What Is Python?
    PYTHON NOTES What is Python? Python is a popular programming language. It was created in 1991 by Guido van Rossum. It is used for: web development (server-side), software development, mathematics, system scripting. What can Python do? Python can be used on a server to create web applications. Python can connect to database systems. It can also read and modify files. Python can be used to handle big data and perform complex mathematics. Python can be used for production-ready software development. Why Python? Python works on different platforms (Windows, Mac, Linux, Raspberry Pi, etc). Python has a simple syntax similar to the English language. Python has syntax that allows developers to write programs with fewer lines than some other programming languages. Python runs on an interpreter system, meaning that code can be executed as soon as it is written. This means that prototyping can be very quick. Good to know The most recent major version of Python is Python 3, which we shall be using in this tutorial. However, Python 2, although not being updated with anything other than security updates, is still quite popular. Python Syntax compared to other programming languages Python was designed to for readability, and has some similarities to the English language with influence from mathematics. Python uses new lines to complete a command, as opposed to other programming languages which often use semicolons or parentheses. Python relies on indentation, using whitespace, to define scope; such as the scope of loops, functions and classes. Other programming languages often use curly-brackets for this purpose. Python Install Many PCs and Macs will have python already installed.
    [Show full text]
  • Variables and Calculations
    ¡ ¢ £ ¤ ¥ ¢ ¤ ¦ § ¨ © © § ¦ © § © ¦ £ £ © § ! 3 VARIABLES AND CALCULATIONS Now you’re ready to learn your first ele- ments of Python and start learning how to solve programming problems. Although programming languages have myriad features, the core parts of any programming language are the instructions that perform numerical calculations. In this chapter, we’ll explore how math is performed in Python programs and learn how to solve some prob- lems using only mathematical operations. ¡ ¢ £ ¤ ¥ ¢ ¤ ¦ § ¨ © © § ¦ © § © ¦ £ £ © § ! Sample Program Let’s start by looking at a very simple problem and its Python solution. PROBLEM: THE TOTAL COST OF TOOTHPASTE A store sells toothpaste at $1.76 per tube. Sales tax is 8 percent. For a user-specified number of tubes, display the cost of the toothpaste, showing the subtotal, sales tax, and total, including tax. First I’ll show you a program that solves this problem: toothpaste.py tube_count = int(input("How many tubes to buy: ")) toothpaste_cost = 1.76 subtotal = toothpaste_cost * tube_count sales_tax_rate = 0.08 sales_tax = subtotal * sales_tax_rate total = subtotal + sales_tax print("Toothpaste subtotal: $", subtotal, sep = "") print("Tax: $", sales_tax, sep = "") print("Total is $", total, " including tax.", sep = ") Parts of this program may make intuitive sense to you already; you know how you would answer the question using a calculator and a scratch pad, so you know that the program must be doing something similar. Over the next few pages, you’ll learn exactly what’s going on in these lines of code. For now, enter this program into your Python editor exactly as shown and save it with the required .py extension. Run the program several times with different responses to the question to verify that the program works.
    [Show full text]
  • Regular Expressions the Following Are Sections of Different Programming Language Specifications
    Regular Expressions The following are sections of different programming language specifications. Write the corresponding regular expressions for each of the described lexical elements. 1) C Identifiers [Kernighan] An identifier is a sequence of letters and digits. The first character must be a letter; the underscore _ is considered a letter. Uppercase and lowercase letters are considered different. 2) Java 6 and previous Integer Literals [Gosling] An integer literal may be expressed in decimal (base 10), hexadecimal (base 16), or octal (base 8). An integer literal is of type long if it is suffixed with an ASCII letter L or l (ell); otherwise it is of type int. The suffix L is preferred, because the letter l (ell) is often hard to distinguish from the digit 1 (one). A decimal numeral is either the single ASCII character 0, representing the integer zero, or consists of an ASCII digit from 1 to 9, optionally followed by one or more ASCII digits from 0 to 9, representing a positive integer. An hexadecimal numeral consists of the leading ASCII characters 0x or 0X followed by one or more ASCII hexadecimal digits and can represent a positive, zero, or negative integer. Hexadecimal digits with values 10 through 15 are represented by the ASCII letters a through f or A through F, respectively; each letter used as a hexadecimal digit may be uppercase or lowercase. An octal numeral consists of an ASCII digit 0 followed by one or more of the ASCII digits 0 through 7 and can represent a positive, zero, or negative integer. Note that octal numerals always consist of two or more digits; 0 is always considered to be a decimal numeral-not that it matters much in practice, for the numerals 0, 00, and 0x0 all represent exactly the same integer value.
    [Show full text]
  • CS414-2004S-01 Compiler Basics & Lexical Analysis 1 01-0: Syllabus
    CS414-2004S-01 Compiler Basics & Lexical Analysis 1 01-0: Syllabus • Office Hours • Course Text • Prerequisites • Test Dates & Testing Policies • Projects • Teams of up to 2 • Grading Policies • Questions? 01-1: Notes on the Class • Don’t be afraid to ask me to slow down! • We will cover some pretty complex stuff here, which can be difficult to get the first (or even the second) time. ASK QUESTIONS • While specific questions are always preferred, “I don’t get it” is always an acceptable question. I am always happy to stop, re-explain a topic in a different way. • If you are confused, I can guarantee that at least 2 other people in the class would benefit from more explanation 01-2: Notes on the Class • Projects are non-trivial • Using new tools (JavaCC) • Managing a large scale project • Lots of complex classes & advanced programming techniques. 01-3: Notes on the Class • Projects are non-trivial • Using new tools (JavaCC) • Managing a large scale project • Lots of complex classes & advanced programming techniques. • START EARLY! • Projects will take longer than you think (especially starting with the semantic analyzer project) • ASK QUESTIONS! CS414-2004S-01 Compiler Basics & Lexical Analysis 2 01-4: What is a compiler? Source Program Compiler Machine code Simplified View 01-5: What is a compiler? Token Abstract Source Lexical Analyzer Parser File Stream Syntax Tree Abstract Semantic Analyzer Assembly Code Generator Assembly Tree Assembly Tree Generator Relocatable Assembler Object Linker Machine code Code Libraries More Accurate View 01-6:
    [Show full text]
  • AAE 875 – Fundamentals of Object Oriented Programming and Data Analytics
    AAE 875 – Fundamentals of Object Oriented Programming and Data Analytics Cornelia Ilin, PhD Department of Ag & Applied Economics UW-Madison Week 1 - Summer 2019 Programming languages - Types • 'low' because they are very close to how different hardware elements of a computer communicate with each other Low-level Created in 1940s • Require extensive knowledge of computer hardware and its configuration Programming languages - Types • The only language directly understood by a computer; does not need to be translated (by a compiler or interpreter – more on this later) Low-level • All instructions use binary notations and are written as strings of 1s and 0s 011 1100001 001001 1100010 Machine Assembly language language 'machine code' • However, binary notation is very difficult to understand -> develop assembly language to make machine language more readable by humans Programming languages - Types • Consists of a set of symbols and letters Low-level • Requires an assembler to translate the assembly language to machine language Machine Assembly • A second generation because it no longer requires a set of 1s and 0s to write language language instructions, but terms like: Mul 97, #9, 98 Add 96, #3, 92 Div 92, #4, 97 • Assemblers automatically translate assembly language instructions 'Mul 97, #9, 98', into machine code (011 1100001 001001 1100010). • Easier than machine language but still difficult to understand -> develop high level languages Programming languages - Types • Uses English and mathematical symbols in its instructions Low-level •
    [Show full text]
  • XL C/C++: Language Reference the Static Storage Class Specifier
    IBM XL C/C++ for Blue Gene/Q, V12.1 Language Reference Ve r s i o n 12 .1 GC14-7364-00 IBM XL C/C++ for Blue Gene/Q, V12.1 Language Reference Ve r s i o n 12 .1 GC14-7364-00 Note Before using this information and the product it supports, read the information in “Notices” on page 511. First edition This edition applies to IBM XL C/C++ for Blue Gene/Q, V12.1 (Program 5799-AG1) and to all subsequent releases and modifications until otherwise indicated in new editions. Make sure you are using the correct edition for the level of the product. © Copyright IBM Corporation 1998, 2012. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents About this information ........ix The register storage class specifier ......54 Who should read this information .......ix The __thread storage class specifier (IBM How to use this information .........ix extension) ..............56 How this information is organized .......ix Type specifiers .............58 Conventions ..............x Integral types.............58 Related information ...........xiii Boolean types ............59 IBM XL C/C++ information .......xiii floating-point types...........59 Standards and specifications .......xiv Character types ............60 Other IBM information .........xv The void type ............61 Other information ...........xv Vector types (IBM extension) .......61 Technical support ............xv User-defined types ...........62 How to send your comments ........xv The auto type specifier (C++0x) ......81 The decltype(expression) type specifier (C++0x) . 83 Chapter 1. Scope and linkage .....1 Compatibility of arithmetic types (C only) ....88 Type qualifiers .............89 Scope .................2 The __align type qualifier (IBM extension) .
    [Show full text]
  • C Language O Level / a Level
    Programming and Problem Solving through C Language O Level / A Level Chapter -3 : Introduction to ‘C’ Language Constants and Literals Like a variable, a constant is a data storage location used by the users program. Unlike a variable, the value stored in a constant can′t be changed during program execution. C has two types of constants, each with its own specific uses. o Literal Constants o Symbolic Constants Literal Constants 0 and ‘R’ are the examples for literal constant: int count = 20; char name= ‘R’; Symbolic Constants A symbolic constant is a constant that is represented by a name (symbol) in the program. 1. To define a symbolic constant , #define directive is used as follows: #define CONSTNAME literal For example #define PI 3.14159 Area = PI * (radius) * (radius); 2. To define a symbolic constant , Using const keyword. const int PI 3.14159 ; Area = PI * (radius) * (radius); #include <stdio.h> #define LENGTH 10 #define WIDTH 5 #define NEWLINE '\n' void main() { int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); } Literals The constants refer to fixed values that the program may not alter during its execution. These fixed values are also called literals. Constants can be of any of the basic data types like o an integer constant, o a floating constant, o a character constant, or o a string literal. There are also enumeration constants as well. Integer literals An integer literal can be a decimal, octal, or hexadecimal constant. A prefix specifies the base or radix: 0x or 0X for hexadecimal, 0 for octal, and nothing for decimal.
    [Show full text]
  • Modern C++ Tutorial: C++11/14/17/20 on the Fly
    Modern C++ Tutorial: C++11/14/17/20 On the Fly Changkun Ou (hi[at]changkun.de) Last update: August 28, 2021 Notice The content in this PDF file may outdated, please check our website or GitHub repository for the latest book updates. License This work was written by Ou Changkun and licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. http://creativecommons.org/licenses/by-nc-nd/4.0/ 1 2 CONTENTS CONTENTS Contents Preface 8 Introduction ............................................... 8 Targets ................................................. 8 Purpose ................................................. 9 Code ................................................... 9 Exercises ................................................ 9 Chapter 01: Towards Modern C++ 9 1.1 Deprecated Features ........................................ 10 1.2 Compatibilities with C ....................................... 11 Further Readings ............................................ 13 Chapter 02: Language Usability Enhancements 13 2.1 Constants .............................................. 13 nullptr ............................................... 13 constexpr ............................................. 15 2.2 Variables and initialization .................................... 17 if-switch .............................................. 17 Initializer list ........................................... 18 Structured binding ........................................ 20 2.3 Type inference ..........................................
    [Show full text]
  • CS 1622: Lexical Analysis Lexical Analysis Tokens Why Tokens
    9/5/2012 Lexical Analysis Problem: Want to break input into meaningful units of information Input: a string of characters CS 1622: Output: a set of partitions of the input string (tokens) Example: Lexical Analysis if(x==y) { z=1; } else { z=0; } Jonathan Misurda “if(x==y){\n\tz=1;\n} else {\n\tz=0;\n}” [email protected] Tokens Why Tokens? Token: A sequence of characters that can be treated as a single local entity. We need to classify substrings of our source according to their role. Tokens in English: Since a parser takes a list of tokens as inputs, the parser relies on token • noun, verb, adjective, ... distinctions: • For example, a keyword is treated differently than an identifier Tokens in a programming language: • identifier, integer, keyword, whitespace, ... Tokens correspond to sets of strings: • Identifier: strings of letters and digits, starting with a letter • Integer: a non-empty string of digits • Keyword: “else”, “if”, “while”, ... • Whitespace: a non-empty sequence of blanks, newlines, and tabs Design of a Lexer Lexer Implementation 1. Define a finite set of tokens An implementation must do two things: • Describe all items of interest 1. Recognize substrings corresponding to tokens • Depend on language, design of parser 2. Return the value or lexeme of the token recall “if(x==y){\n\tz=1;\n} else {\n\tz=0;\n}” A token is a tuple (type, lexeme): • Keyword, identifier, integer, whitespace “if(x==y){\n\tz=1;\n} else {\n\tz=0;\n}” • Should “==” be one token or two tokens? • Identifier: (id, ‘x’), (id, ‘y’), (id, ‘z’) • Keywords: if, else 2.
    [Show full text]
  • C++ CONSTANTS/LITERALS Rialspo Int.Co M/Cplusplus/Cpp Co Nstants Literals.Htm Copyrig Ht © Tutorialspoint.Com
    C++ CONSTANTS/LITERALS http://www.tuto rialspo int.co m/cplusplus/cpp_co nstants_literals.htm Copyrig ht © tutorialspoint.com Constants refer to fixed values that the prog ram may not alter and they are called literals. Constants can be of any of the basic data types and can be divided into Integ er Numerals, Floating -Point Numerals, Characters, String s and Boolean Values. Ag ain, constants are treated just like reg ular variables except that their values cannot be modified after their definition. Integ er literals: An integ er literal can be a decimal, octal, or hexadecimal constant. A prefix specifies the base or radix: 0x or 0X for hexadecimal, 0 for octal, and nothing for decimal. An integ er literal can also have a suffix that is a combination of U and L, for unsig ned and long , respectively. The suffix can be uppercase or lowercase and can be in any order. Here are some examples of integ er literals: 212 // Legal 215u // Legal 0xFeeL // Legal 078 // Illegal: 8 is not an octal digit 032UU // Illegal: cannot repeat a suffix Following are other examples of various types of Integ er literals: 85 // decimal 0213 // octal 0x4b // hexadecimal 30 // int 30u // unsigned int 30l // long 30ul // unsigned long Floating -point literals: A floating -point literal has an integ er part, a decimal point, a fractional part, and an exponent part. You can represent floating point literals either in decimal form or exponential form. While representing using decimal form, you must include the decimal point, the exponent, or both and while representing using exponential form, you must include the integ er part, the fractional part, or both.
    [Show full text]
  • CS414-2017S-01 Compiler Basics & Lexical Analysis 1
    CS414-2017S-01 Compiler Basics & Lexical Analysis 1 01-0: Syllabus • Office Hours • Course Text • Prerequisites • Test Dates & Testing Policies • Projects • Teams of up to 2 • Grading Policies • Questions? 01-1: Notes on the Class • Don’t be afraid to ask me to slow down! • We will cover some pretty complex stuff here, which can be difficult to get the first (or even the second) time. ASK QUESTIONS • While specific questions are always preferred, “I don’t get it” is always an acceptable question. I am always happy to stop, re-explain a topic in a different way. • If you are confused, I can guarantee that at least one other person in the class would benefit from more explanation 01-2: Notes on the Class • Projects are non-trivial • Using new tools (JavaCC) • Managing a large scale project • Lots of complex classes & advanced programming techniques. 01-3: Notes on the Class • Projects are non-trivial • Using new tools (JavaCC) • Managing a large scale project • Lots of complex classes & advanced programming techniques. • START EARLY! • Projects will take longer than you think (especially starting with the semantic analyzer project) • ASK QUESTIONS! CS414-2017S-01 Compiler Basics & Lexical Analysis 2 01-4: What is a compiler? Source Program Compiler Machine code Simplified View 01-5: What is a compiler? Token Abstract Source Lexical Analyzer Parser File Stream Syntax Tree Abstract Semantic Analyzer Assembly Code Generator Assembly Tree Assembly Tree Generator Relocatable Assembler Object Linker Machine code Code Libraries More Accurate View 01-6:
    [Show full text]