Presentation is loading. Please wait.

Presentation is loading. Please wait.

제 7 강 C언어의 기본 구문(Syntax).

Similar presentations


Presentation on theme: "제 7 강 C언어의 기본 구문(Syntax)."— Presentation transcript:

1 제 7 강 C언어의 기본 구문(Syntax)

2 개요 C언어 프로그램의 기본 구성 문법

3 실습 directory mkdir lab07 cd lab07

4 언어 ? 言語 Language main(){ printf("Hello"); } 컴파일러 source program source code machine code

5 자연 언어 Alphabet: a,b,c,d,…, A,B, ㄱ,ㄴ,ㄷ,ㅏ,ㅕ 구두점, 특수 기호: ~!@#$%^&*().,;:
단어: 대한민국, America, soccer 문장: “오늘은 월드컵 4강 경기가 있는 날입니다.” 글: 관련된 여러 문장의 순서적 모임

6 프로그래밍 언어 alphabet: a,b,c,d,…A,B,C,D C언어에서 한글은 되지 않음.
특수 기호: ~&*%.;:"’\ etc. token: 독립된 의미를 가진 최소 단위 korea, i, number_1, &, ;, etc. sentences: 컴퓨터에게 완전한 하나의 동작을 지시 program: 프로그래머가 원하는 일 (task)을 완성하도록 여러 개의 문장으로 구성함.

7 자연어와 C언어 알파벳: 유사함 구두점, 특수 기호: 유사 단어 : 토큰 문장:문장 글: 프로그램

8 소스 코드에 사용하는 글자 set 26x2 alphabet A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Numerals 29 graphic characters ! " # % & ’ ( ) * + , - . / : ; < = > ? [ \ ] ˆ _ { | } ˜ 폰트에 따라 \ 대신 \ 로 보이기도 함

9 Quiz 07_01

10 영어의 구문 규칙 <sentence>  <noun_phrase> <verb_phrase>
<noun_phrase>  <determiner> <noun> | <pronoun> | <proper noun> <verb_phrase>  <verb> | <verb ><noun_phrase> <verb>  go | kick | … <determiner>  a | the <noun>  table | ball | … <pronoun>  I | he | they <proper noun>  Sandra | Boa |

11 문장 생성의 예 <S>  <NP> <VP>
 <pronoun> <VP>  He <VP>  He <V> <NP>  He kicked <NP>  He kicked <Det> <N>  He kicked the <N>  He kicked the ball

12 실습 (lab07_01) 아래 문법을 이용하여 “I love Boa” 라는 문장을 생성해보라 파일명 sentence.txt
<S>  <NP> <VP> <NP>  <Det> <N> | <pronoun> | <proper noun> <VP>  <V> | <V> <NP> <V>  go | kick | love | … <Det>  a | the <N>  table | ball | … <pronoun>  I | he | they <proper noun>  Sandra | Boa |

13 C 언어의 구문 규칙 예제 letter_or_digit - letter_or_digit ::= letter |digit
- letter ::= lowercase_letter|uppercase_letter - lowercase_letter ::= a | b | c | ... | z - uppercase_letter ::= A | B | C | ... | Z - digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 identifier ::= (letter | underscore) {letter_or_digit}* underscore ::= _

14 C언어의 구문 규칙 (예제) 다음중 이름(identifier)으로서 사용될 수 없는 것은? A 점수 1_AB _the_new_value_is AB and CD -value

15 예약어(keyword)

16 Quiz 07_02

17 C언어의 구문 규칙: 상수(constant)
정수: 0, 1, , 실수: 0.12, , , E23 문자: ’a’ ’1’ ’$’ 문자열: "hello" "this is a sample"

18 띄어쓰기 자연언어: 단어와 단어는 띄어쓴다. 인용 부호 내에서는 예외이다. I love Korea (O) Ilove Korea (X) "Ilove Korea"는 틀렸다 (O) C언어: 토큰과 토큰은 띄어 쓴다. 단 문맥으로 보아 구분이 명확한 것은 붙여써도 상관없다. int main ( ) { printf ("Hello") ; } int main(){printf("Hello");}

19 Hello world의 분석 #include <stdio.h> /*
* programmed by Sehyeong Cho */ int main( ) { // printf prints to the screen printf("안녕하세요.\n"); } Token 찾아 보기 블랭크 집어 넣기 줄 바꾸어 보기

20 전처리 명령 preprocessing directives #include ... #if ... #define ...
컴파일러가 처리하기 전에 text로서 대체됨

21 실습(lab07_02) 앞의 프로그램을 두개의 파일 hello2.c와 hello2.h로 나눈다.
#include <stdio.h> main(){ #include "hello2.h" } hello2.h에 들어갈 내용: printf("Hello, world\n"); gcc hello2.c로 컴파일하여 실행하여보라.

22 Comments Surrounded by /* and */ Not effective if surrounded by " "
"Hello /* there */" Cannot surround another comment /* /* Comment1 */ /* Comment2 */ */ Single line comment: //

23 실습(lab07_03) Single line comment 파일명: comment.c
hello.c와 동일한 내용의 파일을 작성하되, comment를 모두 single-line comment로 바꾼다. 또, single-line comment는 multi-line comment (/* ... */)로 바꾼다. 컴파일, 수행하여 이상 없음을 확인하고 제출. 제한 시간: 2분

24 문자열(string) 상수 문자열 상수 내 줄바꿈 불가 또는 비권장 "This is a wrong example"
"This is a right\n example" "(double quote)와 ’(single quote)는 다름. 문자열 내에 "을 넣으려면? "He said, \"yes\"." 문자열 내에 \을 넣으려면? "Backslash is \\" 너무 길어서 어쩔 수 없이 줄을 바꾼다면? "This is a really long line of string,\ and I used two lines to write it."

25 examples main(){ printf("Hello, world"); printf("안녕하세요.\n");
everyone."); }  출력 결과는? Hello, world안녕하세요. Hello, everyone.

26 lab07_04 다음의 프로그램을 수정하여 올바르게 만들어 실행하여보고 제출하라.(hello3.c)
#include <stdio.h> main( ) { // printf prints to the screen printf(’안녕하세요.\n’); }

27 lab07_05 다음과 같은 출력을 하는 프로그램을 작성하라. print.c 출력 결과: He said, "Yes."

28 lab07_06 다음과 같은 형태의 출력을 하는 프로그램을 작성하라. 파일: print2.c
출력 결과: 따옴표는 \” 을, backslash는 \\ 을, 줄바꿈을 하려면 \n을 사용하면 출력할 수 있다.

29 Indentation (들여쓰기) #include <stdio.h> /*
* programmed by Sehyeong Cho */ int main( ){ // printf prints to the screen printf("안녕하세요.\n"); }

30 Windows programmers #include <stdio.h> /*
* programmed by Sehyeong Cho */ main( ) { // printf prints to the screen printf("안녕하세요.\n"); }

31 Bad indentation style:an example
#include <stdio.h> /* * programmed by Sehyeong Cho */ main( ) { // printf prints to the screen printf("안녕하세요.\n"); }

32 Summary 구문 규칙 해독 방법 comment /* */ // 문자열(string)
전처리기 indentation

33 제 7 강 끝.


Download ppt "제 7 강 C언어의 기본 구문(Syntax)."

Similar presentations


Ads by Google