6.s096. Introduction to C and C++
|
|
- Della Sparks
- 6 years ago
- Views:
Transcription
1 6.s096 Introduction to C and C++
2 I know C and C++
3
4 Java Python C C++
5 Java Python C C++
6 Idioms & Best Practices
7 Tom Lieber Kyle Murray Frank Li
8 Damon Doucet Leonid Grinberg Evan Wang Chen Zhao
9
10
11 web.mit.edu/6.s096/
12 Registration, Wait List Grading: -,, + or better passes 70% assignments, 30% project
13 Why?
14 1 You seek performance
15 1 You seek performance zero-overhead principle
16 2 You seek to interface directly with hardware
17 3 That s kinda it
18 C a nice way to avoid writing assembly language directly
19 C++ responds to the demands of maintaining large C projects
20 C++11 responds to the demands of maintaining large C++ projects
21 Maintain power and flexibility of what came before
22 Compilation Today: Pipeline
23 Compilation Today: Pipeline
24 Source Code Program
25 main.c prog int a = gcc -o prog main.c
26 main.c int a = 1; prog int b = 2; gcc -o prog main.c main2.c
27 $ gcc -o prog main.c $./prog Hello, World! $
28 $ gcc -o prog main.c $./prog Hello, World! $ DONE
29 To debug the sausage, one must see how it is made. Someone, probably
30 Main.java int a = 1; Main.class %!(*@ java Main
31 Main.java int a = 1; Main.class %!(*@ java Main main.py a = 1 main.pyc %!(*@ python main.py
32 Main.java int a = 1; Main.class %!(*@ java Main main.py a = 1 main.pyc %!(*@ python main.py main.c main.o prog int a = 1; int a = 1;
33 main.c main.o prog int a = 1; int a = 1; Pre-Process
34 main.c main.o prog int a = 1; int a = 1; Pre-Process Compile
35 main.c main.o prog int a = 1; int a = 1; Pre-Process Compile Link
36 main.c main.o prog int a = 1; int a = 1; Pre-Process main2.o %!(*@ Compile Link
37 Pre-Process Compile Link
38 Pre-Process Compile Link
39 Pre-Process Compile Link
40 #include #define #ifdef
41 rimshot.txt ba-dum chh joke.txt A man walks into a bar. Ouch! #include "rimshot.txt" cpp -P joke.txt
42 output: A man walks into a bar. Ouch! ba-dum chh cpp -P joke.txt
43 double.py #define fosho def #define kthx return #define wutz print These are called macros fosho double(x): kthx x * 2 wutz double(6) cpp -P double.py
44 output: def double(x): return x * 2 print double(6) cpp -P double.py
45 output: def double(x): return x * 2 print double(6) cpp -P double.py python 12 AWESOME cpp -P double.py
46 beer.txt #define beer(x) x bottles of \ beer on the wall... beer(99) beer(98) beer(97)... cpp -P beer.txt
47 beer.txt #define beer(x) x bottles of \ beer on the wall... beer(99) beer(98) beer(97)... cpp -P beer.txt
48 output: 99 bottles of beer on the wall bottles of beer on the wall bottles of beer on the wall cpp -P beer.txt
49 answer.txt What s 7 times 6? #ifdef REVEAL 42 #endif cpp -P answer.txt
50 output: What s 7 times 6? cpp -P answer.txt
51 output: What s 7 times 6???? cpp -P answer.txt
52 #define REVEAL cpp -P answer.txt
53 #define REVEAL or: cpp -P -D REVEAL answer.txt cpp -P answer.txt
54 output: What s 7 times 6? 42 cpp -P -D REVEAL answer.txt
55 answer.txt What s 7 times 6? #ifndef REVEAL 42 #endif cpp -P answer.txt
56 (Fancy) String Substitution
57 How is this used in C?
58 hello.c #include <stdio.h> int main() { printf("hello, World!\n"); return 0; } gcc -E hello.c
59 hello.c * angle brackets -> use the system search path #include <stdio.h> int main() { printf("hello, World!\n"); return 0; } gcc -E hello.c
60 hello.c * angle brackets -> use the system search path #include <stdio.h> int main() { printf("hello, World!\n"); return 0; } gcc -E hello.c
61 output: int printf(const char *,...) attribute (( format ( printf, 1, 2))); int main() { } printf("hello, World!\n"); * pretending printf is all that s defined in stdio.h gcc -E hello.c
62 output: int printf(const char *,...); int main() { } printf("hello, World!\n"); * pretending printf is all that s defined in stdio.h gcc -E hello.c
63 #include is not import pickle import java.io.*;
64 fib.c #define MAX_FIB 20 int fib[max_fib]; int main() { fib[0] = 0; fib[1] = 1; for(int i = 2; i < MAX_FIB; i++) fib[i] = fib[i-1] + fib[i-2]; return 0; } gcc -E fib.c
65 output: int fib[20]; int main() { fib[0] = 0; fib[1] = 1; for(int i = 2; i < 20; i++) fib[i] = fib[i-1] + fib[i-2]; } gcc -E fib.c
66 debug.c #include <stdio.h> int main() { #ifdef DEBUG printf("hello, World!\n"); #endif return 0; } gcc -DDEBUG debug.c -o debug
67 debug.c #include <stdio.h> int main() { printf("hello, World!\n"); return 0; } gcc -DDEBUG debug.c -o debug
68 debug.c #include <stdio.h> int main() { } return 0; gcc debug.c -o debug
69 Pre-Process Compile Link
70 main.c main.o prog int a = 1; int a = 1; Compile
71 Compile Type-checking Linear processing
72 Type-checking int reptile() { } return "frog";
73 Type-checking int reptile() { } return "frog"; reptile.c: In function reptile : reptile.c:2:5: warning: return makes integer from pointer without a cast
74 Type-checking def vegetable(day): if day!= "Tuesday": return "tomato" else: return 1000
75 Type-checking def vegetable(day): if day!= "Tuesday": return "tomato" else: return 1000 Python says: no problem
76 int reptile() { } return "frog";
77 int () { } return char*;
78 int vegetable(char *day) { if (strcmp(day, "Tuesday")!= 0){ return "tomato"; } else { return 1000; } }
79 int (char*) { if (int){ return char*; } else { return int; } }
80 int (char*) { if (int){ return char*; } else { return int; } }
81 int (char*) { if (int){ return char*; } else { return int; } }
82 Everything has a single, fixed type
83 def foo(a, b): return a + b foo(2, 3) foo("2", "3")
84 Variable Declarations int foo; float foo; double foo; char foo; int foo[42]; int *foo; struct Bar foo;
85 Function Declarations double fmin(double, double); return type argument types
86 Function Declarations void exit(int); returns nothing int rand(void); takes no arguments
87 int foo(int a, int b){ } return a + b;
88 reptile.c: In function reptile : reptile.c:2:5: warning: return makes integer from pointer without a cast
89 reptile.c: In function reptile : reptile.c:2:5: warning: return makes integer from pointer without a cast int a = 4; float b = (float)a;
90 all theoretical casts int float double char int[] int* void (*f )(int) struct X int float double char int[] int* void (*f )(int) struct X
91 allowed casts int float double char int[] int* void (*f )(int) struct X int float double char int[] int* void (*f )(int) struct X
92 allowed casts int float double char int[] int* void (*f )(int) struct X int float double char int[] int* void (*f )(int) struct X
93 allowed casts int float double char int[] int* void (*f )(int) struct X int float double char int[] int* void (*f )(int) struct X
94 allowed casts int float double char int[] int* void (*f )(int) struct X int float double char int[] int* void (*f )(int) struct X
95 implicit casts int float double char int[] int* void (*f )(int) struct X int float double char int[] int* void (*f )(int) struct X
96 implicit casts int float double char int[] int* void (*f )(int) struct X int float double char int[] int* void (*f )(int) struct X
97 implicit casts int float double char int[] int* void (*f )(int) struct X int float double char int[] int* void (*f )(int) struct X
98 implicit casts int float double char int[] int* void (*f )(int) struct X int float double char int[] int* void (*f )(int) struct X
99 Compile Type-checking Linear processing
100 Linear processing ( just a small note)
101 You can only use what s declared above
102 int main() { printf("%d\n", answer()); return 0; } int answer() { } return 1337;
103 int main() { printf("%d\n", answer()); return 0; } int answer() { } return 1337;
104 int answer() { } return 1337; int main() { printf("%d\n", answer()); return 0; }
105 int answer(); declaration int main() { printf("%d\n", answer()); return 0; } int answer() { definition return 1337; }
106 HMM
107 int answer(); declaration int main() { printf("%d\n", answer()); return 0; } int answer() { definition return 1337; }
108 int answer(); declaration int main() { printf("%d\n", answer()); return 0; } int answer() { definition return 1337; }
109 int answer(); declaration #include "answer.h" int main() { printf("%d\n", answer()); return 0; } int answer() { definition return 1337; }
110 Pre-Process Compile Link
111 main.o int main() int answer()
112 main.o int main()
113 answer.c: In function main : answer.c:4: warning: implicit declaration of function answer Undefined symbols for architecture x86_64: "_answer", referenced from: _main in ccuzmrrm.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status
114 answer.c: In function main : answer.c:4: warning: implicit declaration of function answer Undefined symbols for architecture x86_64: "_answer", referenced from: _main in ccuzmrrm.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status
115 answer.c: In function main : answer.c:4: warning: implicit declaration of function answer Undefined symbols for architecture x86_64: "_answer", referenced from: _main in ccuzmrrm.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status Compiler: I don t know what answer is. I ll assume it returns an int.
116 answer.c: In function main : answer.c:4: warning: implicit declaration of function answer Undefined symbols for architecture x86_64: "_answer", referenced from: _main in ccuzmrrm.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status
117 answer.c: In function main : answer.c:4: warning: implicit declaration of function answer Undefined symbols for architecture x86_64: "_answer", referenced from: _main in ccuzmrrm.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status Linker: I looked in all the object files, but I couldn t find answer.
118 main.o int main()
119 main.o answer.o int main() int answer()
120 main.o answer.o int main() int answer() int main() { printf("%d\n", answer()); return 0; } int answer() { return 1337; }
121 main.o answer.o int main() int answer()
122 prog int main() int answer() gcc -o prog main.c answer.c
123 answer.c: In function main : answer.c:4: warning: implicit declaration of function answer
124 answer.c: In function main : answer.c:4: warning: implicit declaration of function answer Compiler: I don t know what answer is. I ll assume it returns an int.
125 answer.h int answer(); main.c #include "answer.h" int main() { printf("%d\n", answer()); return 0; }
126 answer.h int answer(); answer.c #include "answer.h" int answer() { } return 1337;
127 Summary
128 answer.h int answer(); main.c #include "answer.h" int main() { printf("%d\n", answer()); return 0; }
129 Preprocess: gcc -E main.c int answer(); int main() { printf("%d\n", answer()); return 0; }
130 Compile: gcc -c main.c main.c main.o answer.o
131 Link: gcc -o prog main.o main.o prog
132 Pre-Process Compile Link
133 Slides & Further Reading web.mit.edu/6.s096/
134 Registration, Wait List Stellar Grading: -,, + or better passes 70% assignments, 30% project
135
136
137
1 You seek performance 3
Why? 2 1 You seek performance 3 1 You seek performance zero-overhead principle 4 2 You seek to interface directly with hardware 5 3 That s kinda it 6 C a nice way to avoid writing assembly language directly
More informationCompiler Theory. (GCC the GNU Compiler Collection) Sandro Spina 2009
Compiler Theory (GCC the GNU Compiler Collection) Sandro Spina 2009 GCC Probably the most used compiler. Not only a native compiler but it can also cross-compile any program, producing executables for
More information#include <stdio.h> int main() { printf ("hello class\n"); return 0; }
C #include int main() printf ("hello class\n"); return 0; Working environment Linux, gcc We ll work with c9.io website, which works with ubuntu I recommend to install ubuntu too Also in tirgul
More informationCS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco
CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level
More informationOutline. Lecture 1 C primer What we will cover. If-statements and blocks in Python and C. Operators in Python and C
Lecture 1 C primer What we will cover A crash course in the basics of C You should read the K&R C book for lots more details Various details will be exemplified later in the course Outline Overview comparison
More informationPRINCIPLES OF OPERATING SYSTEMS
PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)
More informationCS Basics 15) Compiling a C prog.
CS Basics 15) Compiling a C prog. Emmanuel Benoist Fall Term 2016-17 Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 1 Compiling a C program Example of a small
More informationBerner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2
Compiling a C program CS Basics 15) Compiling a C prog. Emmanuel Benoist Fall Term 2016-17 Example of a small program Makefile Define Variables Compilation options Conclusion Berner Fachhochschule Haute
More informationCS 220: Introduction to Parallel Computing. Beginning C. Lecture 2
CS 220: Introduction to Parallel Computing Beginning C Lecture 2 Today s Schedule More C Background Differences: C vs Java/Python The C Compiler HW0 8/25/17 CS 220: Parallel Computing 2 Today s Schedule
More informationCS240: Programming in C. Lecture 2: Overview
CS240: Programming in C Lecture 2: Overview 1 Programming Model How does C view the world? Stack Memory code Globals 2 Programming Model Execution mediated via a stack function calls and returns local
More informationModifiers. int foo(int x) { static int y=0; /* value of y is saved */ y = x + y + 7; /* across invocations of foo */ return y; }
Modifiers unsigned. For example unsigned int would have a range of [0..2 32 1] on a 32-bit int machine. const Constant or read-only. Same as final in Java. static Similar to static in Java but not the
More informationTopic 6: A Quick Intro To C
Topic 6: A Quick Intro To C Assumption: All of you know Java. Much of C syntax is the same. Also: Many of you have used C or C++. Goal for this topic: you can write & run a simple C program basic functions
More informationC: Program Structure. Department of Computer Science College of Engineering Boise State University. September 11, /13
Department of Computer Science College of Engineering Boise State University September 11, 2017 1/13 Scope Variables and functions are visible from the point they are defined until the end of the source
More informationTutorial 1: Introduction to C Computer Architecture and Systems Programming ( )
Systems Group Department of Computer Science ETH Zürich Tutorial 1: Introduction to C Computer Architecture and Systems Programming (252-0061-00) Herbstsemester 2012 Goal Quick introduction to C Enough
More informationcs3157: another C lecture (mon-21-feb-2005) C pre-processor (3).
cs3157: another C lecture (mon-21-feb-2005) C pre-processor (1). today: C pre-processor command-line arguments more on data types and operators: booleans in C logical and bitwise operators type conversion
More informationP.G.TRB - COMPUTER SCIENCE. c) data processing language d) none of the above
P.G.TRB - COMPUTER SCIENCE Total Marks : 50 Time : 30 Minutes 1. C was primarily developed as a a)systems programming language b) general purpose language c) data processing language d) none of the above
More informationBasic C Programming. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island
Basic C Programming Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Announcements Exam 1 (20%): Feb. 27 (Tuesday) Tentative Proposal Deadline:
More informationDesign and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso
Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso Why C? Test on 21 Android Devices with 32-bits and 64-bits processors and different versions
More informationTopic 6: A Quick Intro To C. Reading. "goto Considered Harmful" History
Topic 6: A Quick Intro To C Reading Assumption: All of you know basic Java. Much of C syntax is the same. Also: Some of you have used C or C++. Goal for this topic: you can write & run a simple C program
More informationSlide Set 5. for ENCM 339 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary
Slide Set 5 for ENCM 339 Fall 2016 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary October 2016 ENCM 339 Fall 2016 Slide Set 5 slide 2/32
More informationC-Programming. CSC209: Software Tools and Systems Programming. Paul Vrbik. University of Toronto Mississauga
C-Programming CSC209: Software Tools and Systems Programming Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Adapted from Dan Zingaro s 2015 slides. Week 2.0 1 / 19 What
More information2 Compiling a C program
2 Compiling a C program This chapter describes how to compile C programs using gcc. Programs can be compiled from a single source file or from multiple source files, and may use system libraries and header
More informationLectures 5-6: Introduction to C
Lectures 5-6: Introduction to C Motivation: C is both a high and a low-level language Very useful for systems programming Faster than Java This intro assumes knowledge of Java Focus is on differences Most
More informationDeep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems
Deep C Multifile projects Getting it running Data types Typecasting Memory management Pointers Fabián E. Bustamante, Fall 2004 Multifile Projects Give your project a structure Modularized design Reuse
More informationCS240: Programming in C
CS240: Programming in C Lecture 2: Hello World! Cristina Nita-Rotaru Lecture 2/ Fall 2013 1 Introducing C High-level programming language Developed between 1969 and 1973 by Dennis Ritchie at the Bell Labs
More informationChapter 11 Introduction to Programming in C
C: A High-Level Language Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University Gives
More informationCS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor
CS 261 Fall 2017 Mike Lam, Professor C Introduction Variables, Memory Model, Pointers, and Debugging The C Language Systems language originally developed for Unix Imperative, compiled language with static
More informationLectures 5-6: Introduction to C
Lectures 5-6: Introduction to C Motivation: C is both a high and a low-level language Very useful for systems programming Faster than Java This intro assumes knowledge of Java Focus is on differences Most
More informationCS3157: Advanced Programming. Outline
CS3157: Advanced Programming Lecture #8 Feb 27 Shlomo Hershkop shlomo@cs.columbia.edu 1 Outline More c Preprocessor Bitwise operations Character handling Math/random Review for midterm Reading: k&r ch
More informationKurt Schmidt. October 30, 2018
to Structs Dept. of Computer Science, Drexel University October 30, 2018 Array Objectives to Structs Intended audience: Student who has working knowledge of Python To gain some experience with a statically-typed
More informationRicardo Rocha. Department of Computer Science Faculty of Sciences University of Porto
Ricardo Rocha Department of Computer Science Faculty of Sciences University of Porto Adapted from the slides Revisões sobre Programação em C, Sérgio Crisóstomo Compilation #include int main()
More information0x0d2C May your signals all trap May your references be bounded All memory aligned Floats to ints round. remember...
Types Page 1 "ode to C" Monday, September 18, 2006 4:09 PM 0x0d2C ------ May your signals all trap May your references be bounded All memory aligned Floats to ints round remember... Non -zero is true ++
More informationFormal Methods for C
Formal Methods for C Seminar Summer Semester 2014 Daniel Dietsch, Sergio Feo Arenis, Marius Greitschus, Bernd Westphal 2014-04 main Content Brief history Comments Declarations and Scopes Variables Expressions
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified by Chris Wilcox, Yashwant Malaiya Colorado State University C: A High-Level Language
More informationC introduction: part 1
What is C? C is a compiled language that gives the programmer maximum control and efficiency 1. 1 https://computer.howstuffworks.com/c1.htm 2 / 26 3 / 26 Outline Basic file structure Main function Compilation
More informationA Fast Review of C Essentials Part II
A Fast Review of C Essentials Part II Structural Programming by Z. Cihan TAYSI Outline Macro processing Macro substitution Removing a macro definition Macros vs. functions Built-in macros Conditional compilation
More informationAgenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures
The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF
More informationEL2310 Scientific Programming
(yaseminb@kth.se) Overview Overview Roots of C Getting started with C Closer look at Hello World Programming Environment Discussion Basic Datatypes and printf Schedule Introduction to C - main part of
More informationThe C standard library
C introduction The C standard library The C standard library 1 / 12 Contents Do not reinvent the wheel Useful headers Man page The C standard library 2 / 12 The Hitchhiker s Guide to the standard library
More informationProgram Translation. text. text. binary. binary. C program (p1.c) Compiler (gcc -S) Asm code (p1.s) Assembler (gcc or as) Object code (p1.
Program Translation Compilation & Linking 1 text C program (p1.c) Compiler (gcc -S) text Asm code (p1.s) binary binary Assembler (gcc or as) Object code (p1.o) Linker (gccor ld) Executable program (p)
More informationProgramming in C - Part 2
Programming in C - Part 2 CPSC 457 Mohammad Reza Zakerinasab May 11, 2016 These slides are forked from slides created by Mike Clark Where to find these slides and related source code? http://goo.gl/k1qixb
More informationCSCI 2132 Software Development. Lecture 8: Introduction to C
CSCI 2132 Software Development Lecture 8: Introduction to C Instructor: Vlado Keselj Faculty of Computer Science Dalhousie University 21-Sep-2018 (8) CSCI 2132 1 Previous Lecture Filename substitution
More informationCSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community
CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu History and Evolution of Programming Languages 1. Explain the relationship between machine
More informationC - Basics, Bitwise Operator. Zhaoguo Wang
C - Basics, Bitwise Operator Zhaoguo Wang Java is the best language!!! NO! C is the best!!!! Languages C Java Python 1972 1995 2000 (2.0) Procedure Object oriented Procedure & object oriented Compiled
More informationCSE 374 Programming Concepts & Tools. Brandon Myers Winter 2015 C: Linked list, casts, the rest of the preprocessor (Thanks to Hal Perkins)
CSE 374 Programming Concepts & Tools Brandon Myers Winter 2015 C: Linked list, casts, the rest of the preprocessor (Thanks to Hal Perkins) Linked lists, trees, and friends Very, very common data structures
More informationPROGRAMMAZIONE I A.A. 2017/2018
PROGRAMMAZIONE I A.A. 2017/2018 MODULARIZATION MODULAR PROGRAMMING Modularization is a method to organize large programs in smaller parts, i.e. the modules. Every module has a well defined interface toward
More informationCS 470 Spring Mike Lam, Professor. OpenMP
CS 470 Spring 2017 Mike Lam, Professor OpenMP OpenMP Programming language extension Compiler support required "Open Multi-Processing" (open standard; latest version is 4.5) Automatic thread-level parallelism
More informationELEC 377 C Programming Tutorial. ELEC Operating Systems
ELE 377 Programming Tutorial Outline! Short Introduction! History & Memory Model of! ommon Errors I have seen over the years! Work through a linked list example on the board! - uses everything I talk about
More informationC Review. MaxMSP Developers Workshop Summer 2009 CNMAT
C Review MaxMSP Developers Workshop Summer 2009 CNMAT C Syntax Program control (loops, branches): Function calls Math: +, -, *, /, ++, -- Variables, types, structures, assignment Pointers and memory (***
More informationOregon State University School of Electrical Engineering and Computer Science. CS 261 Recitation 2. Spring 2016
Oregon State University School of Electrical Engineering and Computer Science CS 261 Recitation 2 Spring 2016 Outline Programming in C o Headers o Structures o Preprocessor o Pointers Programming Assignment
More informationConduite de Projet Cours 4 The C build process
Conduite de Projet Cours 4 The C build process Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire IRIF, Université Paris Diderot 2016 2017 URL http://upsilon.cc/zack/teaching/1617/cproj/ Copyright
More informationThe C Preprocessor (and more)!
The C Preprocessor (and more)! Peter Kristensen 2012-11-19 Peter Kristensen The C Preprocessor (and more)! Outline 1 C Pre Processor Compiler Assembler Linker Frontend 2 Simple directives Headers Macros
More informationC Introduction. Comparison w/ Java, Memory Model, and Pointers
CS 261 Fall 2018 Mike Lam, Professor C Introduction Comparison w/ Java, Memory Model, and Pointers Please go to socrative.com on your phone or laptop, choose student login and join room LAMJMU The C Language
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University C: A High-Level Language! Gives
More informationFollow us on Twitter for important news and Compiling Programs
Follow us on Twitter for important news and updates: @ACCREVandy Compiling Programs Outline Compiling process Linking libraries Common compiling op2ons Automa2ng the process Program compilation Programmers
More informationECEN 449 Microprocessor System Design. Review of C Programming. Texas A&M University
ECEN 449 Microprocessor System Design Review of C Programming 1 Objectives of this Lecture Unit Review C programming basics Refresh programming skills 2 Basic C program structure # include main()
More informationCMPE-013/L. Introduction to C Programming
CMPE-013/L Introduction to C Programming Bryant Wenborg Mairs Spring 2014 What we will cover in 13/L Embedded C on a microcontroller Specific issues with microcontrollers Peripheral usage Reading documentation
More informationOutline. Compiling process Linking libraries Common compiling op2ons Automa2ng the process
Compiling Programs Outline Compiling process Linking libraries Common compiling op2ons Automa2ng the process Program compilation Programmers usually writes code in high- level programming languages (e.g.
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C 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
More informationCSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Introduction to C. Winter 2019
CSCI 2132: Software Development Introduction to C Norbert Zeh Faculty of Computer Science Dalhousie University Winter 2019 The C Programming Language Originally invented for writing OS and other system
More informationA software view. Computer Systems. The Compilation system. How it works. 1. Preprocesser. 1. Preprocessor (cpp)
A software view User Interface Computer Systems MTSU CSCI 3240 Spring 2016 Dr. Hyrum D. Carroll Materials from CMU and Dr. Butler How it works hello.c #include int main() { printf( hello, world\n
More informationChapter 11 Introduction to Programming in C
C: A High-Level Language Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University! Gives
More informationIntermediate Programming, Spring 2017*
600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general
More informationCGS 3460 Summer 07 Midterm Exam
Short Answer 3 Points Each 1. What would the unix command gcc somefile.c -o someotherfile.exe do? 2. Name two basic data types in C. 3. A pointer data type holds what piece of information? 4. This key
More informationFinal CSE 131B Spring 2004
Login name Signature Name Student ID Final CSE 131B Spring 2004 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 (25 points) (24 points) (32 points) (24 points) (28 points) (26 points) (22 points)
More informationProgram Translation. text. text. binary. binary. C program (p1.c) Compiler (gcc -S) Asm code (p1.s) Assembler (gcc or as) Object code (p1.
Program Translation Compilation & Linking 1 text C program (p1.c) Compiler (gcc -S) text Asm code (p1.s) binary binary Assembler (gcc or as) Object code (p1.o) Linker (gcc or ld) Executable program (p1)
More information211: Computer Architecture Summer 2016
211: Computer Architecture Summer 2016 Liu Liu Topic: C Programming Structure: - header files - global / local variables - main() - macro Basic Units: - basic data types - arithmetic / logical / bit operators
More informationBasic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island
Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Data Types Basic Types Enumerated types The type void Derived types
More informationCSE 333 Lecture 7 - final C details
CSE 333 Lecture 7 - final C details Steve Gribble Department of Computer Science & Engineering University of Washington Today s topics: - a few final C details header guards and other preprocessor tricks
More informationIntroduction to Supercomputing
Introduction to Supercomputing TMA4280 Introduction to UNIX environment and tools 0.1 Getting started with the environment and the bash shell interpreter Desktop computers are usually operated from a graphical
More informationIntroduction to C CMSC 104 Spring 2014, Section 02, Lecture 6 Jason Tang
Introduction to C CMSC 104 Spring 2014, Section 02, Lecture 6 Jason Tang Topics History of Programming Languages Compilation Process Anatomy of C CMSC 104 Coding Standards Machine Code In the beginning,
More informationFinal C Details. CSE 333 Autumn 2018
Final C Details CSE 333 Autumn 2018 Instructor: Hal Perkins Teaching Assistants: Tarkan Al-Kazily Renshu Gu Trais McGaha Harshita Neti Thai Pham Forrest Timour Soumya Vasisht Yifan Xu Administriia Today:
More informationC Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006
C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30
More informationHello, World! in C. Johann Myrkraverk Oskarsson October 23, The Quintessential Example Program 1. I Printing Text 2. II The Main Function 3
Hello, World! in C Johann Myrkraverk Oskarsson October 23, 2018 Contents 1 The Quintessential Example Program 1 I Printing Text 2 II The Main Function 3 III The Header Files 4 IV Compiling and Running
More informationCSE 351. Introduction & Course Tools
CSE 351 Introduction & Course Tools Meet Your TA TA Name Interesting information examples: Where you are from Year in school Hobbies Unique talents Introductions Pick an interesting (but quick) ice breaker
More informationFunctions. Cedric Saule
Cedric Saule cedric.saule@uni-bielefeld.de or procedures? In algorithmic (and some programming languages), we use two kinds of unconditional branchings : Procedures : execute computations and do not return
More informationCMPSC 311- Introduction to Systems Programming Module: Build Processing
CMPSC 311- Introduction to Systems Programming Module: Build Processing Professor Patrick McDaniel Fall 2014 UNIX Pipes Pipes are ways of redirecting the output of one command to the input of another Make
More informationC Programming Review CSC 4320/6320
C Programming Review CSC 4320/6320 Overview Introduction C program Structure Keywords & C Types Input & Output Arrays Functions Pointers Structures LinkedList Dynamic Memory Allocation Macro Compile &
More informationCourse Information and Introduction
August 22, 2017 Course Information 1 Instructors : Email : arash.rafiey@indstate.edu Office : Root Hall A-127 Office Hours : Tuesdays 11:30 pm 12:30 pm. Root Hall, A127. 2 Course Home Page : http://cs.indstate.edu/~arash/cs256.html
More informationEL2310 Scientific Programming
Lecture 6: Introduction to C (pronobis@kth.se) Overview Overview Lecture 6: Introduction to C Roots of C Getting started with C Closer look at Hello World Programming Environment Schedule Last time (and
More informationRunning a C program Compilation Python and C Variables and types Data and addresses Functions Performance. John Edgar 2
CMPT 125 Running a C program Compilation Python and C Variables and types Data and addresses Functions Performance John Edgar 2 Edit or write your program Using a text editor like gedit Save program with
More informationDraft. Chapter 1 Program Structure. 1.1 Introduction. 1.2 The 0s and the 1s. 1.3 Bits and Bytes. 1.4 Representation of Numbers in Memory
Chapter 1 Program Structure In the beginning there were 0s and 1s. GRR 1.1 Introduction In this chapter we will talk about memory: bits, bytes and how data is represented in the computer. We will also
More informationC Language Summary. Chris J Michael 28 August CSC 4103 Operating Systems Fall 2008 Lecture 2 C Summary
Chris J Michael cmicha1@lsu.edu 28 August 2008 C Language Summary Heavily Influenced by the GNU C Reference Manual: http://www.gnu.org/software/gnu-c-manual/ Introduction -C98, or the original ANSI C standard
More informationBLM2031 Structured Programming. Zeyneb KURT
BLM2031 Structured Programming Zeyneb KURT 1 Contact Contact info office : D-219 e-mail zeynebkurt@gmail.com, zeyneb@ce.yildiz.edu.tr When to contact e-mail first, take an appointment What to expect help
More informationA Fast Review of C Essentials Part I
A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C 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
More informationContinue: How do I learn C? C Primer Continued (Makefiles, debugging, and more ) Last Time: A Simple(st) C Program 1-hello-world.c!
Continue: How do I learn C? C Primer Continued (Makefiles, debugging, and more ) Hello Word! ~/ctest/ In addition to syntax you need to learn: the Tools the Libraries. And the Documentation. Maria Hybinette,
More informationECEN 449 Microprocessor System Design. Review of C Programming
ECEN 449 Microprocessor System Design Review of C Programming 1 Objectives of this Lecture Unit Review C programming basics Refresh es programming g skills s 2 1 Basic C program structure # include
More informationIntermediate Programming, Spring 2017*
600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general
More informationIntroduction to C. Robert Escriva. Cornell CS 4411, August 30, Geared toward programmers
Introduction to C Geared toward programmers Robert Escriva Slide heritage: Alin Dobra Niranjan Nagarajan Owen Arden Cornell CS 4411, August 30, 2010 1 Why C? 2 A Quick Example 3 Programmer s Responsibilities
More informationQUIZ. What are 3 differences between C and C++ const variables?
QUIZ What are 3 differences between C and C++ const variables? Solution QUIZ Source: http://stackoverflow.com/questions/17349387/scope-of-macros-in-c Solution The C/C++ preprocessor substitutes mechanically,
More informationVariables Data types Variable I/O. C introduction. Variables. Variables 1 / 14
C introduction Variables Variables 1 / 14 Contents Variables Data types Variable I/O Variables 2 / 14 Usage Declaration: t y p e i d e n t i f i e r ; Assignment: i d e n t i f i e r = v a l u e ; Definition
More informationReliable C++ development - session 1: From C to C++ (and some C++ features)
Reliable C++ development - session 1: From C to C++ (and some C++ features) Thibault CHOLEZ - thibault.cholez@loria.fr TELECOM Nancy - Université de Lorraine LORIA - INRIA Nancy Grand-Est From Nicolas
More informationFrom Java to C. Thanks to Randal E. Bryant and David R. O'Hallaron (Carnegie-Mellon University) for providing the basis for these slides
From Java to C Thanks to Randal E. Bryant and David R. O'Hallaron (Carnegie-Mellon University) for providing the basis for these slides 1 Outline Overview comparison of C and Java Good evening Preprocessor
More informationCMPT 115. C tutorial for students who took 111 in Java. University of Saskatchewan. Mark G. Eramian, Ian McQuillan CMPT 115 1/32
CMPT 115 C tutorial for students who took 111 in Java Mark G. Eramian Ian McQuillan University of Saskatchewan Mark G. Eramian, Ian McQuillan CMPT 115 1/32 Part I Starting out Mark G. Eramian, Ian McQuillan
More informationPage 1. Agenda. Programming Languages. C Compilation Process
EE 472 Embedded Systems Dr. Shwetak Patel Assistant Professor Computer Science & Engineering Electrical Engineering Agenda Announcements C programming intro + pointers Shwetak N. Patel - EE 472 2 Programming
More informationExecutables and Linking. CS449 Spring 2016
Executables and Linking CS449 Spring 2016 Remember External Linkage Scope? #include int global = 0; void foo(); int main() { foo(); printf( global=%d\n, global); return 0; } extern int
More informationAPT Session 4: C. Software Development Team Laurence Tratt. 1 / 14
APT Session 4: C Laurence Tratt Software Development Team 2017-11-10 1 / 14 http://soft-dev.org/ What to expect from this session 1 C. 2 / 14 http://soft-dev.org/ Prerequisites 1 Install either GCC or
More informationCS 470 Spring Mike Lam, Professor. OpenMP
CS 470 Spring 2018 Mike Lam, Professor OpenMP OpenMP Programming language extension Compiler support required "Open Multi-Processing" (open standard; latest version is 4.5) Automatic thread-level parallelism
More information27-Sep CSCI 2132 Software Development Lecture 10: Formatted Input and Output. Faculty of Computer Science, Dalhousie University. Lecture 10 p.
Lecture 10 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lecture 10: Formatted Input and Output 27-Sep-2017 Location: Goldberg CS 127 Time: 14:35 15:25 Instructor:
More information