3주 강의 Lexical Elements, Operators, and the C System

Slides:



Advertisements
Similar presentations
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Advertisements

C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
컴파일러 입문 제 5 장 Context-Free 문법.
제 3 장 변수와 자료형.
제 1장 C 언어의 소개.
C 언어 문자 집합과 토큰 C 프로그램의 구조 C 소스 코딩을 준비하는 방법
1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System
강좌명 : C++프로그래밍 (C++ Programming)
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
4장 구문(Syntax).
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
4장: 자료형과 수식.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
프로그래밍언어론 2nd edition Tucker and Noonan
3장 (2) 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
장. 문법 구조(Syntax) 컴퓨터공학과 권기태 프로그래밍언어론.
변수와 자료형.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
제 5장. Context-Free Languages
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Chapter 4 – 연 산 자 Outline 4.1 산술 연산자 4.2 관계 연산자 4.3 동등 연산자 4.4 논리 연산자
변수와 자료형.
제2장 데이터 및 수식.
Chapter 1 C++ 기초 Copyright © 2010 Pearson Addison-Wesley. All rights reserved.
C언어 프로그래밍의 이해 Ch05. 명령문 Phylogenetic: 계통, 발생(학)의.
제 2 장 변수와 상수.
Chapter 3 Flow of Control
주요 내용 형식 언어와 문법 정규식과 정규 집합 유한 상태 기계 정규 문법과 유한 상태 기계와 정규집합.
Tail-recursive Function, High-order Function
제 3 장 상수와 변수
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4주차: Data Types and Functions
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
Lecture 01: Compiler Overview
adopted from KNK C Programming : A Modern Approach
5. Context-free 문법 5-1. 서 론 5-2. 유도와 유도 트리 5-3. CFG표기법.
Chapter 2 Lexical Elements, Operators, and the C System
제2장 데이터 및 수식.
adopted from KNK C Programming : A Modern Approach
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
제 3 장 연산자 (Operators).
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
[INA470] Java Programming Youn-Hee Han
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
프로그래밍언어론 2nd edition Tucker and Noonan
도형의 닮음 Ⅵ-1 도형의 닮음 (1) 닮음과 닮은 도형 닮음
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
루프와 카운트 Looping and counting
연산자Operators C언어의 기본 구조 도서출판 한산 C언어의 기본 구조 1: #include <stdio.h>
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
Part 06 세상을 변화시키는 연산자 안산1대학 디지털정보통신과 임 성 국.
4. 어휘 분석(Lexical analysis)
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
C언어 프로그래밍의 이해 Ch05. 명령문.
Chapter 06 연산자 기본.
C언어 개론.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
C언어 프로그래밍의 이해 Ch03. 기본 자료형, 변수와 상수.
제5장 디버깅과 추적 문봉근.
엔화 대환/대출 자금용도 대상 이자 차액 효과 (A,B,C) 환율 리스크 헷징 (A,B) 엔화의 평균환율 (A,B,C)
3주차: Control Flow and Others
printf("Global Korea\n");
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
Presentation transcript:

3주 강의 Lexical Elements, Operators, and the C System Chapter 2 3주 강의 Lexical Elements, Operators, and the C System

Compiler Grammar ::: lexical, syntax, semantics, pragmatics Compiler checks the legality of C code Preprocessor  compiler Error recovery

Lexical Terms Token의 종류 (ANSI C) : keywords, identifiers, constants, string constants, operators, punctuators Lexical errors

Characters and Lexical Elements Lowercase letters, uppercase letters, digits, other characters (+, -, …), white space characters (blank, newline, tab) Lexical errors int a, b, c;  inta, b, c &a, &b == & a , & b sum=a+b; == sum = a +b;  s u m = a +b;

Syntax Rules Digit ::= 0|1|2|3 |4|5|6|7|8|9 BNF(Bacus Naur Form) ::= (rewriting), | (separate), * [] (optional), {} (0 or more), * {}1, {}0+, {}1+, {}opt conditional_statement :: if (expression) statement {else statement}opt

명칭(identifier) identifier ::= {letter | _}1 {letter | digit | _}0+ 숙제 ::: constant(실수, 정수), string을 위한 문법(BNF)을 참고로 2.74, 36, 2.7e-04, “I love you.”가 바름을 보여라. (constant나 string임) Appendix B를 참고하여 설명 !!!!

Comments /* This is comments */ // This is comments Self-documentation

Keywords Auto, do, goto, signed … (page 77) Reserved word와 그렇지 않은 word의 차이점 Keyword가 reserved된 언어와 그렇지 않은 언어

Constants, String constants, Operators, Punctuator Constants : 0, 17, 3,14159, ‘a’, ‘+’, “\n”, enumeration type String constants : “I”, “a string”, “ “, “c=a+b”, “\\ I \\” “abc” “def”  “abcdef” ??? /* “ This is a string” */, “ ” Operators : +, -, *, /, % ??? a-b, a_b Punctuators : “{“, “,”, “;”, “(“, “)” ??? main(void) ++a, a+=b 질문 :::: ‘=‘은 어디에 속하나 ???

Precedence and Associativity of Operators *** Page 332에 전체 테이블 Operator precedence and associativity Operator Associativity () ++(postfix) --(postfix) left to right +(unary), -(unary), ++(prefix), --(prefix) right to left * / % + - = += -= *= /=

Increment and decrement Operators ++val, val++ :: val=val+1 속도에서 빠르다 … 이유? 차이 :: (1) a=1; b=++a; printf(“%d,%d”,a,b) (2) a=1; b=a++; printf(“%d,%d”,a,b) Side-effect

Assignment Operators a=b+c; /* ‘=‘의 우선순위는 어떤 연산자보다 낮으면서 오른쪽 우선 */ variable=right_side a= (b=2) + (c=3);  b=2; c=3; a=b+c; /* 속도 차이 */ a=b=c=0; k=k+2  k+=2; =, +=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |= /* 조심 … ‘>=‘, ‘<=‘와 구별 */ i += j+k  i += (j+k)  i=i+j+k  i=(i+(j+k))

The C System The preprocessor #include <stdio.h> #include <stdio.h> /* int rand(void)가 있음 */ random을 이용한 프로그램 seed number  srand(time(NULL))

강의 시간에 풀 문제 2장 5,7,8,9를 합하여 하나의 프로그램으로 작성한다 10을 검증한다. 20번을 해결한다. 29를 해결한다 /* 각자 어디까지 해결하는지 검증… 단, 아직은 성적에 반영하지 않고 해결 못한 사람은 집에서 해온다 */

집에서 풀 문제 10, 15,17,18, 23, 25 27 (이 문제는 여러 명이 상의해서 풀어도 된다)