<4D F736F F F696E74202D20C7C1B7CEB1D7B7A1B9D6BEF0BEEEB7D05FC3E2BCAEBCF6BEF7>

Size: px
Start display at page:

Download "<4D F736F F F696E74202D20C7C1B7CEB1D7B7A1B9D6BEF0BEEEB7D05FC3E2BCAEBCF6BEF7>"

Transcription

1 I. 프로그래밍언어의소개 프로그래밍언어론 목차 한국방송통신대학교컴퓨터과학과김진욱교수. 프로그래밍언어란무엇인가?. 프로그래밍언어의특성 프로그래밍언어란무엇인가?. 프로그래밍언어란무엇인가? 언어란무엇인가? 음성또는문자를수단으로사상이나감정을표현하고의사를전달하는수단또는체계 [ 출처 : 민중국어사전 ] 사람의생각하는바를표현하고전달하기위해오랜시간을통해형성된형식적이고의미적인표현방법

2 프로그래밍언어란무엇인가? 프로그래밍언어란무엇인가? 언어란무엇인가? 언어란무엇인가? 컴퓨터는참멋져요! 컴퓨터는참멋져요! 특히프로그래밍언어는아주매력적이죠. Pardon? 사람의생각하는바를표현하고전달하기위해오랜시간을통해형성된형식적이고의미적인표현방법 사람의생각하는바를표현하고전달하기위해오랜시간을통해형성된형식적이고의미적인표현방법 프로그래밍언어란무엇인가? 프로그래밍언어란무엇인가? 프로그래밍언어란? 프로그래밍언어의정의 부터 5 까지숫자를임의의순서로섞고싶어, 5,, 4, 정의 Shuffle(int start, int end) {. }. Shuffle(, 5); 컴퓨터가읽을수있고사람이읽을수있는형식으로계산 ( 컴퓨터의행동 ) 을서술하는표기체계 컴퓨터에게프로그래머의의사를전달하는방법혹은프로그램을작성하는형식 프로그래밍언어의예 : C, C++, Java, Pascal 등

3 프로그래밍언어란무엇인가? 프로그래밍언어란무엇인가? 프로그래밍언어론이란? 프로그래밍언어론을배워야하는이유 프로그래밍언어들의공통점과차이점을고찰 현재사용하고있는언어를더잘이해하게됨 프로그래밍언어를설계하기위한기본개념고찰 유용한프로그래밍을구사할수있는능력을증대시킴 프로그래밍언어에대한근본적인이해 프로그래밍언어를선택할수있는능력을증대시킴 4 새로운프로그래밍언어를배우기쉽게해줌 5 새로운프로그래밍언어를설계하기쉽게해줌 프로그래밍언어의특성. 프로그래밍언어의특성 추상화 (abstraction) 란? 바퀴안장핸들기어 핸들 : 좌우회전안장 : 높이조절기어 : 기어변속 속성들의특징적인일부분만을가지고주어진작업이나객체를표현하고, 그들의공통점을추출하여표현하는것

4 프로그래밍언어의특성 프로그래밍언어의특성 프로그래밍언어에서의추상화란? 프로그래밍언어에서의추상화 부터 5 까지숫자를임의의순서로섞고싶어 프로그래머의의도를추상화하여컴퓨터에게전달하는도구 컴퓨터구조의추상화 정수배열변수임의연산자섞다 Shuffle(int start, int end) {. }. Shuffle(, 5); 기억장치 CPU 자료추상화 문자열 수 탐색트리 대상에따른구분 제어추상화 반복문 조건문 프로시저호출 프로그래밍언어의특성 프로그래밍언어의특성 프로그래밍언어에서의추상화 프로그래밍언어의전형 ( 계산전형 ) 기본적추상화 가장국지적인정보에관한추상화 정보의양에따른구분 구조적추상화 프로그램의구조에대한보다전역적인정보에관한추상화 단위추상화 단위프로그램전체정보에관한추상화 명령형언어 ( 절차언어 ) 함수형언어 ( 적용형언어 ) 논리형언어 ( 선언적언어 ) 4 객체지향언어 순차적인명령의수행을기본개념으로하는언어 변수사용 ( 기억장치읽기 ) 할당문사용 ( 기억장치쓰기 ) Fortran, C, BASIC 등

5 프로그래밍언어의특성 프로그래밍언어의특성 프로그래밍언어의전형 ( 계산전형 ) 프로그래밍언어의전형 ( 계산전형 ) 명령형언어 ( 절차언어 ) 함수형언어 ( 적용형언어 ) 논리형언어 ( 선언적언어 ) 4 객체지향언어 알려진값들을함수에적용하는방식으로프로그램을기술 변수, 할당문없음 반복적인연산은재귀적함수로기술 명령형언어 ( 절차언어 ) 함수형언어 ( 적용형언어 ) 논리형언어 ( 선언적언어 ) 4 객체지향언어 무엇을하려고하는가를선언하듯기술 반복문, 선택문없음 기호논리학에근거를둠 LISP 등 Prolog 등 프로그래밍언어의특성 프로그래밍언어의특성 프로그래밍언어의전형 ( 계산전형 ) 프로그래밍언어의형식정의 명령형언어 ( 절차언어 ) 함수형언어 ( 적용형언어 ) 논리형언어 ( 선언적언어 ) 4 객체지향언어 자료형과연산으로이루어지는객체에기반 객체 : 실세계에존재하는모든유형및무형의대상 형식정의의필요성 프로그래밍언어의명확한사용체계를알려줌 언어해석의모호함을없애줌 작성된프로그램의동작예측이가능 Ada, C++, Java 등

6 프로그래밍언어의특성 프로그래밍언어의형식정의 II. 프로그래밍언어의역사및설계기준 구문론 (syntax) 프로그래밍언어의표면적인구조를정의 의미론 (semantics) 프로그램실행시어떠한일이일어나는가를기술 목차. 프로그래밍언어의역사. 프로그래밍언어의설계기준 프로그래밍언어의역사. 프로그래밍언어의역사 최초의프로그래밍언어 다양한프로그래밍언어의출현 간결성, 추상화, 효율성 통합과새로운방향 World Wide Web 프로그래밍

7 프로그래밍언어의역사 950 년대 : 최초의프로그래밍언어 저급언어 0 c a iconst_0 istore_ goto 0x00 0x a iinc 0x0 0x0 0xa 0 ff bipush 0xff a ff fa if_icmplt 0xff 0xfa 0 c a a 0 ff a ff fa a7 ff a7 f ff f goto 0xff 0xf 기계어 : CPU 가이해할수있는일련의 진법의명령코드로작성 프로그래밍언어의역사 950 년대 : 최초의프로그래밍언어 Fortran 최초의고급언어 PARAMETER (N=000,IN=500) REAL T(N),V(N),X(N) PI = 4.0*ATAN(.0) DO 00 I =, N- V(I+) = V(I)-X(I)*DT 00 CONTINUE WRITE (6,999) (T(I),X(I),V(I),I=,N,IN) STOP 999 FORMAT (F6.8) END 어셈블리언어 : 기계어코드를대신할기호나연상기호를사용 IBM 의 John Backus 가중심이되어만든과학응용목적언어 반복문, 배열, 분기개념을처음으로도입 프로그래밍언어의역사 950 년대 : 최초의프로그래밍언어 COBOL 레코드구조를도입 working-storage section. 0 yield-exact pic 9(9)v99 comp. 0 yield-info. 0 start-balance pic 9(9)v9() comp. 0 yield pic 9(9)v9() comp. procedure division. move to interest perform varying start-balance from 프로그래밍언어의역사 950 년대 : 최초의프로그래밍언어 Algol 60 연구용및실질적인응용목적의언어 begin rear X; real array A[:0]; integer i; for i:= until 0 do begin X:=A[i]; if X >= A[4] then begin end end 자료구조부분과실행부분을분리 블록개념, 되부름, 값매개변수호출기법을도입 은행이나대규모회사들에서사무처리의목적으로만듦

8 프로그래밍언어의역사 프로그래밍언어의역사 950 년대 : 최초의프로그래밍언어 950 년대 : 최초의프로그래밍언어 LISP APL 일반적인리스트구조와함수의응용을기본으로하여인공지능분야에폭넓게사용됨 배열과행렬을포함하는수학적연산을쉽게프로그래밍하기위한언어 (defun recursive-list-length (L) "A recursive implement. of list-length." (if (null L) 0 (+ (recursive-list-length (rest L))))) 단점 : 제어구조가없음 프로그래밍언어의역사 프로그래밍언어의역사 960 년대 : 다양한프로그래밍언어의출현 960 년대 : 다양한프로그래밍언어의출현 PL/ : Fortran, Cobol, Algol 60 의장점들만모음병행성, 예외처리기, 기억장소할당기법등을도입 Snobol : 최초의문자열처리및패턴매칭기능언어 Simula 67 : 시뮬레이션을위해설계. 클래스개념을도입하여객체개념과자료추상화를인식시키는데크게기여 Algol 68 : 일반적인자료형시스템을포함임의의제한을두지않는방식의직교언어로변경 BASIC : 시분할시스템을위한간단한언어교육용, 사무처리및가정용으로널리보급

9 프로그래밍언어의역사 970 년대 : 간결성, 추상화, 효율성 Pascal 작고간결하고효율적 Var SEL : Integer; Begin Return: Clrscr; Writeln('[].PLAY GAME'); Readln(SEL); If SEL = then Begin Goto Return; End; 프로그래밍언어의역사 970 년대 : 간결성, 추상화, 효율성 C int main(void) { int i, j; char a[5]; for (i=0; i<5; i++) { if (*(a+i) == c ) } 컴퓨터구조에대한접근을제공해주는중급프로그래밍언어 교육적인목적의구조적프로그래밍언어 UNIX 운영체제의구현에사용됨 분리컴파일기능, 문자열조작, 입출력기능의효율화등고기능성을갖춤 프로그래밍언어의역사 프로그래밍언어의역사 980 년대 : 통합과새로운방향 980 년대 : 통합과새로운방향 Ada : 자료추상화, 타입메커니즘, 병행처리와예외처리기등의특징을처음으로도입하였으나, 방대한규모와사용상의복잡함때문에대중적인인기를얻지못함 Scheme : LISP 의한버전, 인공지능에대한관심으로많이이용 Prolog : 수학적논리학을적용한프로그래밍언어인공지능분야에서많이쓰임 Modula- : 추상화, 부분적동시처리개념, 내장형시스템프로그래밍을목적으로하드웨어에쉽게접근할수있는기능도추가한다목적언어 Smalltalk : 일관된객체지향언어의순수한모범케이스 C++ : C 언어를확장하여객체지향프로그래밍개념을도입

10 프로그래밍언어의역사 프로그래밍언어의역사 990 년대 : World Wide Web 프로그래밍 000 년대이후 Java C# : 마이크로소프트 (Microsoft) 에서개발 객체지향개념에기반 Dart : 구글 (Google) 에서개발 중간코드형태로제공되어자바가상기계 (JVM) 위에서수행 Swift : 애플 (Apple) 에서개발 이식성이좋음 프로그래밍언어의설계기준. 프로그래밍언어의설계기준 효율성 일반성, 직교성, 획일성 표현력 4 정확성 5 컴퓨터독립성 6 안전성 7 일관성 8 확장성 9 부분성

11 프로그래밍언어의설계기준 프로그래밍언어의설계기준. 효율성. 일반성, 직교성, 획일성 목적코드의효율성 : 번역기가효율적인실행코드를생성할수있도록언어설계 ( 최적화 ) 번역의효율성 : 알맞은크기의번역기로빠르게번역 프로그래밍효율성 : 얼마나쉽고빠르게프로그램을작성할수있는가하는것 ( 표현력 ) 일반성 : 밀접한관련이있는여러개념들을일반적인하나의개념으로결합 직교성 : 구성요소들이각각의의미를지닌채결합될수있음구성요소간의상호작용이나문맥으로인한의도하지않은부작용의발생방지 획일성 : 의미적, 형식적으로유사한것들은그유사성이프로그래밍언어내에서일관되게유지되어야함 프로그래밍언어의설계기준 프로그래밍언어의설계기준. 표현력 5. 컴퓨터독립성 프로그래밍언어가복잡한과정이나구조를표현하는데용이함 하드웨어나운영체제에대해독립적인프로그래밍언어 예 : 되부름 (recursion) 예 : Java 4. 정확성 6. 안전성 프로그래밍언어의행위를예측할수있는정의에의존 프로그래밍오류를줄이고쉽게발견하기위함

12 프로그래밍언어의설계기준 프로그래밍언어의설계기준 7. 일관성 9. 부분성 표준화된특징과개념을갖도록프로그래밍언어를설계 프로그래머가언어에대한적은지식과언어구조에대한일부의이해만있어도효과적으로프로그램을작성할수있도록함 8. 확장성 예 : 프로그래밍을위해해당언어전체를배울필요없음 프로그래머에게언어의특징을추가할수있는권한부여 예 : 새로운자료형정의, 라이브러리에새로운함수추가 III. 프로그래밍언어의구문. 프로그래밍언어의구조 목차. 프로그래밍언어의구조. BNF. EBNF 4. 구문도표

13 프로그래밍언어의구조 프로그래밍언어의구조 언어의구조 프로그래밍언어의구조 컴퓨터는참멋져요! Shuffle(int start, int end) {. }. Shuffle(, 5); 문자 어휘 구문 컴, 퓨, 터, 는, 참, 멋, 져, 요,! 컴퓨터, 는, 참, 멋지다, 요,! 주부 ( 컴퓨터는 )+ 술부 ( 참멋져요!), 명사 + 은 / 는 / 이 / 가, 문자 어휘 구문 S, h, u, f, l, e, (, i, n,, ), {, },, 5, ; Shuffle, (, int, start, end, ), {, },, 5, ; 함수명 +(+ 인자 +)+{+ 함수body+}, 자료형 + 변수, 프로그래밍언어의구조 프로그래밍언어의구조 프로그래밍언어의구조 프로그래밍언어의구조 Shuffle(int start, int end) {. }. Shuffle(, 5); C E C E E D 7B Shuffle(int start, int end) {. }. Shuffle(, 5); 문자 : 영어알파벳과아라비아숫자를근간으로작성 어휘 ( 컴퓨터내부적으로는 ASCII 코드로변환 ) 구문 ASCII: American Standard Code for Information Interchange 문자 : 영어알파벳과아라비아숫자를근간으로작성 어휘 : 프로그래밍언어문자로구성된단어, 토큰 구문: 프로그래밍언어로프로그램을작성하는규칙

14 프로그래밍언어의구조 프로그래밍언어의구조 어휘구조와구문구조 용어정의 서로별개이지만밀접한관련이있음 어휘분석 입력프로그램의일련의문자를토큰으로구분함 번역기 구문분석 토큰을처리하여구문구조를결정함 어휘토큰 언어구성자 식별자 4 예약어 프로그래밍언어의어휘구조 프로그래밍언어문자로구성된단어 if, x, i, printf, 프로그래밍언어의구조 프로그래밍언어의구조 용어정의 용어정의 어휘토큰 어휘토큰 언어구성자 식별자 한개이상의어휘토큰을이용한구문적으로허용된프로그램의일부구조 언어구성자 식별자 변수, 자료형, 함수명등에이용되는토큰 4 예약어 4 예약어 If ( ) then { } else { } x, int, printf 등

15 프로그래밍언어의구조 프로그래밍언어의구조 용어정의 프로그래밍언어구문의형식정의 장점 어휘토큰 프로그램의가독성향상 언어구성자 컴파일러탐색시간단축 오류검색시간식별자단축 4 예약어 단점 예약어관리의어려움 프로그래밍언어확장시예약어와식별자의중복 미리정의된식별자중재정의할수없는식별자 미리정의된식별자 : 번역과정의속도를높이고프로그램의신뢰성을향상시킴 (scanf, printf, if, for 등 ) 프로그래밍언어를이용해정상적인프로그램을작성하는규칙들의집합 공식이나순서도를이용해표현됨 정의된언어로작성가능한모든정상적인프로그램을산출함 if, case, for 등 작성된프로그램이구문에맞는프로그램인지여부를결정하는규율로사용 BNF. BNF BNF (Backus-Naur Form) 란? 구문에대한형식정의를하는방법 생성규칙들의집합 왼쪽부분 : 정의될대상 (object) 오른쪽부분 : 그대상에대한정의

16 BNF BNF BNF 표기법 BNF 표기법 비단말기호 각괄호 < > 로묶인기호 단말기호 각괄호로묶이지않은기호 메타기호 언어를표현하려고사용된특수기호들 (::=,, < >) 다시정의될대상임을의미 알파벳문자집합, 예약어 ::= : 정의 : 택일 <letter> ::= A B C X Y Z <letter> ::= A B C X Y Z BNF BNF 예 : 식별자정의 문맥자유문법 <digit> ::= 모든생성규칙에서정의될대상이하나의비단말기호로만구성 <identifier> ::= <letter> <identifier><letter> <identifier><digit> <letter> ::= A B C... X Y Z <digit> ::= 각비단말기호가어디에나타나든그의오른쪽부분으로언제나대치될수있음 문맥의존문법 0b<digit> ::= 0b0 0b 0o<digit> ::= 0o0 0o 0o 0o 0o4 0o5 0o6 0o7 특수한문맥에의존하여대치되는문법

17 EBNF. EBNF EBNF (Extended BNF) 란? 보다읽기쉽고간결하게표현할수있는확장된 BNF 특수의미의메타기호를더사용하여반복되는부분이나선택적인부분을간결하게표현함 EBNF EBNF EBNF 표기법 EBNF 표기법 [x] : x 가나타나지않거나한번나타날수있음 ( x y ) : 괄호안으로한정하여 x 나 y 중택일 {x} : x가 0번에서 7번까지나타날수있음 [x] 와 {x} 은같은의미임 <if-statement> ::= if <condition> then <statement> [else <statement>] <expression> ::= <expression> + <expression> <expression> - <expression> <expression> * <expression> <expression> / <expression> <expression>::= <expression> ( + - * / ) <expression>

18 EBNF EBNF 표기법 4. 구문도표 x : 메타기호 x 를단말기호로사용 <BNF-rule> ::= <left-part> ::= <right-part> <right-part> ::= <right-part-element> { <right-part-element> } 4 구문도표 4 구문도표 구문도표란? 구문도표그리는방법 구문에대한형식정의를하는또다른방법 순서도와비슷하며, EBNF 선언과바로대응시킬수있음 비단말기호는사각형, 단말기호는원이나타원으로표시하며이들은지시선으로연결 단말 X 원또는타원안에X로표기 들어오고나가는지시선그림 X 비단말 X 사각형안에 X로표기 들어오고나가는지시선그림 X

19 4 구문도표 4 구문도표 구문도표그리는방법 구문도표그리는방법 A::=X X X n X i 가비단말기호인경우 A X X X n A::=α α α n α α i 는개별구문도표 A α X i 가단말기호인경우 A X X X n α n 4 구문도표 4 구문도표 구문도표그리는방법 구문도표그리는방법 A::={α} A::=[α] A::=(α α )β α i 와 β 는개별구문도표 α A A A β α α α

20 4 구문도표 예 : EBNF 구문도표 IV. 파스트리와모호성 A ::= X ( B ) B ::= A C C ::= {+A} 비단말기호 : A, B, C 단말기호 : X, (, ), + A B C ( X B ) A C A + 목차. 파스트리. 구문의모호성. 프로그램의신뢰성 파스트리. 파스트리 파스트리란? 주어진 BNF 에의해어떤표현이생성될수있는지확인하기위해작성하는트리 단말노드의나열이주어진 BNF 로생성가능한표현이됨 주어진표현에대한파스트리가존재하면그표현은주어진 BNF 에의해작성된표현으로결정

21 파스트리 파스트리 예 : 식별자 TEST <identifier> 예 : 식별자 TEST <identifier> <identifier> <digit> <identifier> <digit> <identifier> ::= <letter> <identifier><letter> <identifier><digit> <identifier> <letter> <identifier> <letter> <identifier> ::= <letter> <identifier><letter> <identifier><digit> <identifier> <identifier> <letter> <letter> <letter> ::= A B C... X Y Z <identifier> <letter> <letter> ::= A B C... X Y Z <identifier> <letter> <digit> ::= <letter> <digit> ::= <letter> T E S T T E S T 파스트리 파스트리 예 : 식별자 A4 <identifier> 예 : 수식 -*5 <identifier> <digit> <identifier> ::= <letter> <identifier><letter> <identifier><digit> <letter> ::= A B C... X Y Z <digit> ::= <identifier> <identifier> <digit> <letter> ::= - * () <number> <number>::= <number><digit> <digit> <digit> ::= <number> <digit> ㅡ * <number> <digit> <number> <digit> A 4 5

22 파스트리 추상구문트리. 구문의모호성 파스트리의본질적인구조를나타내는트리 ㅡ 구문트리 (syntax tree) 라고도함 <number> * <digit> <number> <number> ㅡ <digit> <digit> * 5 불필요한비단말기호제거 5 구문의모호성 구문의모호성 구문을이용한유도과정의다양성 구문을이용한유도과정의다양성 <identifier> ::= <letter> <identifier><letter> <identifier><digit> ::= - * () <number> 예 : 식별자 B <letter> ::= A B C... X Y Z <digit> ::= 동일한파스트리 예 : 수식 -*5 <number>::= <number><digit> <digit> <digit> ::= 서로다른파스트리 <identifier> <identifier><digit> <identifier> <identifier><digit> <identifier> <letter> B <identifier> <identifier><digit> <identifier><digit><digit> <letter><digit><digit> B <digit><digit> B <digit> B <identifier> <identifier> <digit> <identifier> <digit> <letter> B - - * * 5 * - * * 5 ㅡ * 5

23 구문의모호성 구문의모호성 구문을이용한유도과정의다양성 ::= - * () <number> 추상구문트리 -(*5) = -7 (-)*5 = 5 예 : 수식 -*5 <number>::= <number><digit> <digit> <digit> ::= 서로다른파스트리 예 : 수식 -*5 ㅡ * * ㅡ * * 5 * - * * 5 ㅡ * 5 모호한문법 동일표현에대해서로다른파스트리가만들어지는문법 5 구문의모호성 구문의모호성 모호성제거규칙 모호성제거규칙 비단말기호와구문규칙을추가 비단말기호와구문규칙을추가 좌순환규칙을사용하여좌결합지원 ::= - * () <number> <number>::= <number><digit> <digit> <digit> ::= ::= - <term> <term> ::= <term> * <term> () <number> <number>::= <number><digit> <digit> <digit> ::=

24 구문의모호성 구문의모호성 모호성제거규칙 모호성제거규칙 비단말기호와구문규칙을추가 비단말기호와구문규칙을추가 예 : 수식 -*5 ::= - <term> 예 : 수식 7-- ::= - <term> ㅡ * <term> ::= <term> * <term> () <number> ㅡ ㅡ <term> ::= <term> * <term> () <number> * 5 ㅡ 5 <number>::= <number><digit> <digit> <digit> ::= ㅡ 7 7 서로다른파스트리 ㅡ <number>::= <number><digit> <digit> <digit> ::= 구문의모호성 구문의모호성 모호성제거규칙 모호성제거규칙 비단말기호와구문규칙을추가 좌순환규칙을사용하여좌결합지원 예 : 수식 7-- ㅡ ㅡ 7 7 서로다른파스트리 ㅡ ㅡ 좌결합 : (7-)- 우결합 : 7-(-) 동일연산순위를갖는연산자들에대해대부분좌결합을사용 APL 언어는우결합을사용 ::= - <term> <term> ::= <term> * <term> () <number> <number>::= <number><digit> <digit> <digit> ::= ::= - <term> <term> <term> ::= <term> * <factor> <factor> <factor> ::= () <number> <number>::= <number><digit> <digit> <digit> ::=

25 구문의모호성 모호성제거규칙. 프로그램의신뢰성 좌순환규칙을사용하여좌결합지원 예 : 수식 7-- ::= - <term> <term> <term> ::= <term> * <factor> <factor> ㅡ <term> <factor> ::= () <number> ㅡ <term> <number>::= <number><digit> <digit> 7 <digit> ::= 프로그램의신뢰성 프로그램의신뢰성 프로그램의신뢰성 프로그램의신뢰성위배사례 프로그래밍언어의구문이중요 사람과기계에의해프로그래밍언어의구문이쉽게분석될수있어야함 PL/ 의구문 사람의실수 if 문에서 else 처리 A = B = C; 작성의도 : 다중할당 PL/의다중할당 A, B = C; PL/의 = 의미 : 할당, 등가 작성의도와달리다음으로해석됨 A = (B = C);

26 프로그램의신뢰성 프로그램의신뢰성 프로그램의신뢰성위배사례 프로그램의신뢰성위배사례 PL/ 의구문 사람의실수 if 문에서 else 처리 H. Morgan: 사람의실수로인한프로그램작성시의오류가약 80% 차지 철자오류 변수의선언을명확히하지않는언어의경우 철자오류가묵시적선언으로간주되고처리되어올바른프로그램의기술을어렵게만듦 PL/ 의구문 사람의실수 if 문에서 else 처리 현수 (dangling) else 문제 if cond then if cond then S else S else가첫번째 if와두번째 if 중어느것과어울리는지모호 BNF 문법과관계없이언어자체가포함하고있는모호성에해당 프로그램의신뢰성 프로그램의신뢰성 현수 else 문제 if cond then S 언어별현수 else 문제해결방안 If cond then S else S if cond then (if cond then S else S) if cond then if cond then S else S Algol 60 if cond then begin if cond then S else S end if cond then (if cond then S else S) if cond then (if cond then S) else S Algol 68 PL/, Pascal if cond then if cond then S else S fi fi if cond then if cond then S else S

27 프로그램의신뢰성 언어별현수 else 문제해결방안 Algol 60, Pascal Algol 68 PL/ if cond then (if cond then S) else S if cond then begin if cond then S end else S if cond then if cond then S fi else S fi IF cond THEN IF cond THEN S; ELSE; ELSE S 목차 V. 프로그래밍언어구현기법및변수와바인딩. 프로그래밍언어구현기법. 변수. 바인딩 Pascal if cond then if cond then S else else S 프로그래밍언어구현기법. 프로그래밍언어구현기법 프로그래밍언어구현의의미 Shuffle(int start, int end) {. }. Shuffle(, 5); 0 c a a 0 ff a ff fa a7 ff f 고급언어로작성된프로그램을실제컴퓨터에서실행시킬수있는기계어로만들어야함 이를위해컴파일기법이나인터프리트기법으로구현

28 프로그래밍언어구현기법 프로그래밍언어구현기법 컴파일기법 컴파일기법번역기 주어진고급프로그래밍언어로작성된프로그램을 실제주어진컴퓨터의기계어로번역하여 동등한의미의기계어프로그램을만들어실행시키는방법 컴파일러 어셈블러 링커 (linker) 4 로더 (loader) 5 프리프로세서 고급언어 ( 원시언어 ) 를저급언어 ( 목적언어 ) 로만들어주는번역기 일반적으로저급언어는준기계어형태 프로그래밍언어구현기법 프로그래밍언어구현기법 컴파일기법번역기 컴파일기법번역기 컴파일러 어셈블러 링커 (linker) 4 로더 (loader) 어셈블리언어 ( 원시언어 ) 를저급언어 ( 목적언어 ) 로만들어주는번역기 컴파일러 어셈블러 링커 (linker) 4 로더 (loader) 재배치형태의기계어로구성된여러개의프로그램을묶어서어느정도실행가능한하나의기계어 ( 로드모듈 ) 로번역 5 프리프로세서 5 프리프로세서

29 프로그래밍언어구현기법 프로그래밍언어구현기법 컴파일기법번역기 컴파일기법번역기 컴파일러 컴파일러 어셈블러 링커 (linker) 로드모듈의기계어프로그램을실행가능한기계어로번역하여주기억장치에적재 어셈블러 링커 (linker) 원시언어와목적언어가모두고급언어인번역기 4 로더 (loader) 4 로더 (loader) 5 프리프로세서 5 프리프로세서 프로그래밍언어구현기법 프로그래밍언어구현기법 컴파일기법번역기실행과정 인터프리트기법 고급언어를기계어로취급하여, 이를실행할수있는 고급언어기계를소프트웨어로시뮬레이션하여구성하는방법

30 프로그래밍언어구현기법 프로그래밍언어구현기법 인터프리터실행과정 번역기와인터프리터 원시언어 ( 입력 ) 고급언어프로그램어셈블러프로그램 소프트웨어프로그램컴파일러어셈블러 목적언어 ( 출력 ) 기계어, 준기계어 ( 목적모듈 ) 기계어, 준기계어 ( 목적모듈 ) 목적모듈 ( 준기계어 ) 링커 (linker, linkage editor) 로드모듈 로드모듈 로더 (relocating loader) 실행가능기계어 고급언어프로그램프리프로세서 Preprocessor 고급언어프로그램 (a) 번역기 소프트웨어프로그램원시언어 ( 입력 ) 출력 ( 하드웨어가능 ) 고급언어프로그램 인터프리터 프로그램이실행된결과 (b) 인터프리터 프로그래밍언어구현기법 프로그래밍언어구현기법 인터프리트기법과컴파일기법비교 인터프리트기법과컴파일기법비교 인터프리트기법 컴파일기법 공통점 : 고급언어로표현된고수준의프로그램을읽어들임 직접고수준의프로그램을실행가능 논리적순서대로문장을실행 실행시마다실행시뮬레이션을통해코드를실행 입력프로그램과동일한기능을하는목적언어로된목적코드출력만가능 입력된순서대로문장을한번씩처리 한번번역된코드는다시번역할필요없음 인터프리트기법 사용자의유연성을중시하는경우 장점 : 추가기억장소필요없음 단점 : 실행시간을매우많이요구할경우가발생 Lisp, Snobol4, APL, Prolog 컴파일기법 컴퓨터의실행시간을중시하는경우 장점 : 많은횟수로반복처리되는프로그램을실행할때매우효율적임 단점 : 번역된프로그램이매우큰기억장치를요구할수있음 Fortran, Algol, PL/I, Pascal, Cobol, C, Ada 등

31 프로그래밍언어구현기법 프로그래밍언어구현기법 중간코드실행기법 중간코드실행기법과정 컴파일기법 인터프리트기법 중간코드실행기법 프로그램을실행시키기쉬운형태로번역 ( 컴파일 ) 한후, 그번역된형태의프로그램을실행시뮬레이션으로실행 ( 인터프리트 ) 예 : Java 바이트코드사용, JVM 사용 변수. 변수 변수 (variable) 의정의 생성 : 선언문또는묵시적선언으로생성 네가지요소 : 식별자, 자료속성의집합, 하나이상의주소, 자료값 주소와자료값의관계는변할수있음 실행시간동안값이바뀔수있는객체

32 변수 변수 (variable) 의정의 D. W. Barron 의표기법. 바인딩 예 : A := 0 바인딩 바인딩 바인딩의개념 바인딩의개념 int A = 00; const int number = 0; 이름 A 에변수라는속성과정수라는자료형속성이연결됨 초기값으로 00 이할당됨 이름 number 에상수라는속성과값 0 이연결됨 바인딩 (binding) 이름에어떤속성을연결하는과정 바인딩시간 변수의네가지요소에값을확정하는것 바인딩이어느시점에이루어지는가에따라분류되는시간

33 바인딩 바인딩 바인딩시간의종류 바인딩시간의종류 실행시간 ( 동적바인딩 ) 번역시간 ( 정적바인딩 ) 언어의구현시간 4 언어의정의시간 변수의값을확정 자료구조에기억장소를할당 실행시간 ( 동적바인딩 ) 번역시간 ( 정적바인딩 ) 언어의구현시간 4 언어의정의시간 구성 : 컴파일시간, 링크시간, 로드시간 변수의형, 자료구조의형과크기, 레코드의각항목들의형등을확정 바인딩 바인딩 바인딩시간의종류 바인딩시간의종류 실행시간 ( 동적바인딩 ) 번역시간 ( 정적바인딩 ) 언어의구현시간 4 언어의정의시간 정수의자릿수, 실수의유효숫자개수, 수의기계내에서의표기법등을확정 실행시간 ( 동적바인딩 ) 번역시간 ( 정적바인딩 ) 언어의구현시간 4 언어의정의시간 혼합형연산이허용되는경우, 연산해야될두피연산자의형에따라어떤형의연산을해야되는지를확정

34 바인딩 바인딩 바인딩시간의예 : Q = T + 0; 바인딩시간의예 : Q = T + 0; 변수 T 의값 변수 T 의자료형 실행시간 ( 동적바인딩 ) 번역시간 ( 정적바인딩 ) T 가할당연산자왼쪽에존재하는할당문을실행했을때확정 실행시간 ( 동적바인딩 ) 번역시간 ( 정적바인딩 ) 컴파일러언어는자료형과함께 T 가취할수있는값의종류와기억장소의크기도확정 언어의구현시간 언어의구현시간 언어의정의시간 언어의정의시간 바인딩 바인딩 바인딩시간의예 : Q = T + 0; 바인딩시간의예 : Q = T + 0; 상수 0 의표현방식 연산기호 + 의성질 실행시간 ( 동적바인딩 ) 실행시간 ( 동적바인딩 ) 번역시간 ( 정적바인딩 ) 언어의구현시간 기억장소에상수 0 의값을넣는것 0 이실제기계에서표현되는방법 번역시간 ( 정적바인딩 ) 언어의구현시간 컴파일러언어는피연산자의형을컴파일시간에확정하므로이때덧셈종류를확정 언어의정의시간 0 진법의상수 0 을의미 언어의정의시간 연산기호 + 가덧셈연산자라는것을확정 ( 정수덧셈, 실수덧셈 )

35 바인딩 바인딩시간의중요성 VI. 선언과할당, 식과제어문 효율성 (efficiency) 실행의효율성을중시하는언어 : Fortran, Algol, Cobol, C 등 컴파일러언어 : 가능한한많은바인딩이번역하는동안에이루어지도록설계 유연성 (flexibility) 유연성을특징으로가진언어 : Snobol4, APL, LISP 등 인터프리트언어 : 대부분의바인딩을자료에맞출수있도록바인딩을실행시간까지지연 목차. 선언과할당. 표현식. 제어문 선언과할당. 선언과할당 선언의의미 int[] A = new int[0]; 자료형 : 차원배열 원소의수 : 0 첨자값의사용범위 : 0~9 의정수 각원소의자료형 : 정수 참조할배열이름 : A 실행시사용될자료의속성을컴파일러등에게알려주는것 바인딩을제공하는중요한방법 선언방법 : 명시적선언, 묵시적선언

36 선언과할당 선언과할당 선언문의목적 선언문의목적 주기억장치사용과접근방법의효율성 주기억장치경영의효율성 정적형검사가능 프로그램실행동안에변하지않는자료구조의속성들을한정 자료구조에접근하기위한계산을컴파일러가최적화함 주기억장치의절약및프로그램실행시간의절약 주기억장치사용과접근방법의효율성 주기억장치경영의효율성 정적형검사가능 자료구조의크기, 생성시기, 소멸시기등을번역시간에알게됨 보다효율적인기억장소배당기법을제공 선언과할당 선언과할당 선언문의목적 할당문의의미 주기억장치사용과접근방법의효율성 주기억장치경영의효율성 정적형검사가능 컴파일시혼합형연산에대한목적코드를형고정연산으로변환 잘못사용한자료형등을번역시간에찾아낼수있어, 프로그램의신뢰성을높일수있음 프로그래밍언어 할당문구문 C, Java, Fortran S = T Algol, Pascal S := T APL S T Basic LET S = T Cobol MOVE T TO S 변수의내용을변경할수있는연산 프로그램에서가장일반적으로나타나는연산

37 선언과할당 선언과할당 할당문의종류 6. 식으로서의할당문 단순할당문 다중목적변수할당문 조건목적변수할당문 4 복합할당연산자 A = B A, B, C = 0 (PL/) flag? N : M = 0 S += T 할당문은목적변수에할당된값과동일한결과를생성 할당문자체를식으로혹은다른식에포함된피연산자로사용가능 식부작용유발가능 프로그램의가독성저하 5 단항할당연산자 S++ 6 식으로서의할당문 7 혼합형할당문 while ( ( s = getchar() )!= \n ) { } 선언과할당 선언과할당 6. 식으로서의할당문 7. 혼합형할당문 C/C++ 안전성결여예 할당문의양쪽자료형이서로다른경우를의미 컴파일러가탐지할수없는오류. 할당을이항연산자처럼취급허용 언어설계결정사항에따른결과임. 산술식을 boolean 피연산자로허용. 매우비슷한두연산자 =, == 을완전히다른의미로사용작성된코드 : if (s = t) 원래의의도 : if (s == t) 고려사항 : 식의형과목적변수자료형의동일성검사, 불일치시묵시적형변환사용여부 int s, t; float w; w = s / t;

38 선언과할당 선언과할당 7. 혼합형할당문 상수 C/C++ 묵시적형변환이자유롭게적용됨 const float root =.445; static final float pi =.4596; C Java Java 확대형변환인경우에만허용 float s, t; int w; w = s / t; 변하지않는값을갖는변수의사용을지원 식별자로주어지며, 프로그램수행중변하지않음 상수에어떤값을재할당하려는경우컴파일러가쉽게인식 선언과할당 변수초기화 int m = 0;. 표현식 int[] s = new int[7]; int t[] = {0,,,, 4, 5, 6}; Java 에서배열의경우생성문 new 필요 초기값이주어지는경우 new 없이도생성가능

39 표현식 표현식 표현식 (expression, 식 ) 의개념 식의평가 A + 피연산자값에대하여주어진연산을실행함으로써이루어짐 B * (C D) 프로그램환경을변화시키지않고오직값만생성 ( 참조투명성 ) 평가순서 : 연산자우선순위, 좌결합법칙 (APL 등일부제외 ) 하나이상의피연산자를가지고자료값의계산을기술하는것 구성 : 피연산자 ( 상수, 변수 ), 연산자, 사용가능한함수호출 A / B - C * D 연산자우선순위적용 A + B + C 좌결합법칙적용 표현식 표현식 논리조건 피연산자 연산자피연산자 논리조건 적용순서 단락회로평가기법 일반적 : 두개의피연산자를우선평가한후연산자적용 논리연산자 : 논리조건에따라다름 컴파일러상의불일치를제거하기위함 n = 0 or m/n < n 0 and m/n < n 이 0 일때항상참 n 이 0 일때항상거짓 if n 0 and m/n < then Q else Q end if if n 0 then if m/n < then Q else Q end if else Q end if

40 제어문. 제어문 조건문 IF ( 논리식 ) X, X Fortran IF ( 수식 ) X, X, X 논리식의결과참 : X, 거짓 : X 수식의결과음수 : X, 0: X, 양수 : X 조건에따라실행되는부분이달라질때사용하는문장 제어문 제어문 내포된 if 문 switch 문 (C/C++, Java) 반복문 if (t ) X ; else if (t ) X ; else if (t ) X ; else if (t n ) X n ; else t n+ ; switch (< 정수식 >) { case < 정수상수식 >: < 문장 > case < 정수상수식 >: < 문장 > case < 정수상수식 >: < 문장 > case < 정수상수식 n >: < 문장 n > default: < 문장 n+ > } 한개이상의문장을 0 번이상반복하여실행시키는문장 반복기능이없는경우 모든동작의순차적기술의어려움 복잡성의증가와유연성의저하 가독성의저하와유지보수의어려움

41 제어문 제어문 사용자지정반복 사용자지정반복 반복수행을하려는일련의문장들을괄호로묶어서단위화시킴 개념적반복문 : loop-repeat문 반복문제어 : goto문, exit문 C/C++: exit 문대신 break 문사용 while (result >= 0) { getnext(number); if (number < 0) break; result -= number; } while (result >= 0) { getnext(number); if (number < 0) continue; result -= number; } 제어문 제어문 논리제어반복문 논리제어반복문 while (< 조건식 >) < 문장 > 4 거짓 while( < 조건식 > ) 참 < 문장 > until문 repeat < 문장 > do-while 문 do < 문장 > 초기조건검사후, 그결과가참이면반복문몸체를한번수행하고다시조건검사를행하는과정을반복 조건문결과가거짓이면반복문영역을벗어나다음문장으로수행제어가넘어감 until < 조건식 > 반복문몸체가적어도한번은수행됨 while (< 조건식 >);

42 제어문 제어변수반복문 제어변수의값수정조건식제어변수초기화 5 for (< 식 >; < 식 >; < 식 >) 프로그래밍언어론 for (< 식 >; < 식 >; < 식 >) < 문장 > 6 거짓 참 < 문장 > 4 수고하셨습니다 ~ 반복변수 ( 제어변수 ) 를사용하여고정된횟수의반복을표시

Microsoft PowerPoint - PL_03-04.pptx

Microsoft PowerPoint - PL_03-04.pptx Copyright, 2011 H. Y. Kwak, Jeju National University. Kwak, Ho-Young http://cybertec.cheju.ac.kr Contents 1 프로그래밍 언어 소개 2 언어의 변천 3 프로그래밍 언어 설계 4 프로그래밍 언어의 구문과 구현 기법 5 6 7 컴파일러 개요 변수, 바인딩, 식 및 제어문 자료형 8

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770> 예약어(reserved word) : 프로그래밍 언어에서 특별한 용도로 사용하고자 미리 지정한 단어 - 프로그램의 구성요소를 구별하게 해주는 역할 => 라벨, 서브 프로그램 이름, 변수에 연관되어 다른 변수나 서브 프로그램 등과 구별 - 식별자의 최대길이는 언어마다 각각 다르며 허용길이를 넘어서면 나머지 문자열은 무시됨 - FORTRAN, COBOL, HTML

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

제4장 기본 의미구조 (Basic Semantics)

제4장  기본 의미구조 (Basic Semantics) 제 4 장블록및유효범위 Reading Chap. 5 숙대창병모 1 4.1 변수선언및유효범위 숙대창병모 2 변수선언과유효범위 변수선언 Declaration before Use! 대부분의언어에서변수는사용전에먼저선언해야한다. 변수의유효범위 (scope) 선언된변수가유효한 ( 사용될수있는 ) 프로그램내의범위 / 영역 변수이름뿐아니라함수등다른이름도생각해야한다. 정적유효범위

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

슬라이드 1

슬라이드 1 3 장. 선행자료 어휘원소, 연산자와 C 시스템 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2019-1 st 프로그래밍입문 (1) 2 목차 1.1 문자와어휘원소 1.2 구문법칙 1.3 주석 1.4 키워드 (Keyword) 1.5 식별자 (Identifier) 1.6 상수 (Integer,

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

EA0015: 컴파일러

EA0015: 컴파일러 5 Context-Free Grammar 무엇을공부하나? 앞에서배운 " 정규식 " 은언어의 " 어휘 (lexeme)" 를표현하는도구로사용되었다. 언어의 " 구문 (syntax)" 은 " 정규언어 " 의범위를벗어나기때문에 " 정규식 " 으로표현이불가능하다. 본장에서배우는 " 문맥자유문법 " 은언어의 " 구문 (syntax)" 을표현할수있는도구이다. 어떤 " 문맥자유문법

More information

1

1 04단원 컴퓨터 소프트웨어 1. 프로그래밍 언어 2. 시스템 소프트웨어 1/10 1. 프로그래밍 언어 1) 프로그래밍 언어 구분 각종 프로그래밍 언어에 대해 알아보는 시간을 갖도록 하겠습니다. 우리가 흔히 접하는 소프트웨어 들은 프로그래밍 언어로 만들어지는데, 프로그래밍 언어는 크게 2가지로 나눌 수 있습니다. 1 저급어 : 0과 1로 구성되어 있어, 컴퓨터가

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lecture 02 프로그램구조및문법 Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018 자바프로그램기본구조 Hello 프로그램구조 sec01/hello.java 2/40 자바프로그램기본구조 Hello 프로그램구조

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Chapter_06

Chapter_06 프로그래밍 1 1 Chapter 6. Functions and Program Structure April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 문자의입력방법을이해한다. 중첩된 if문을이해한다. while 반복문의사용법을익힌다. do 반복문의사용법을익힌다.

More information

자연언어처리

자연언어처리 제 7 장파싱 파싱의개요 파싱 (Parsing) 입력문장의구조를분석하는과정 문법 (grammar) 언어에서허용되는문장의구조를정의하는체계 파싱기법 (parsing techniques) 문장의구조를문법에따라분석하는과정 차트파싱 (Chart Parsing) 2 문장의구조와트리 문장 : John ate the apple. Tree Representation List

More information

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - Chapter_04.pptx 프로그래밍 1 1 Chapter 4. Constant and Basic Data Types April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 기본자료형문자표현방식과문자자료형상수자료형변환 기본자료형 (1/8) 3 변수 (Variables)

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

4장.문장

4장.문장 문장 1 배정문 혼합문 제어문 조건문반복문분기문 표준입출력 입출력 형식화된출력 [2/33] ANSI C 언어와유사 문장의종류 [3/33] 값을변수에저장하는데사용 형태 : < 변수 > = < 식 > ; remainder = dividend % divisor; i = j = k = 0; x *= y; 형변환 광역화 (widening) 형변환 : 컴파일러에의해자동적으로변환

More information

<C7C1B7CEB1D7B7A1B9D6BEF0BEEE2E687770>

<C7C1B7CEB1D7B7A1B9D6BEF0BEEE2E687770> 2과목 : 프로그래밍 일반 41. 프로그래머가 직접 제어를 표현하지 않았을 경우, 그 언어 에서 미리 정해진 순서에 의해 제어가 이루어지는 순서 제 어는? 가. 구조적 나. 명시적 다. 묵시적 라. 분석적 42. 파스 트리에 대한 설명으로 틀린 것은? 가. 어떤 표현이 BNF에 의해 바르게 작성되었는지 확인하 기 위해 만드는 트리이다. 나. 파스 트리가 존재하면

More information

chap x: G입력

chap x: G입력 재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

Microsoft PowerPoint - lec2.ppt

Microsoft PowerPoint - lec2.ppt 2008 학년도 1 학기 상지대학교컴퓨터정보공학부 고광만 강의내용 어휘구조 토큰 주석 자료형기본자료형 참조형배열, 열거형 2 어휘 (lexicon) 어휘구조와자료형 프로그램을구성하는최소기본단위토큰 (token) 이라부름문법적으로의미있는최소의단위컴파일과정의어휘분석단계에서처리 자료형 자료객체가갖는형 구조, 개념, 값, 연산자를정의 3 토큰 (token) 정의문법적으로의미있는최소의단위예,

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

Microsoft PowerPoint - lec3.ppt

Microsoft PowerPoint - lec3.ppt 2008 학년도 1 학기 상지대학교컴퓨터정보공학부 고광만 강의내용 연산자 (operator) 연산자종류연산자우선순위자료형변환 문장 (statement) 배정문 혼합문 제어문조건문, 반복문, 분기문 표준입출력 2 연산자 식 (expression) 의의미를결정 식은연산자 (operator) 와피연자 (operand) 로구성식의값에따라산술식, 관계식, 논리식으로구분

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다 10 강. 쉘스크립트 쉘스크립트 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다른운영체제로이식되지않음 -스크립트언어를사용하면컴파일과정이없고인터프리터가소스파일에서명령문을판독하여각각의명령을수행

More information

3차시.ppt

3차시.ppt [ 정보처리기능사필기] 1 과목 - 전자계산기일반 1 / 10 정보처리기능사 ( 필기 ) 1 과목. 전자계산기일반컴퓨터시스템의구성 2 1. 컴퓨터의기본구성 컴퓨터의기본구성 컴퓨터 = + (Hardware) 컴퓨터기계 (Software 를움직여주는프로그램 [ 정보처리기능사필기] 1 과목 - 전자계산기일반 2 / 10 2. (Hardware) -Hardware

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2

More information

Microsoft PowerPoint - chap-06.pptx

Microsoft PowerPoint - chap-06.pptx 쉽게풀어쓴 C 언어 Express 제 6 장조건문 컴퓨터프로그래밍기초 이번장에서학습할내용 조건문이란? if 문 if, 문 중첩 if 문 switch 문 break문 continue문 goto 문 5장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 컴퓨터프로그래밍기초 2 조건문 조건에따라서여러개의실행경로가운데하나를선택

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

<C6F7C6AEB6F5B1B3C0E72E687770>

<C6F7C6AEB6F5B1B3C0E72E687770> 1-1. 포트란 언어의 역사 1 1-2. 포트란 언어의 실행 단계 1 1-3. 문제해결의 순서 2 1-4. Overview of Fortran 2 1-5. Use of Columns in Fortran 3 1-6. INTEGER, REAL, and CHARACTER Data Types 4 1-7. Arithmetic Expressions 4 1-8. 포트란에서의

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 쉽게풀어쓴 C 언어 Express 제 6 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break 문 continue 문 goto 문 5 장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 자바의기본구조? class HelloJava{ public static void main(string argv[]){ system.out.println( hello,java ~ ){ } } # 하나하나뜯어살펴봅시다! public class HelloJava{ 클래스정의 public static void main(string[] args){ System.out.println(

More information

슬라이드 1

슬라이드 1 2 장. 어휘원소, 연산자와 C 시스템 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2018-1 st 프로그래밍입문 (1) 2 목차 2.1 문자와어휘원소 2.2 구문법칙 2.3 주석 2.4 키워드 (Keyword) 2.5 식별자 (Identifier) 2.6 상수 (Integer,

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

PowerPoint Presentation

PowerPoint Presentation Lecture 01: Compiler Overview Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2019 강의정보 교과목명 : 컴파일러 개설학과 : 컴퓨터공학과 4학년 학점및시수 : 3학점 3시간 강의시간 :

More information

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 6 장선택과반복 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break문 continue문 지금까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 3 가지의제어구조 조건문 문장이실행되는순서에영향을주는문장 조건에따라서여러개의실행경로가운데하나를선택

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

Microsoft PowerPoint - c2.ppt

Microsoft PowerPoint - c2.ppt 프로그램과표준입출력 프로그램 (program) 자료를입력받아서이를처리하여출력을하는일을수행함 2 장 C 언어의기초 입력 프로그램 ( 처리 ) 출력 식별자, 예약어 자료형 상수와변수 수식 연산자 : 산술연산자 자료형변환 표준입출력 (standard input and output: stdio) 표준입력 : 키보드입력 표준출력 : 모니터또는터미널로출력 (cf) DOS,

More information

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - chap-03.pptx 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (I) Contents 변수와상수 블록과변수의범위 수식과연산자 제어문과반복문 문자와문자열 배열, 포인터, 메모리관리 구조체 디버거 (gdb) 사용법 2/17 Reference The C Programming language, Brian W. Kernighan, Dennis M. Ritchie, Prentice-Hall

More information

PowerPoint Presentation

PowerPoint Presentation 컴퓨터프로그래밍 Computer Programming 08 포인터기초 목차 1. 포인터변수와선언 2. 간접연산자 * 와포인터연산 3. 포인터형변환과다중포인터 컴퓨터프로그래밍 (Computer Programming) - 08 포인터기초 3 1. 포인터변수와선언 주소개념 주소 address 메모리공간은 8비트인 1 바이트마다순차적인고유한번호 메모리주소는저장장소인변수이름과함께기억장소를참조하는또다른방법

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 누구나즐기는 C 언어콘서트 제 5 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 goto 문 이제까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장 조건에따라서여러개의같은처리를반복

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - 제11장 포인터 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

프로그래밍 Company 서울대학교통계학과 2010년 2학기컴퓨터의개념및실습 ( 1

프로그래밍 Company 서울대학교통계학과 2010년 2학기컴퓨터의개념및실습 (  1 프로그래밍 Compay Logo @ 서울대학교통계학과 2010년 2학기컴퓨터의개념및실습 (http://dcom10.ez.ro/) 1 프로그래밍 프로그래밍의개념소개 주요프로그래밍언어소개 C, C++ Java 전공수업에서다룰전용프로그램의 스크립트 프로그래밍소개 Matlab, R SAS, S-Plus, SPSS Maple, Mathematica 기타전공과목별전용통계프로그램

More information

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - 제11장 포인터(강의) 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1. 표준입출력 표준입출력 입력 : 키보드, scanf 함수 출력 : 모니터, printf 함수문제 : 정수값 2개를입력받고두값사이의값들을더하여출력하라. #include int main(void) int Num1, Num2; int

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 반복제어 표월성 passwd74@cherub.sungkyul.edu 개요 for() 문 break문과 continue문 while문 do-while문 for() 문 for() 문형식 for( 표현식1; 표현식2; 표현식3) 여러문장들 ; 표현식 1 : 초기화 (1 번만수행 ) 표현식 2 : 반복문수행조건 ( 없으면무한반복 ) 표현식 3 : 반복문수행횟수 for()

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 쉽게풀어쓴 C 언어 Express 제 6 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break 문 continue 문 goto 문 5 장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장

More information

Microsoft PowerPoint - C프로그래밍-chap00.ppt [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap00.ppt [호환 모드] 2009 년여름계절학기 C 프로그래밍및실습 한국항공대학교항공우주기계공학부 ( 강의자료 : http://mercury.kau.ac.kr/sjkwon) 1 강의 2시간 실습 1 시간 ( 진도범위내예제연습 ) TA 참여 강의계획서 2 강의계획서 각장과제물 ( 단순 copy 는영점처리 ) 1) 진도범위내의중간점검문제및이해점검문제 2) 프로그래밍과제 (3,6번문제 )

More information

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers C Programming 포인터 (Pointers) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 포인터의이해 다양한포인터 2 포인터의이해 포인터의이해 포인터변수선언및초기화 포인터연산 다양한포인터 3 주소연산자 ( & ) 포인터의이해 (1/4) 변수와배열원소에만적용한다. 산술식이나상수에는주소연산자를사용할수없다. 레지스터변수또한주소연산자를사용할수없다.

More information

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드] 02 C 프로그래밍기초 충남대학교이형주 1 C 프로그램구조 콘솔응용프로그램 2 프로그램실행순서 C 프로그램은여러함수의조합으로구성 함수란정해진규칙에의하여일련의작업을수행하는프로그램의단위 실행순서 main 함수는프로그램이실행되면가장먼저시작되는부분 모든함수내부에서는위에서아래로, 좌에서우로, 문장이위치한순서대로실행 3 전처리기 전처리기 (preprocessor) 미리처리하는프로그램으로,

More information

3장 어휘분석

3장 어휘분석 Video & Image VIPL Processing Lab. Compiler Construction 한국방송통신대학교컴퓨터과학과출석수업 제 2012-2 공학박사김명진 (HCI & 지능형로봇연구소 ) 숭실대학교연구교수 컴파일러교재구성 2장 : 형식언어와오토마타 3장 : 어휘분석 4장 : Contex-free 언어와푸시다운오토마타 5장 : 구문분석 2 어휘분석

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

슬라이드 1

슬라이드 1 3. 자료와변수 3.1 자료형 자료형 컴퓨터는숫자 (= 데이터 ) 를다룬다. 컴퓨터가다룰수있는숫자의유형이있다. C 언어에서의자료형 크기 (byte) 정수형 ( 문자형 ) char 1 정수형 실수형 ( 부동소수형 ) short 2 int 4 long 4 long long 8 float 4 double 8 long double 8 / 16 강 C 프로그래밍 3

More information

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2 제 7 장. 배열 목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2 배열의개요 배열 (array) 의정의 같은데이터형을가지는여러개의변수를하나의배열명으로공유 기억공간을순차적으로할당받아사용하는것 [ 7.1] C 3 배열의개요 배열 (array) 의필요성 같은데이터형의여러개의변수간결하게선언 기억공간을순차적으로변수의값들을저장, 관리

More information

PowerPoint Template

PowerPoint Template 10. 예외처리 대구가톨릭대학교 IT 공학부 소프트웨어공학연구실 목차 2 10.1 개요 10.2 C++ 의예외처리 10.3 Java 의예외처리 10.4 Ada 의예외처리 10.1 예외처리의개요 (1) 3 예외 (exception) 오버플로나언더플로, 0 으로나누기, 배열첨자범위이탈오류와같이프로그램실행중에비정상적으로발생하는사건 예외처리 (exception handling)

More information

06 세상을 변화시키는 연산자

06 세상을 변화시키는 연산자 Part 06 세상을변화시키는연산자 1 이장의내용 대입문도사실은수식이다 대입연산자의변형 증감연산자 조건연산자 괄호도연산자인가? 우선순위와결합순서정리 2 6.1 대입문도사실은수식이다 3 대입문 변수에값을대입시키는문장 a = a + 1; "a 와 a+1 이같다 " 는뜻이아니라 "a+1 값을변수 a 에저장하라 " 는뜻 대입문동작과정 대입문수행전에변수 a 에 20

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

untitled

untitled int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.

More information

C언어 및 실습 C Language and Practice

C언어 및 실습  C Language and Practice C언어 및 실습 C Language and Practice Chap. 2 : 변수의 영역 동국대학교 멀티미디어공학과 Young-Sik Jeong C 언어메모리구조 지역변수들이저장되는곳. 정확히는지역변수와그에따른환경이같이저장된다. 복귀주소와호출함수의환경이저장된다. 동적기억장소를위한공간. 프로그램이실행되는중간에필요에의해서할당받는메모리영역을통칭한다. 크기가정해져있지않고유동적이다.

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드] Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨

More information

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information