Chapter 1: Start C-Language How To - PowerPoint PPT Presentation

About This Presentation
Title:

Chapter 1: Start C-Language How To

Description:

Chapter 1: Start C-Language How To Speaker: Lung-Sheng Chien OutLine Course skeleton Introduction of programming language How to use Visual C++ MSDN library Linux ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 71
Provided by: LungShe2
Category:

less

Transcript and Presenter's Notes

Title: Chapter 1: Start C-Language How To


1
Chapter 1 Start C-LanguageHow To
  • Speaker Lung-Sheng Chien

2
OutLine
  • Course skeleton
  • Introduction of programming language
  • How to use Visual C
  • MSDN library
  • Linux machine

3
Schedule July
???? http//www.oz.nthu.edu.tw/d947207/
? ? ? ? ? ? ?
1 2 3 chapter 1 4 Chapter 2 5 Chapter 3
6 Chapter 4 7 8 Chapter 5 9 Chapter 6 10 Chapter 7 11 vim 12
13 14 ??? 15 ??? 16 ??? 17 ??? 18 ??? 19 ???
20 ??? 21 ??? 22 ??? 23 ??? 24 25 26
27 28 Chapter 8 29 Chapter 9 30 Chapter 10 31
4
Workstations we have
IP ?? OS cpu memory
140.114.34.1 R705 Fedora 7 64-bit Intel(R) Xeon(R) CPU X5365 _at_ 3.00GHz , 2 cpu 64 GB
140.114.34.11 R705 Fedora 7 64-bit Intel(R) Core(TM)2 Quad CPU Q6600 _at_ 2.40GHz 8 GB
140.114.34.12 R705 Fedora 7 64-bit Intel(R) Core(TM)2 Quad CPU Q6600 _at_ 2.40GHz 8 GB
140.114.34.13 R705 Fedora 7 64-bit Intel(R) Core(TM)2 Quad CPU Q6600 _at_ 2.40GHz 8 GB
140.114.34.201 R705 RedHat 9 32-bit Intel(R) XEON(TM) CPU 2.20GHz, 2 cpu 4 GB
140.114.34.214 R705 RedHat 9 32-bit Intel(R) Pentium(R) 4 CPU 3.00GHz 2 GB
140.114.34.216 R705 RedHat 9 32-bit Intel(R) Pentium(R) 4 CPU 3.00GHz 2 GB
5
Platform and resource
platform Linux Windows
compiler gcc, g icpc (Intel C compiler) vc 6.0 (Microsoft Visual Studio)
editor vi vc IDE interface
C document ? MSDN Library 2008
GUI support Qt Qt
Makefile generator qmake qmake vc
6
R705 (???) floorplanning
32??-???
64??-???
???
???
115
114
113
???
117
118
119
122
121
120
IP 140.114.34.117 119 are experimental computers
in this course
7
Software list in experimental computer
software description
Visual studio 6.0 Write C/C source code, compile and link
MSDN library 2008 C document
Qt library GUI programming and Makefile generator
ssh secure shell login workstations, it use MD5-encryption for connection
8
What we must learn
???
C- basic skill
Data structure stack, queue, tree
Expression/loop analysis
Networking
FSM (Finite state machine) Regular expression
Matrix class
C (under Qt)
2D image
Multithread technique
3D graphic
Parallel computing
Out-of-core programming
???
9
Topics in C-language
Structure, including stack, queue, tree
I/O, including Terminal, File
Operators, function
C- basic skill
Pointer, array
Primitive data type
Control flow
TextBook The C Programming Language, Kernighan
10
Delivery after this course
  • MATLAB (interpreter), symbolic toolbox
  • 2-Elevators system
  • Out-of-core programming
  • 2D image (image processing), GIS, GRASS
  • 3D graphic (mesh generator), finite element
  • Maze (?????)
  • Prime number
  • Compiler issue, debugger
  • Issue about economy

11
OutLine
  • Course skeleton
  • Introduction of programming language
  • How to use Visual C
  • MSDN Library
  • Linux machine

12
Sorts of Programming Language
  • High-level language (C, C, Java, Fortran,
    Verilog, VHDL, COBOL, ), independent of Machine
  • Low-level language, assembly, depends on
    machines architecture.
  • Machine code, can be executed in cpu.Of course it
    depends on machine architecture.

13
Why not Assembly or Machine code?
  • awkward (??) and low readability
  • Operation is atomic, we need more abstract-like
    programming style
  • Performance is Human-tuning, time-consuming

14
Hierarchical view of Language
Language translator
High-level Language (C, C, Fortran)
High-level Language
Compiler
decompiler
f2c fortran to C is a language translator
Assembly
Assembler
deassembler
Machine code
15
C compiler we will use
Compiler Author Windows Linux
gcc, g GNU yes, with Cygwin yes
Intel C Intel yes yes
Visual Studio Microsoft yes no
16
Phases of a Compiler
Lexical analyzer
Source code
We will cover this technique FSM
Syntax analyzer (????)
Semantic analyzer (????)
Intermediate code generator
Code optimizer
machine code
Code generator
17
Role of Compiler
  • Shorten cycle of development- find the bugs -
    help programmers to write efficient and economic
    codes (relate to what language you use)
  • Optimization, speed, low-power,
  • Code generation

18
Standard of C/C
  • ANSI C is current C-language standard, proposed
    by ANSI (American National Standard Institute
    ???????)
  • Microsoft visual C has additional keywords not in
    C-standard, however this is o.k. if we write C
    codes under standard rule.

19
OutLine
  • Course skeleton
  • Introduction of programming language
  • How to use Visual C- write Hello World
    program
  • MSDN library
  • Linux machine

20
Why visual studio (microsoft)
  • IDE (Integrated Development Environment)??
  • Code editor
  • Project management
  • Debugger weapon for learning C-language

21
??Visual Studio IDE ??
?? ? ??? ? Microsoft Visual Studio 6.0 ?
Microsoft Visual C 6.0
22
Step 1 ??????? (new project)
File ? New
23
Step 2 ?? console???? (????)
2. ????? helloWorld
1. ?Win32 console????
3.???????
24
Step 3 ?????? (??????????)
1. ??????
2. ???????????
25
Click FileView, no files are in this project.
In directory helloWorld, only project related
files exist.
?? FileView
26
Step 4 ???????????
project ? Add to Project ? New
new ?????????????
27
??C ?? main.cpp ????
1. ???????C? ??
2. ???? main,cpp
28
? Source Files ?????? main.cpp
1. ???? main.cpp
2. ???????
29
Step 5 ????????
2. ??
1. Key in ???
Text window
30
Step 6 Compilation (??) translate source code
to object code
1. Build ? Compile main.cpp
2. ??????
31
Step 7 Build (Linking phase, ??) combine
object code into a executable file
  • Build ? Build helloWorld.exe

2. Link ???? message
32
Step 8 Execution (??helloWorld.exe)
1. Build ? Execute helloWorld.exe
2. ????
33
What we have done!
???
Object code by compilation
???? main.cpp
34
Source codes interpretation
A compiler regards characters between / and /
as comments and ignores them.
comments
Include information about standard library Std
standard, io Input/Output
main is a function with 2 arguments and return
integer (int)
Function body
main calls library function printf to print
string constant Hello world into screen
return 0 corresponds to return type int of
main
35
Key sentences
???
????
?? (argument)
???? (prototype)
????
?? (parameter)
???? (definition)
???? printf
???? 0
36
Purpose of include ltstdio.hgt
When compiler read printf("Hello World\n") ,
it would recognize it is a function with function
name printf, then compiler would do type
checking, say one must declare prototype of
function printf first such that compiler can do
type checking.
Example comment include ltstdio.hgt, then
compile again, error occurs
37
???C\Program Files\Microsoft Visual
Studio\VC98\Include?????stdio.h
1. ? stdio.h, ?????? ?
2. ? stdio.h, ??????, ??? Visual Studio????
38
Edit ? Find ? ??printf ? ???? Find Next
3. ????
2. ? printf
1. ? Find
stdio.h ????
39
Find prototype of printf in file stdio.h
Not printf, ? F3 ?????
This is prototype of function printf int
printf(const char , ...)
printf("Hello World\n")
??
Hello World ???, type checking ??
40
Declare prototype of printf before using it
File stdio.h is not included
1. Declare prototype of printf
2. Call function printf
Keywords, ifdef, extern, __cplusplus, are
explained later
41
Error use printf before declaring its
prototype, why?
Compiler does not see any prototype
42
Why function main has no prototype?
  • main is an entry point of program, it is
    unique, say only one main can appear.
  • main has the definition, which is enclosed by a
    pair of brace.

Declare prototype of function main
Definition of main
43
Mismatch between prototype and definition
Prototype of main
Definition of main
Overloaded is a C keyword, we will interpret
later
44
OutLine
  • Course skeleton
  • Introduction of programming language
  • How to use Visual C
  • MSDN library
  • Linux machine

45
MSDN Library
  • MicroSoft Developer Network
  • Includes sample code, technical articles, and
    C/C standard description
  • It is free, you can download it from microsofts
    download center

46
?? MSDN Library
?? ? ???? ? Microsoft Developer Network ? MSDN
Library
1. ??MSDN Library
2. MSDN Library ??
47
?? printf ???? 1
1. ?? search
2. ?? printf ?? enter
4. ?????
3. ????
48
?? printf ???? 2
Example code, you can copy it and test it
Prototype of printf
49
OutLine
  • Course skeleton
  • Introduction of programming language
  • How to use Visual C
  • MSDN library
  • Linux machine- use ssh to login remote machine-
    commands in Linux machine- How to compile

50
?? ssh ???? (MD5 ??)
??? ? SSH Secure Shell ? Secure Shell Client
51
????? 1
?? Quick Connet
52
????? 2
1. ????? IP
3. ?? Connect ??
2. ?????
53
????? 3
???????
54
????? 4
1. ???????
?????? imsl
???? linux
????? imsl
55
Commands in common use
command Description
passwd Change password
pwd Current working directory
ls List all files and subdirectory in current directory
cd Change directory
mkdir Make a new directory
rm Remove a file/directory
top Show process information
cat /proc/cpuinfo Show cpus information
cat /proc/meminfo Show memorys information
uname -a Show machines information
man Look up manual of commands
icc, icpc Intel C/C compiler
gcc, g GNU C/C compiler
which Show full path of commands
56
uname -a
linux.am.nthu.edu.tw domain name
2.4.20-8smp ???? RedHat9 ????
I686 32????, x86_64 64????
57
cat /proc/cpuinfo
1. CPU ? Pentium 4
2. Actual running clock rate
58
cat /proc/meminfo
??????? ? 2GB
?????? 2GB
59
top
??????? ? 2GB
?????? 2GB
60
pwd and ls
1. ??????
2. ??????????
3. ?????
4. ?? pwd ??
61
mkdir
1. ??????? course
????
62
cd
1. ????? course
2. ??????
3. ?? course ???
2. cd .. ??????, ??????
63
Compilericpc, gcc
????
????
64
which
1. Full path of command icpc
2. Full path of gcc
3. ? icpc ????
4. icpc ?????
65
?? sftp ???? 1
1. ????? sftp
sftp (secure ftp) window
2. ???? course???
66
?? sftp ???? 2
????????? helloWorld?????
67
?? sftp ???? 3
??????
68
???? 1
1. ???? course
2. ???? helloWorld
3. ?? main.cpp ????? a.out
4. ?? a.out
69
???? 2
1. ?? a.out
2. ? g ??
3. ?? a.out
4. ????
70
passwd ???
1. ???????, ?entrer
2. ?????, ?enter
3. ????????, ?enter
Write a Comment
User Comments (0)
About PowerShow.com