<33B0FAB8F128B1B3BEC829284E E687770>

Size: px
Start display at page:

Download "<33B0FAB8F128B1B3BEC829284E E687770>"

Transcription

1 1. 언어의설계(1) 1. 프로그래밍언어의이해 1) 프로그래밍언어 1정의 - 프로그램을작성할수있는언어 - 프로그램을만드는도구(Tool) - 기계가이해할수있으면서사람이이해할수있는형태로컴퓨터가주어진작업을수행하도록명시하는방법 2 구분 2) 고급언어(High Level Language) - 사람중심의언어다. - 컴퓨터시스템은고급언어를직접실행할수없으므로언어번역프로그램과번역과정이필요하다. -서로다른기계와호환이쉽다. - FORTRAN, COBOL, ALGOL, PL/I, PASCAL, BASIC 등 3) 저급언어(Low Level Language) - 기계중심의언어다. - 기계코드등에대한전문적인지식이필요하다. - 프로그램밍이어렵고, 오류발생시수정도어렵다. - 다른기계와호환이어렵다. 기계어 (Machine Language) 어셈블리어 (Assembly language) 4) 응용분야별 1 범용(General Purpose) 언어 2진수 0과 1만사용하여명령어와데이터를나타내는기계중심의언어컴퓨터가직접이해할수있어실행속도가매우빠름호환성이없고전문지식이없으면사용하기힘듦 기계어를심볼(Symbol) 로대치한언어 기호를정하여명령어와데이터를기술 전문지식이필요하며호환성이떨어짐

2 - 여러분야에사용될목적으로개발된언어 - Pascal, C, Ada 2 인공지능(AI) 언어 - 인공지능분야의프로그램작성에사용되며, 논리연산과융통성이중시되는언어 - LISP, Prolog 3 병렬처리(Parallel) 언어 - 두개이상의비동기적상호통신을하는프로세스를실행시킬수있는언어 - Concurrent Pascal, Linda 4 페이지기술(Page Description) 언어 - 문서의형식을기술하는데사용되는언어 - PostScript, HTML 5 데이터베이스질의(Database Query) 언어 - 데이터베이스에서원하는정보를검색하기위해별도의응용프로그램을작성하지않고, 게사용할수있도록만든언어 - SQL(Structured Query Language) 5) 계산모델에의한분류 1 절차적언어(Procedural Language)// 명령형언어(Imperative Language) - 명령어를순차적으로실행한다. - 메모리의위치를나타내는변수를사용한다. - 선언문과실행문을포함한블록구조를가진다. - Fortran, Pascal, C 등 2 함수형언어 (Functional Language) - 응용형언어(Applicative Language) 라고도한다. - 수식의값은부수식의값으로결정된다. - 계산시매개변수에함수를적용하는방법을주로사용한다. - Modula-2, LISP, APL, Scheme 등 3 논리형언어 (Logic Language) - 논리학의관계식과같은형태이다. - 자연언어, 인공지능, 추론컴퓨터연구에사용된다. -Prolog등 4 객체지향언어 (Object-Oriented Language) - 객체기반, 클래스기반, 객체지향성언어로분류된다. - 객체, 클래스, 인스턴스, 메소드, 속성, 메시지등으로구성된다. - 추상화, 캡슐화, 정보은폐, 상속성, 다형성등의특징을가진다. - Simula 67, Smalltalk, C++, JAVA, Delphi 등 6) 고급언어종류및특징 1 FORTRAN - 과학기술계산용언어 - 변수와고수준의루프개념을도입한최초의고급언어 - 과학분야나엔지니어링어플리케이션에주로사용 2 ALGOL60 누구나쉽

3 - 수치계산, 논리연산용언어로최초의블록중심언어 - 구문정의를위해 BNF를최초로사용한언어 -PASCAL,C언어개발에영향 3 COBOL - 사무처리용언어 - 영어문장의형태로프로그램작성이쉽고이해가쉬움 4 LISP - 기호연산및리스트처리용언어 - 인공지능분야의소프트웨어를작성하기위해사용 5 PL/1 - FORTRAN, ALGOL, COBOL, LISP 등의장점들을통합하려한범용언어 - 예외상황처리와기초적인다중작업(Mulititasking) 을지원 6 SNOBOL 4 - 최초의문자열처리언어 - 어떤기계에도종속되지않는매크로언어를가짐 - 문자열대치, 복사, 치환등과같은문자열의조작을편리하게수행할수있도록여러가지기능 을제공 7 APL - 함수형언어로배열과행렬을포함하는수학적연산을쉽게프로그래밍 - 과학계산용프로그램에적합하나제어구조가없고이해하기어려움 8 ADA - 미국방성의지원하에개발된군사적목적의언어 - 실시간처리와내장시스템에적합 - 거대정보시스템, 항공우주산업등의분야에사용 9 BASIC - 대화형언어로프로그램작성에대한교육목적으로설계 - 초보자도쉽게배울수있음 -GOTO문을많이사용 -PASCAL - 교육용언어이며범용언어 -ALGOL60을모체로함 - 문법이간결하고체계적이며명백한형태로구성 10 PROGOG - 논리형언어 - 인공지능분야에사용 11 C - 구조화된시스템프로그램용언어 -ALGOL60을모체로함 - 고급언어와저급언어의특성을모두가짐 - 이식성이우수하고, 표현이간결 -UNIX운영체제개발에사용

4 12 C++ -C언어를개량한개량한객체지향언어 7) 객체지향언어 -객체지향언어의기본구성요소 1 객체 (Object) - 클래스를통해만들어지는실질적인변수이다. - 속성에대한정보와속성과관계되는행위가결합된형태를가진다. - 변수와메소드들로구성된다. - 객체의속성 : 식별성, 분류성, 다형성, 상속성 2 클래스 (Class) - 공통된속성과행위를갖는객체들의집합이다. - 하나이상의유사한객체(Object) 들을묶어서하나의공통된특성으로표현한다. - 각객체들이가져야될공통성을정의하고있는 Template( 형틀) 로프로그램수행시각각의인스턴스(Instance) 를생성시켜동작한다. 3 인스턴스 (Instance) - 클래스로부터객체를생성하는것을말한다. - 어떤집합에대해그집합의개별적인요소에속하는각객체를말한다. 4 메소드 (Method) - 속성값을처리하는동작부분을말한다. - 객체의외부적인활동을연산이라는전제하에서구현한다. - 기능또는함수라고도한다. 5 속성 (Attributed) - 객체를표현하거나동작을나타내기위해사용하는자료를말한다. - 한클래스내에속하는객체들이가지는자료값을단위별로정의한다. - 성질, 분류, 식별, 상태등을표현한다. 6 메시지 (Message) - 객체와클래스가정보를교환하기위한통신명령의개념이다. - 메시지는객체사이에전달되며객체는메시지에의해동작된다. - 어떤객체의메소드를호출하는것을" 그객체에게메시지를보낸다" 라고한다. - 메시지의실체는메시지를받을객체속에있는메소드의이름이다. - 메시지를전달받은객체는대응되는메소드를수행하여결과를반환한다. - 구성 : 수신객체의이름, 수신객체의메소드이름, 메시지에서필요로하는값을전달하는인수 8) 객체지향언어의특징 1 추상화 (Abstraction) - 중요특성만을추출하여모형화하고이모형을객체의속성으로표현한다. 2 캡슐화 (Encapsulation) - 객체를캡슐화하여사용자는기능(What) 만알고사용하며, 어떻게(How) 처리되는지는모르게한다. - 객체를작성할때숨겨야하는정보(Private) 와공개해야하는정보(Public) 를구분하여작성한다. - 감추어진추상적속성은정보은폐(Information Hiding) 개념으로불리며, 정의된기능을통해서 만객체를사용할수있도록구현한다. 3 정보은폐 (Information Hiding)

5 - 관련속성과메소드를캡슐화하고, 공개된인터페이스만외부로노출시키는방법이다. - 유지보수가쉽다. - 재사용을극대화시킬수있다. - 모듈성이극대화된다. 4 상속성 (Inheritance) - 한클래스( 파생) 가다른클래스( 기본) 에서정의된속성을그대로물려받아사용할수있는것을말한다. - 클래스간의자료와연산을공유할수있도록제공되는기법이다. - 객체지향에서소프트웨어의재사용을지원한다. 5 다형성 (Polymorphism) - 하나의인터페이스를사용하여다양한구현방법을제공하는것을말한다. - 동일한연산자나함수가피연산자나인자의종류에따라서로다르게동작한다. 9) 객채지향프로그래밍 - Simula 언어에서객체지향개념을제시하였고, Smalltalk 를통해본격적인구현이시작되었다. - 중점을절차보다데이터에둔다. - 프로그램이단순화되고, 생산성과신뢰성이높은시스템을구축할수있다. - 상속과다양성등의특성을통해재사용을지원한다. - 시스템의확장성이높다. - 정보은폐가자연스럽게된다. - 모듈화로유지보수가쉽다. - ADA95, SmallTalk, Simula, Actor, Eiffel, C++, JAVA, Delphi 등 9) 프로그래밍언어의발전과정 1 1 세대언어(1950 년대) - 기계어, 어셈블리어 -2진수를사용함 - 프로그래밍구현이힘들며, 에러가발생할경우수정하기어려움 - 하드웨어애대한정확한이해가필요함 2 2 세대언어( ~1960 년대초) - 고급언어개발의중점 - 프로그램언어개발이가장많이발달된시기 - 개발언어 : FORTRAN Ⅱ, ALGOL 60, COBOL, LISP 등. 3 3 세대언어( ~1970 년대) - 절차적언어의기초확립 - 언어번역시발생되는컴파일러의각종문제점들이해결되어기존언어의발전및수많은새로운언어가개발 - 폰노이만의프로그램내장방식적용, 절차적언어다수개발 - 개발언어 : PL/ Ⅰ, ALGOL 68, SNOBOL 4, APL, BASIC, PASCAL, C 등. 4 4 세대언어(1980 년대) - 비절차적, 고생산성언어 - 생산성을증가시켜주는언어 - 대화식환경제공 - 프로그램개발시간단축, 생산성향상, 문서화와유지보수용이 - 온라인환경에서응용개발을지원하는언어 - 종류 : MULTIPLAN, Super Calc, Lotus 1-2-3, dbase, SAS, ASF 등의데이터베이스및질의

6 언어, 고수준의언어 5 5 세대언어(1990 년대) - 인공지능분야 - 전문가시스템, 지식기반시스템, 자연어처리등의특징 - 인공지능분야에기반을둔언어로자연어(Natual Language) 라고도함 2. 언어의설계(2) 1. 언어의설계와구현 1) 프로그래밍언어의설계 1 좋은프로그래밍언어의조건 - 개념과구조가간단하고, 명료하며, 체계적이어야한다. - 프로그램의작성이쉬워야한다. - 실행시오류를찾아낼수있어야한다. - 작성, 번역, 실행, 운영및유지보수등의비용이적게들어야한다. - 다른언어및기종과이식성, 호환성이있어야한다. - 추상을지원할수있어야한다. 2 프로그래밍언어설계기준의변화 - 실행의효율성, 작성의용이성 - 판독성( 알고리즘을간결하고명확하게표기) - 복잡성제어( 단순성), 추상화, 논리성, 신뢰도향상 2) 컴퓨터구조와의관계 1 기본자료 - 자료 : 컴퓨터의기억장치에저장되는데이터 - 기본연산과관련되어프로그램언어가어떤형태의자료구조를제공할지결정하는데영향을미침 - 각각의컴퓨터는기본연산에직접사용될수있는기본자료형을가짐 2 기본연산 - 기계어에있는명령어와대응되는부분 - 수치연산, 메모리접근연산, 입출력연산, 순서제어연산, 조건검사연산등.. 3 순서제어 - 프로그램의실행시실행순서를결정하는것 - 프로그램상에서순서제어와관련된명령어를사용하여다음에실행될명령어를가리키고있는레지스터의값을수정하여변경 3) 자료제어 - 명령어의피연산자를지정하는방식 - 컴퓨터는피연산자를지정하기위해다양한주소지정방식을제공함 즉시주소지정방식 (Immediate Addressing) - 피연산자의실제값을명시

7 직접주소지정방식 (Direct Addressing) - 피연산자의기억장소위치를명시 간접주소지정방식 (Indirect Addressing) - 피연산자의기억장소위치( 주소) 를레지스터나변수같은기억장소에기록하고, 그주소를기록하고있는기억장소위치를명시 4) 기억장치관리 - 병렬처리, 멀티태스킹등에대한지원여부를컴퓨터가가진다양한기억장치관리전략에따라고려 - 프로그래밍언어설계시변수의선언방법및프로그램코드작성과관련된내용을결정할때기억장치관리전략을고려 5) 외부와의인터페이스 - 컴퓨터는외부와의상호작용을위한다양한기능과전략을가짐 - 입/ 출력제어와관련된다양한내용은컴퓨터의외부인터페이스제공방법에따라고려 6) 프로그래밍순서 7) 문제분석단계 1 해결하고자하는문제의타당성을검토하는단계이다. - 능률적인측면이나결제적인측면을고려한다. - 출력하고자하는결과를개괄적으로검토한다. 8) 입출력설계단계 / 1 입력과출력의구체적인설계를하는단계이다. - 입력데이터의종류와양 - 구체적인데이터항목과순서 - 포함된항목의누락여부 - 각항목의성격과길이의적합성 - 사용매체의특성 9) 순서도작성단계 - 약속된기호를사용하여실행순서와방법을표현하는단계이다. - 프로그램의검증과수정을용이하게한다. 10) 프로그램구현단계 1 코딩단계 : 프로그래밍언어로명령문을기술하는단계이다. 2 입력단계 : 원시프로그램을컴퓨터에수록하는단계이다. 3 모의실험 : 문법적인오류나번역과정상의오류가있는지실험하는단계이다. 4 디버깅 : 모의실험에서발견된오류( 버그) 를찾아수정하는단계이다. 11) 실행단계 - 실제데이터를입력하여결과를얻는단계이다. 12) 문서화단계 - 프로그램의운영에필요한사항을문서로정리하여기록하는단계이다.

8 2. 언어의구현 1) 번역(Translator) 기법 1 정의 - 어떤언어로된사용자의프로그램을다른언어로변환시키는프로그램 - 원래의프로그램에사용된언어를원시언어(Source Language) 라하고, 변환된프로그램의언어를 목적언어(Target Language) 라함 2 종류 인터프리터 (Interpreter) - 목적프로그램을생성하지않고필요할때마다기계어로번역 어셈블러 (Assembler) - 특정한컴퓨터의어셈블리어에대한번역기 - 기계어를기호화한형태이기때문에기계어로전환이용이함 컴파일러 (Compiler) - 고급언어를저급언어로일괄번역 - 목적프로그램이필요한 링커 (Linker) - 독자적으로번역된여러개의목적프로그램과프로그래멩서사용되는내장함수들을하나로모아컴퓨터에서실행가능한프로그램생성 로더 (Loader) - 로드모듈을수행하기위해메모리에적재시켜주는기능을수행 - 메모리에주어진베이스주소에관련메모리를할당할주소계산 디버거 (Debugger) - 번역된프로그램의오류를찾기위한프로그램 프리프로세서 (Preprocessor) - 전처리기( 선행처리기) - 컴파일러시작전에컴파일러에의해호출되는별개의프로그램 - 원시프로그램을기존의고수준컴파일러언어로전환 - 주석삭제, 다른프로그램파일포함, 매크로확장, 정의된상수치환등 크로스컴파일러 (Cross Compiler) - 원시프로그램을컴파일러가수행되고있는컴퓨터의기계어가아닌다른기종의알맞은기계어로번역 3 번역과정 원시프로그램 (Source Program) : 사용자가각종프로그래밍언어(Assembler, FORTRAN, PASCAL, COBOL, C 등) 로작성한프로그램을말한다. 목적프로그램 (Object Program) : 언어번역프로그램이원시프로그램을읽고기계어나기계어

9 에가까운형태로번역해서출력한프로그램을말한다. 실행프로그램 (Execution Program) : 로드프로그램(Load Program) 또는로드모듈(Load Module) 이라고도한다. 번역프로그램 (Compiler Program) : 컴퓨터가이해할수있는기계어로번역해서실행할수있도록만들어진프로그램을말한다. ex)assembler, Compiler 등.. 링커 (Linker) : 연계편집(Linkage Editor) 이라고도하며, 다른곳에서작성된프로그램루틴이나컴파일또는어셈블리된루틴등을모아서실행가능한하나의루틴으로연결하는프로그램을말한다. 로더 (Loader) : 기계어로번역된목적프로그램을주기억장치로옮겨주는프로그램으로할당, 연결, 재배치, 적재기능이있다. - 할당(Allocation) : 프로그램을주기억장치의빈공간에할당함 - 연결(Link) : 기호로표시된주소를실제주소값으로변환함 - 재배치(Relocation) : 종속적인모든주소를할당된주기억장치주소와일치하도록재배치 - 적재(Load) : 명령어와자료, 프로그램을기억장치에물리적으로배치 2) 컴파일러와인터프리터비교 1 컴파일기법 - 고급어로만든원시프로그램의명령문들을직접기계어로일괄번역한다. - 목적프로그램을만든다. - 번역과실행이별도로이루어진다. - 목적코드가큰기억장치를요구하지만목적프로그램은최적화코드를만들기때문에실행속도가빠르다. - 반복문이나부프로그램의호출이많은경우유리하다. - 실행의효율성을강조할경우유리하다. 2 인터프리터기법 - 고급어로만든원시프로그램의명령문들을한번에한줄씩읽어들이며번역한다. - 목적프로그램을만들지않는다. - 번역과실행이동시에이루어진다. - 한줄단위로번역이이루어지므로문법상의오류를쉽게발견할수있다. - 큰기억장치를요구하지않지만, 실행되는동안디코딩시간을많이요구하므로실행속도가느리다. - 대화형식의프로그래밍이가능하다. - 소프트웨어로시뮬레이션하는방법으로적절하다. - 사용상의융통성을고려할경우유리하다. 특징컴파일러인터프리터 목적 P/G 생성생성안함 번역단위전체번역행( 줄) 번역 프로그램크기큼작음 수행속도빠름느림

10 번역속도느림빠름 대표적언어 FORTRAN, COBOL, PASCAL, C, C++ BASIC, LISP, APL, Prolog, Perl 3. 가상컴퓨터 1) 가상컴퓨터 1 정의 - 물리적으로실제존재하는컴퓨터가아니라다양한목적을위해개념적으로존재하는가상의컴퓨터이다. - 실제컴퓨터처럼프로그램수행과관련된논리를가지고있지만, 하드웨어와소프트웨어가결합된물리적형태를가지지는않는다. 2 목적 인터프리터에서사용 - 인터프리터는프로그램이컴퓨터에서실행되는것과같은효과를얻기위해명령어에대한시뮬레이션수행방법으로사용하는데이때그대상으로가상컴퓨터를사용한다. 중간코드생성시사용 - 컴파일러는다양한목적을위해서원시프로그램을입력받아실행코드를생성하는중간단계에서컴퓨터의프로그램수행논리와관련된다양한내용을가진중간코드를생성하는데이중간코드를기계에비종속적으로설계하기위하여가상컴퓨터를사용한다. 기계에독립적인프로그램언어생성을위해사용 - 프로그램언어가실제컴퓨터에서수행될프로그램작성을목적으로하는이상기계에서완전히독립적인프로그램언어가존재할수없지만, 가상컴퓨터를사용하면기계에독립적인프로그램언어를설계할수있다. 2) 가상컴퓨터설계시고려사항 - 변수의크기 - 사용가능한레지스터의개수와용도 - 장소와스택의구조 - 스택의연산에사용되는레지스터와용도 - 함수호출시매개변수전달방식과스택의동작방식 -지역변수선언의처리와스택의동작방식 - 함수의변환값전달방식 -사용하는데이터정렬방식 - 지원하는주소지정방식 4. 바인딩 1) 바인딩(Binding) - 프로그램작성시 2 개의정보를연관시켜묶는다(Bind) 는의미 -속성(attribute) 을이름식별자 (, identifier) 에묶어주는것 - 어떤변수의명칭과그메모리주소, 데이터형또는실제값을연결하는것 2) 바인딩시간(Binding Time)

11 - 프로그램에서변수들이갖는속성이완전히결정되는시간 - 이름에속성이연결되는시간 3) 바인딩시간의종류 1 실행시간 - 바인딩이프로그램중그순간이상태에따라이루어진다. - 늦은바인딩(Late Binding) 이라고도한다. - 변수의값에바인딩하거나변수에저장장소를바인딩한다. - 부프로그램이나블록을시작할때일어나기도한다. - 배정문을통해변수의값을바인딩하기도한다 2 번역시간 - 바인딩실행전컴파일, 링크, 로드시간에이루어진다. - 변수의형, 자료구조의형과크기, 레코드의각항목들의형들의확정, 변수에대한기억장소를바인딩하는시간이다. 프로그래머에의해서선택 : 변수의형, 문장구조등 번역기에의해서선택 : 할당된저장소안에있는자료객체의상대적위치나배열의저장방법과크기등 적재기에의해서선택 : 메모리에프로그램을실행할컴퓨터의실제주소할당 3 언어정의시간 - 프로그램의자료구조, 프로그램언어의구조, 택일문등을확정하는시간 4 언어구현시간 - 정수의자릿수, 실수의유효숫자개수등이바인딩되는시간 4) 정적바인딩과동적바인딩 의미 동적바인딩 (Dynamic Binding) - 늦은바인딩(Late Binding) - 실행중에메모리를할당하고반환이가능한경우 정적바인딩 (Static Binding) - 이른바인딩(Early Binding) - 실행전에할당하고프로그램이끝날때까지메모리를가지고있는경우 장점 - - 융통성이있고메모리낭비가없음 - 실행의효율성 단점 - 실행의효율성이부족 - 융통성이없으며, 있음 메모리낭비의가능성이 언어 -LSIP, Perl, Prolog, APL, SNOBOL 4 - FORTRAN, ALGOL, COBOL 바인딩시간의중요성 1. 실행의효율성(Efficiency) 중시 컴파일언어 2. 융통성(Flexibility) 중시 인터프리터언어 3. 언어번역(1)

12 1. 언어의구문 1) 구문요소언어의구문 1 구문의개요 - 식, 문장, 프로그램단위의형태와구조 - 한문장의요소들인단어들의관계를보여주는단어들의배치 - 프로그램을이해하고원시프로그램을목적프로그램으로번역하는데있어필요한정보를제공 2 구문요소 문자집합 - 일반적으로 ASCII 코드와같은표준화된집합을사용 - 알파벳(A~Z) 과아라비아숫자(0~9), 특수문자로이뤄짐 식별자 (Identifier) - 일반적으로문자로시작하고, 문자와숫자의열로구성 - 변수, 레이블, 프로시저등의이름으로쓰이는단어 - 한프로그램내에식별자는유일 핵심어 (Key Word) - 문장구문의고정된부분으로서, 특별한의미를가지고사용되는식별자 예약어 (Reserved Word) - 프로그래머가변수명등식별자로사용할수없는핵심어 -IF나 WHILE등이미사용의미가정해져있는단어 - 번역과정에서속도를높여줌 - 프로그램의신뢰성을향상시킴 잡음어 - 판독성을위해문장내에선택적으로사용하는단어 - 어떠한정보도가지고있지않음 문장 (Statement) - 프로그램을구성하는기본단위 - 하나의프로그램은여러개의문장으로구성 - 언어의정규성, 판독성, 기록성에영향을줌 구분문자 - 문장이나식과같은구문적인단위의시작과끝을나타냄 - 구문구조의경계를명시적으로정의함으로써모호함을삭제함 - 판독성을높임 연산식 (Expression) - 데이터를가져와연산을수행한후그결과값을반환 연산자 (Operator) - 한연산에서무엇을할것인가를나타내는부호 - 산술연산자, 비교연산자등 주석 (Comment) - 프로그램의판독성을향상 - 프로그램문서화의중요부분

13 2) 구문표기 1 구문(Syntax) : 프로그램문장요소들간의관계를나타내는결합법칙 2 BNF(Backus-Naur Form) - 프로그래밍언어의구문을표현할때일반적으로많이사용되는표기법 - John Backus 에의하여개발되고, Peter Naur에의해보강 - ALGOL 60 정의에사용 - 문맥자유문법(Context-Free Grammar) 을기반으로개발 - 생성규칙(Production Rule) 은 :: = 기호에의해좌, 우로나뉨 좌: 정의대상, 우: 대상에대한정의 - 메타기호 ::= : 정의( 좌측이우측으로정의) : 택일 <> :Non-Terminal 기호( 다시정의될대상) 3 EBNF(Extended BNF) - BNF를확장하여읽기쉽고간단하게표현한방법 - 반복되는부분이나선택적인부분을 BNF보다더욱간결하게표현 - 메타기호 {} : 0번이상반복 [] : 0번또는 1 번선택( 생략가능) () : 택일 4 구문도표 - BNF/EBNF 규칙을표현하는그래픽적인방법 - 형태가순서도와유사 - 사용기호 사각형 ( ) Non-Terminal 기호 원 ( ) 지시선 ( ) Terminal 흐름방향 기호 3) 파스트리(Parse Tree) 1 구문에의한문장생성을트리(Tree) 2 구문분석단계의결과물 3 수행의우선순위가표현 형태로표현 4 BNF에의해바르게작성되었는지확인 - 파스트리존재 : 주어진 BNF에의해올바르게작성됨 - 파스트리없음 : 주어진 BNF에의해작성불가 유도트리 : 구문분석기의출력으로생성되는트리가유도과정을나타낼때 파스트리 : BNF에의해올바르게작성되었는지확인할때 구문트리 : 파스트리에서불필요한자료를제거하고코드생성단계에서필요한정보만을갖도록표현한트리, 파스트리에서중간노드의 nonterminal은구문분석과정만을위

14 한것이므로코드생성단계에서는아무런의미가없고구문분석의시간지연과트리가차지하는기억장소의낭비를초래 2. 형식변환모델 1) 형식언어 1 형식언어의개념 - 언어에관한이론을전개하기위해잘정의된언어 - 무한한언어를유한하게표기할수있는문자열의집합(Symbolic String Set) - 언어의문장을이루는기본적인심벌은알파벳 2 구성요소 알파벳 - 언어를구성하는심벌들의유한집합(Finite Symbol Set) 스트링 - 일련의유한개의알파벳으로구성된집합(Finite String Set) - 스트링의길이는스트링을구성하는알파벳의개수 언어 - 스트링을구성하는형식적규칙의유한한집합(Finite Formal Rule Set) 연산 - 합집합(Union) - 접합(Concatenation) 연산 - 클로저(Closure) 연산 2) 형식문법 1형식문법정의 - 올바른문자열을결정하는생성규칙들의집합 - 형식언어를구성하고있는문자열에관한규칙을수학적기호를사용하여명시 - 촘스키(Chomsky) 에의해서소개된개념 2형식문법구성요소 G=(Vn,Vt,P,S) Vn -유한집합의 Non-Terminal 기호 - 문법에서어떤구문을표현하는기호 Vt -유한집합의 Terminal 기호 - 알파벳이나기호의집합 - 마지막단계에생성된문장은모두 Terminal P - 유한집합의생성규칙(production rule) - 문법규칙들의집합 S 문자로구성

15 - 생성규칙의시작기호 - Non-Terminal 기호집합에속하지만다른 Non-Terminal 3) 문법의구분촘스키의문법계층 - 기호와구별하여표기 1 Type 0 문법 - 무제한문법(Unrestricted Grammar) - 위축형문법(Contracting Grammar, Reducible Grammar) - 생성규칙에제한이없음 - 인식기 : 튜링기계(Turing Machine) 2 Type 1 문법 - 문맥연관문법(Context Sensitive Grammar) - 비위축형문법(Non-Contracting Grammar, Irreducible Grammar) - 너무복잡해서프로그래밍언어에적용하지않음 - 인식기: 선형제한오토마타(Linear Bounded Automata) 3 Type 2 문법 - 문맥자유문법(Context-Free Grammar) - 구문분석단계에서문맥자유문법(CFG) 을이용하여입력된문장이나프로그램의구문이옳은 지판단 - 대부분의프로그래밍언어는문맥자유문법(CFG) 으로표현 - 파스트리를자동으로생성하는데이용 - 스택으로구현될수있음 - 인식기 : 푸시- 다운오토마타(Push-Down Automata) 4 Type 3 문법 - 정규문법(Regular Grammar) - 휘분석단계에서정규문법(RG) 을이용하여프로그래밍언어의어휘구조 (Lexical Structure) 를표현 토큰구조표현 - 인식기 : 유한오토마타(Finite Automata) 4) 문맥자유언어 1 문맥자유언어 (Context-Free Language) - 문맥자유문법에의해서생성되는스트링의집합 2 유도 (Derivation)

16 - 임의의문장을얻기위해시작심벌로부터반복적으로생성규칙을적용해가는과정 - 하나의문장이나스트링에대한유도과정은여러개가존재함 - 대표적인유도과정으로좌측유도와우측유도가있다. 좌측유도 (Left-Most Derivation) : 가장왼쪽에있는 Non-terminal을그 Nonterminal에 관한생성규칙을적용하여대치하는것 우측유도 (Right-Most Derivation) : 가장오른쪽에있는 Non-terminal을그 Non-terminal 에관한생성규칙을적용하여대치하는것 3 모호성 (Ambiguity) - 모호한문법이란하나의문자열에대해상이한유도트리가나타날수있는문법 - 문법 G에의해생성되는어떤문장이좌측유도나우측유도어느한가지를사용하더라도두 개이상의유도트리를갖는경우모호성을가짐 - 연산순위또는결합법칙의정보를이용하여생성규칙을추가해서모호성을제거할수있음 4 푸시-다운오토마타 - 보조기억장치를갖고있음 - 입력심벌의일정한개수를셀수있음 - 유한상태제어기(Finite State Control), 입력테이프(Input Tape), 스택(Stack) 으로구성 5) 정규언어 1 정규언어 (Regular Language) - 정규문법에의해생성된언어 2 정규표현 (Regular Expression) - 정규언어를표현하기위한방법 - 정규문법으로부터얻을수있음 - 정규집합을형성하는기초가됨 - 유한오토마타를구성하는데사용 - 상태전이도로나타낼수있음 - 유한길이의스트링뿐만아니라모든형태의표현 3 유한오토마타 (Finite Automate) - 입력과출력의유한수의내부상태를가진시스템의수학적모델 - 표현을받아들이기효율적인오토마타 - 유한상태오토마타(FSA : Finite Stats Automate) 라고도함 - 유한오토마타를정의하기위해서는상태들의유한집합, 입력심벌의유한집합, 상태전이함수, - 시작상태, 종료상태의집합에대한정보가필요결정적유한오토마타와비결정적유한오토마타로구분된다. 4 결정적오토마타 (DFA : Deterministic Finte Automate) - 임의의상태에서입력기호에대해전이가하나만존재하거나전이가없는오토마타로서, 태와입력에대해발생하는모든전이가유일 특정상 5 비결정적오토마타 (NFA : Non-deterministic Finte Automate) - 임의의상태에서입력기호에대해전이할수있는다음상태가하나이상존재할수있는오토마타로서, 하나의입력에대해전이할수있는다음상태가여러개존재

17 4. 언어번역(2) 1. 언어의번역 1) 컴파일러구조 - 고급언어로작성된프로그램을실행하기위해서실행하고자하는컴퓨터의기계어로번역해야함 - 논리적으로언어번역은두단계를사용함 1 분석단계 : 입력된소스프로그램을분석하는단계 2 생성단계 : 실행가능한목적프로그램을생성하는단계 분석단계( 전반부) 생성단계( 후반부) 세부단계 - 어휘분석(Lexical Analysis) - 구문분석(Syntax Analysis) - 의미분석(Sementic Analysis) - 코드최적화(Code Optimization) - 코드생성(Code Generate) 특징 - - 언어당하나씩필요기계톡립적인부분 - 목적기계당하나씩필요 - 기계종석적인부분 3 고급언어의번역단계

18 2) 컴파일과정 1 선행처리 (Preprocessor) - 원시프로그램을처리하기전에먼저필요한작업을수행하는과정 - 선행처리기에의해원시프로그램을기존의고수준컴파일러언어로전환 2 어휘분석 (Lexical Analysis) - 구문단위를형성하는어휘항목을식별하기위한과정 - 열된문자들을기초적인구성요소( 식별자, 구분문자, 연산기호, 핵심어, 주석등) 로그룹화하는 단계 토큰생성단계 - 프로그래머가사용한명칭의속성등초기정보는심벌테이블에보관 - 어휘분석기(Lexical Analyzer) 를이용하여원시프로그램의문자열(Stream) 을프로그램구성의 기본요소(Token) 로구분 2. 언어의번역 어휘분석기 (Lexical Analyzer) * 원시프로그램을하나의긴스트링으로보고원시프로그램을문자단위로스캐닝하여문법적으로의미있는일련의문자들로분할해내는역할 * 원시프로그램(Source Program) 을읽어들여토큰(Token) 이라는문법적단위 (Syntactic Entity) 로분석 * 프로그래머가프로그램의설명을위해쓴주석(Comment) 은어휘분석기에서모두처리 * 일명스캐너(Scanner) 라고도불림 1) 구문분석(Syntax Analysis) - 파싱(Parsing) 이라고함 - 작성된프로그램이프로그래밍언어의문법에맞게작성되었는지유무를체크하는과정 -토큰들을문법에따라분석 - 구문분석의결과로파스트리를생성 - 문법이틀렸을경우오류메시지를출력하고실행을종료 - 구문분석기( 파서) 에의해처리 2) 의미분석(Semantic Analysis)

19 - 컴파일과정중가장중요한단계 - 구문분석기에의해인식된구문구조가처리되고실행가능한목적코드의구조가형성되기시작하는단계 - 매크로의처리, 오류의탐지, 심벌테이블의유지등의기능을수행 - 파스트리를이용하여실행가능한중간코드를생성 3) 코드최적화(Code Optimization) - 실행시간과기억장소의낭비를줄이기위한과정 - 중간코드간의상호관계의효율성을고려하여최적화된코드로변환하는단계 - 실행결과에는변화를주지않음 4) 목적코드생성(Object Code Generation) - 최적화된코드를어셈블리어문장이나기계코드로출력되어야하는다른목적 - 프로그램의형태로바뀌는과정 5) 링크(Link) - 목적코드를실행가능한파일로변경하는과정 6) 구문분석(Syntax Analysis) 1 구문분석기파서의 ( ) 역할 - 입력으로받아들인스트링이주어진프로그래밍언어의문법에맞는가를판단하는기능을수행 - 문법에맞는가를파악하기위해파스트리를출력 7) 파싱기법의종류 1 상향식(Bottom-Up) 파싱 - Shift Reduce 파싱이라고함 - 우측유도(Right-Most Derivation) 과정의역순으로생성 - 단말노드(Terminal Node) 로부터시작하여루트노드(Root Node) 방향으로생성 - 시작심벌이만들어지면올바른문장이고, 그렇지않으면틀린문장 - 종류 : Shift Reduce Parser, LR Parser 2 하향식(Top-Down) 파싱 - 좌측유도(Left-Most Derivation) 과정으로생성 - 루트노드로부터시작하여단말노드방향으로생성 - 반복검조(Backtracking) 방법을사용 - 파싱할수있는문법에 Left Recursion 이없어야하고, Left Factoring을해야하므로상향식보 다일반적이지못함 - 종류 : Predictive Parser( 예측파서), LL Parser, Recursive Descent Parser( 재귀하향식파서) 8) LR과 LL 구문분석기법

20 1 2 LR 구문분석 - 입력문자열의왼쪽에서오른쪽으로읽음 Left to Right Scanning - 우측유도함 Right-Most Derivation - 가장보편적인파싱방법 - 상향식파싱 - 반복검조(Backtracking) 를하지않음 - Shift Reduce를할수있음 - 예측파서로파싱할수있는모든문법파싱이가능 - 구문오류검출이빠름 - 문맥자유문법으로쓰일수있는모든언어들을인식할수있음 - LR 파서와같은특정도구를필요 - 종류 : SLR(Simple LR), LALR(Look Ahead LR), CLR(Canonical LR) 등 LL 구문분석 - 입력문자열의왼쪽에서오른쪽으로읽음 Left to Right Scanning - 좌측유도함 Left-Most Derivation - 하향식파싱 - 하향식의반복검조(Backtracking) 또는좌측순환(Left Recursion) 의문제에대한해결책 - LR 에비해제약성이많아원래프로그램구조를문법규칙에나타내기어렵지만, 구조가단순한 언어에대해서는구현이용이 - 생성된터미널과입력심벌이같지않으면틀린문장으로간주 5. 순서제어(1) 1. 순서제어 1) 묵시적/ 명시적순서제어 1 묵시적(Implicit) 순서제어 - 프로그래머가제어를명시하지않으면해당언어에서정의한순서에따라제어 - 일반언어에서순서를명시적으로제어하는문장이없으면문장나열순서대로제어 - 수식에서괄호가없으면연산자우선순위에의해서수식이계산 2 명시적(Explicit) 순서제어 - 해당언어에서각문장이나연산의순서를프로그래머가직접변경 -GOTO문이나반복문을사용해서문장의실행순서를변경 - 수식의괄호를사용해서연산의순서를변경 2) 수식에서의순서제어 1 식 (Expression) 구성 - 피연산자와연산자로이루어짐 - 피연산자(Operand) : 상수, 변수, 함수호출등을 - 연산자(Operator) : 미리정의되어있거나사용자가정의하여사용

21 - 단항연산자 : 하나의피연산자를가짐예) NOT, COMPLEMENT, MOVE, SHIFT 등 - 이항연산자 : 두개의피연산자를가짐예)AND,XOR,OR등 - 삼항연산자 : 세개의피연산자를가짐예) 조건연산자조건 (? 참일때수식: 거짓일때수식) 일반적인연산순서 - 여러연산자가함께인경우연산자의우선순위와결합규칙을고려하여계산 - 연산자의우선순위는대수법칙의우선순위와같음 - 결합규칙은왼쪽에서오른쪽으로계산 - 괄호안의식을최우선순위로함 장점 : 괄호를사용하면프로그램을읽기쉬워짐단점 : 괄호를남용하면프로그램해석이난해함 3) 수식구문의표현방법 1 중위표기법 (Infix Notation) - 일반적으로많이사용하는표기법으로인간이가장이해하기쉬운표기법 - 수학적산술연산, 비교연산등이항(Binary) 연산에적합하지만단항(Unary) 연산에는적합하지않음 - 피연산자 연산자 피연산자순으로표기( A+B/C) 2 전위표기법 (Prefix Notation) - 기계어로표현하기쉬움 -연산자 피연산자 피연산자순으로표기 - 예) 중위표기법을전위표기법으로변환하기 1 A+B/C 중위표기법 2 (A+(B/C)) 연산순서에따라괄호로묶음 3 +(A/(BC)) 연산자를괄호왼쪽앞으로이동 4 +A/BC 괄호를제거 3 후위표기법 (Postfix Notation) - 스택을이용한계산에유용 -피연산자 피연산자 연산자순으로표기 - 예) 중위표기법을후위표기법으로변환하기 1 A+B/C 중위표기법 2 (A+(B/C)) 연산순서에따라괄호로묶음 3 (A(BC)/)+ 연산자를괄호오른쪽뒤로이동 4 ABC/+ 괄호를제거 4) 트리 - 비선형구조이며수식의순서제어를명료화 - 루트(Root) 노드를최상위레벨로하는계층적구조로구성 - 한노드에는자식노드들이연결되며, 자식노드또한자기의자식노드를가짐 - 한노드의바로상위노드를그노드의부모노드라고함 - 2 진트리 : 노드의차수(Degree) 가 2 이하인트리

22 트리에사용되는용어노드(Noed) : 트리를구성하는요소루트(Root) : 최상위레벨에있는노드간선(Edge) : 노드와노드를연결하는선차수(Degree) : 현재선택된노드에서갈라지는간선의수트리의차수: 트리내의노드의최대차수부모노드(Parent Node) : 노드에연결된바로상위노드자식노드(Child Node) : 노드에연결된바로하위노드형제노드(Brother/Sibling Node) : 동일한부모노드를갖는노드단노드(Terminal/Leaf Node) : 차수가0인노드간노드(Nonterminal/Branch Node) : 차수가0이아닌노드 5) 문장에서의순서제어 -순서제어방법 1 기본적인프로그램의문장실행순서는순차적 2 제어문을통해반복또는건너뛸수있음 - 순차실행 : 각문장이순서대로실행 - 선택실행 : 조건에따라두가지의수행경로에있는일련의문장들중하나가선택되어실행 - 반복실행 : 조건에따라실행하지않거나조건에만족할때까지반복되어실행 - GOTO 문 : 임의의위치로순서를바꿈 6) GOTO 문 : 무조건분기문 - 명령문과레이블명부분으로구분 - 레이블이있는문장으로제어가이동 - 블록개념이없는저급의제어구조 - 이론적으로는모든제어구조를표현 - 작은프로그램에서사용하기쉽고간단 - 프로그램의작성이비구조적 - 계층적인프로그램작성이어려움 - 디버깅및유지보수가어려움 - 많이사용할경우프로그램을이해하기어렵움 - FORTRAN, COBOL, BASIC 등에서사용 6 순서제어(2) 1. 구조적프로그래밍 1) 개요 - GOTO 문을사용하지않음 - 순차, 선택, 반복의 3가지구조를사용 - 하나의입력과출력을가짐 - 블록구조를가지는모듈화프로그램

23 - 기능별부프로그램으로작성 - 가독성이좋음 - 정확성을입증하기쉬움 -개발및유지보수가용이 2) 설계 - 프로그램의이해가쉽고디버깅작업이쉽도록함 -한개의입구와한개의출구구조를갖도록함 - 계층적설계를함 -GOTO 문을사용하지않도록함 - 모듈이블록구조를가지도록함 3) 구조적프로그램기본구조 1 순차구조 (Sequence Structure) - 문법에맞게논리적으로나열 - 일반적으로논리적으로나열된순서대로실행 2 선택( 조건) 구조(Selection 또는 Condition Structure) - 주어진조건에따라프로그램문장의실행순서를제어하는명령 3 IF문 - 조건식은불리언(Boolean) 수식 - else를사용하면조건에따라양자택일 양자택일 if문 - else if를사용하면여러가지조건으로판단 다중 if문 - 다중 IF 문의경우가독성이떨어짐 - 형식 단일 if문 If ( 조건) 문장 1; 양자택일 if문 If ( 조건) 문장 1; else 문장 2; 다중 if문 If ( 조건 1) 문장 1; else if( 조건 2) 문장 2; else 문장 3; 4 SWITCH 문 - 다중선택문 - 다중IF 문대신사용 - 다중 IF 문의문제점을해결

24 - 형식 switch ( 조건) { case 값 1 ; 문장1; break; case 값 n ; 문장n; break; default ; 문장 n+1; } BREAK 문 - 반복루프를탈출, SWITCH문에서필수적으로사용 CONTINUE 문 - 해당반복루프의시작으로돌아가다시반복을실행 4) 반복구조(Iteration 또는 Repetition Structure) - 특정부분을반복처리할때사용 1 FOR문 - 반복변수를이용한반복문 - 일정횟수만큼반복적으로수행하고자할때사용 - 초기식은변수를초기화하는부분으로딱한번수행 - 초기식, 조건식, 증감식모두생락이가능 모두생략되면무한루프 - 형식 for ( 초기식; 조건식; 증감식;) { 문장 1; ~ 문장 n; 2 WHILE 문 - 조건을검사한후실행문의실행및반복여부를판단 - 조건의초기값이거짓이면 WHILE 문내의문장은한번도실행되지않음 - 형식 while ( 조건) { 문장 1; ~ 문장 n; 3 DO~WHILE 문 - 문장을실행한후조건을검사하여반복여부를판단 - 최소한한번은문장을실행 - 형식 do {

25 문장 1: ~ 문장 n; 2. 매크로와부프로그램 1) 매크로(Macro) - Open Subprogram - 자주반복되는일련의명령을하나의블록으로묶어이름을부여한후사용할곳에이름을지정하여수행 - 프로그래머가어셈블리어언어(Assembly Language) 로프로그램을작성할때반복되는일련의같은연산을효과적으로하기위해필요 - 번역되기전매크로처리기에의해확장이일어남 - 실행이빠름 - 메모리사용량이많음 2) 부프로그램(Subprogram) - 주프로그램또는다른부프로그램에의해서사용되는하나의독립된단위 - 한프로그램내에서특정한일이여러번실행될필요가있을때이를부프로그램으로작성 - 고급언어에서는프로그램의모듈화를위해서부프로그램을지원 - 부프로그램은자신이호출될경우에실행이시작되는보조적인루틴 컴파일후실행시에 Call/Return에의해실행 -복귀반환 ( ) 주소의저장과조회를위해스택이라는자료구조를활용 - 부프로그램은함수(Function) 와서브루틴(Subroutine 또는 Procedure) 으로구분 - 부프로그램의장점 1 프로그래밍에드는시간을절약할수있음 2 작성된프로그램은다른여러프로그램에서공동으로사용할수있음( 재사용가능) 3 프로그램의크기가작아져기억장소가절약되고가독성이높아짐 4 프로그램의유지 보수가용이 - 부프로그램의단점 1 부프로그램호출시마다생성되어야하므로실행시간은상대적으로느려짐 3) 부프로그램선언시필요사항 - 부프로그램의이름 - 부프로그램인수 - 인수의유형 - 반환되는값 - 반환되는값의유형 - 부프로그램에서수행하는기능 4) 매개변수 - 함수의인수 -함수호출과실행에필요한데이터의전달변수 - 실매개변수와형식매개변수는항상 1:1로대응 - 형식매개변수 (Formal Parameter) 1 값을전달받는변수

26 2 함수의원형에있는매개변수 - 실매개변수 (Actual Parameter) 1 함수호출시전달되는실제의값 2 함수의호출에있는매개변수 -전달방법 값에의한호출 (Call by Value) - 주프로그램에서부프로그램을호출하여실행할때변수의값을전달하는방법 - 실매개변수의값을형식매개변수에복사하여일반지역변수처럼사용 - 실매개변수와형식매개변수는별도의기억장소를가지므로, 형식매개변수의값이변해도실매개변수의값은변하지않음 참조에의한호출 (Call by Reference) - 주소에의한호출(Call by Address) - 실매개변수의주소를형식매개변수에전달하는방법 - 실매개변수와형식매개변수는기억장소를공유하므로, 형식매개변수의값이변하면실매개변수의값은변함 이름에의한호출 (Call by Name) - 주프로그램에서부프로그램으로변수자체가전달되는방법 - 대부분의언어에서채택하지않는방식 5) 부프로그램순서제어 1 단순호출-반환부프로그램 - 호출된부프로그램은다시다른부프로그램을호출할수있음 - 호출된부프로그램이수행을종료하면호출한프로그램으로제어를반환 - 호출된부프로그램이제어를반환하면호출한위치바로다음부터다시실행 2 되부름부프로그램( 재귀적호출) - 부프로그램자신을다시호출하는형태 - 부프로그램 S 는자기자신(S) 을호출 - 부프로그램S는다른부프로그램F 를호출할수있고, F는다시S를호출 3 코루틴 (Coroutine) - 부프로그램의수행이완전히종료되기전에호출할수있는부프로그램의미 - 두모듈이서로호출하는형태로대등하게관계를가지며실행 - 코루틴이호출되면일부분만수행하고제어를반환할수있음 6) 활성레코드(Active Record) - 프로그램메인루틴의수행시에서브루틴을호출할때만들어짐 - 단위프로그램( 프로그램의선언/ 실행) 이활성화될때마다생성 - 지역변수및프로그램수행에필요한정보가들어있음 - 매개변수(parameter), 지역변수(local variable), 복귀주소(return address) 가들어있음 - 내용이나크기가가변적임

27 7. 자료형(1) 1. 형과객체의특징 1) 형(Type) 1 자료형 - 값의유형과값들에대한연산들의집합 컴퓨터언어에서의자료형 : 기본자료형, 구조화자료형 - 기본자료형 : 정수형, 실수형, 논리형(Boolean), 문자형, 열거형, 부분영역형등 - 구조화자료형 : 배열형, 레코드형, 포인터형등 정의주체에따른자료형: 프로그래머정의자료형, 시스템정의자료형 - 프로그래머 : 수, 배열, 입출력파일등 - 시스템: 스택, 버퍼, 참조환경등 2 형(Type) 정보의구분 명시적(Explicit) 형 - 정보주로선언문에나타남 묵시적(Implicit) 형 - 정보상수나값의형, 이름작성규칙, 문맥등에의해알수있음 2) 형에따른언어 1 강형언어 - Strongly Typed Language - 형을정적으로결정한다. - 형일관성및형추론규칙이완전하게정의된언어 - 형오류번역시모두검출할수있도록자료형이엄격하게정의된언어 - 자료형에관한모든특성들이컴파일시간에확정되는언어 - 프로그램의신뢰성, 유지보수성, 판독성을증가시킴 2 약형언어 - Weakly Typed Language - 정적인형체계를전혀갖추지않음 - 예) LISP, SNOBOL, APL 등 3) 형정보의이용 - 형정보를이용하여프로그램의신뢰성, 가독성, 효율성, 유지보수성을높일수있음 1 오류검출 : 번역기가형정보로연산의적합성을조사하여오류검출에사용 2 기억장소할당 : 번역기가형정보를기억장소의효율적인할당에사용 4) 형조사 - 번역과정( 의미분석단계) 에서프로그램내부에형정보의일관성이있는지조사하는과정 1 동적조사 - 약형언어, 인터프리터언어 - 실행시에형조사를함

28 - 실행부분만조사하므로형오류를찾아내지못할수도있음 - 프로그램설계시융통성을줌 - 대화형언어에적합함 - 프로그램이수행되는과정내에자료형을변경할수있음 - 프로그램수행중정보를유지할필요가있으므로추가기억장소를필요로함 - 프로그램의실행속도가떨어짐 2 정적조사 - 강형언어, 컴파일러언어 - 번역시에형조사를함 - 형조사가실행이전에컴파일러에의해이루어지므로오류를일찍발견 - 융통성이떨어짐 5) 변수와상수 1 변수 - 프로그래머가프로그램내에서정의하고이름을줄수있는자료 - 기억장소의한장소를추상화한것 - 이름, 속성의집합, 참조, 값으로구성 - 변수의속성들은실수, 정수등과같은값이가질수있는자료형을말함 - 변수의속성은컴파일시간에한번정해지면그다음부터일반적으로변할수없음 - 변수의값은프로그램이동작되는동안수시로바뀔수있음 2 상수 - 수명시간동안고정된하나의값과이름을가진자료 - 프로그램이동작되는동안값이절대로바뀌지않는공간을의미 6) 선언문 - 프로그램에서사용할자료형에관한정보를컴파일러나인터프리터에게알려주는문장 - 보다효율적인주기억장치의사용과접근이가능 - 보다효율적인주기억장치의할당기법을사용 - 컴파일시간에변수형검사가가능 7) 묵시적변수선언 - 일부언어는선언문을사용하지않고묵시적변수를선언하기도함 1 FORTRAN - 정수 : 변수의첫글자가 1에서 N사이의문자일경우 - 실수 : 그외 2 BASIC - 정수 : 변수의끝이 % 인경우 - 문자열 : 변수의끝이 $ 인경우 - 실수 : 그외 3 Pert - 배열 : 를붙인경우 - Scalar 형: 변수명앞에$ 를붙인경우 8) 배정문( 대입문) - 변수의내용을변경하는기본연산

29 - 프로그램에서가장일반적인연산문 식 A :=B; 의미 B의주소에저장된값을 A의주소값에대입 - A는 L-Value, B는 R-Value L-Value - Left-hand side Value - 주소를의미 - 지정연산자의왼쪽변수 -모든변수명은변수값이저장될 L-Value를가짐 R-Value - Right-hand side Value - 값을의미 - 지정연산자의오른쪽변수 -상수는 R-Value만을가짐 9) 유해요소 1 자료객체의별명 (Alias) - 자료객체는생존기간중여러별명을가질수있음 - 일반적으로별명은프로그램의이해를매우어렵게함 - 자료객체가여러가지별명을갖는경우프로그램의무결점검증이어려워짐 - 같은참조환경에서다른이름으로같은자료객체를참조할수있는언어의경우, 프로그래머에게심각한어려움을줄수있음 2 부작용 (Side Effect) - 프로그램을구성하는함수에서전역변수를사용하여함수의결과를반환하는경우, 함수에전달되는입력파라미터의값이같아도전역변수의상태에따라함수에서반환되는값이달라질수있는현상 - 전역변수를액세스하거나변경또는문장에나타나지않은변수의값을변경시킴 - 참조에의한전달(Call by Reference) 과이름에의한전달(Call by Name) 에서발생 - 전역변수의단점을보완하기위해서매개변수전달기법을사용 2. 기본자료형 1) 기본자료형 1 본래의구조이외에다른구조를가질수없는자료형 - 기존에정의된형 : 정수형, 실수형, 논리형, 문자형, 무치형(void) 등 - 기존에정의되지않은형 : 열거형, 부분범위형등 2 문자형 BCD 코드 - 2진화 10 진코드(Binary Coded Decimal) 로대표적인가중치코드(Weighted Code) 이며 8421 코드라고도함 -6비트로구성 ZONE(2 비트)+Digit(4 비트) -26의 64가지의서로다른문자를표현 BCD 코드변환하기 10진수 634를 BCD 코드로변환하기 (0110)2 (0011)2 (0100)2

30 2 수치형 ASCII 코드 - 미국표준기구에의해개발된표준형코드(American Standard Code for Information Interchange) 로대부분의언어에서사용 - 7비트로구성 ZONE(3 비트) + Digit(4 비트) -2 7 가지의서로다른문자를표현 - 데이터통신을위한정보교환코드로개인용컴퓨터에사용 - 오류를검출하는 1개의패리티비트 EBCDIC 코드 - 확장 2진화 10 진코드(Extended Binary Coded Decimal Interchange Code) 로 BCD를확장한코드 - 8비트로구성 ZONE(4 비트) + Digit(4 비트) -2 8 가지의서로다른문자를표현 - 대형컴퓨터에서많이사용 고정소수점방식 - 소수점위치가항상고정 - 연산속도가빠름 - 수표현범위가한정 - 가장왼쪽비트를부호비트로사용 - 수의표현범위 부호와절대치 -(2n-1-1) ~ 2n-1-1 1의보수 -(2n-1-1) ~ 2n-1-1 2의보수 -2n-1 ~ 2n-1-1 부동소수점방식 - 실수표현을위한방식으로지수부와가수부로구성 - 지수부와가수부로분리하기위한정규화과정이필요 - 소수점은자릿수를차지하지않는다. 소수점은지수부와가수부사이에있는것으로간주 - 아주큰수나아주작은수의표현이가능 - 연산속도가고정소수점방식에비해느림 3 논리형 - 불(Boolean) 자료형이라고도함

31 - 논리형의값은 True( 참) 와 False( 거짓) 로구성 - 하나의비트에대응 논리곱 (A AND B) :A,B 둘다참일때만참이고, 그외는거짓 논리합 (AORB) : A, B 둘다거짓일때만거짓이고, 그외는참 부정 (NOT A) : A 가참이면거짓이고, 거짓이면참 조건 (A Implies B) : A와B 의값참 (, 거짓이반대일때만참 ) 동치 (A Equivalent B) : A와 B의값이동일할때만참 4 열거형 - 순서가값에대치 - 사용자정의형(Scalar) 5 부분범위형 - 이미정의된나열가능한자료형의부분범위로서정의되는자료형 - 정수형, 열거형에적용할수있으나실수형에는허용되지않음 - PASCAL, Ada 등에서지원 2) 배열(Array) - 동일한형의자료들을모아서하나의변수에연속적으로저장하여사용 - 원소의구별은 첨자(index)' 로함 - 원소의수는정해져있음 - 선형리스트를의미하는순차구조를가짐 - 주기억장치에순차적으로사상 - 배열의 이름, 차원, 형(Type)',' 인덱스의범위 는명시적으로제시해야하는항목 1 1차원 - 자료형배열명 [ 첨자] 2 2차원 - 자료형배열명 [ 행첨자][ 열첨자] 3 3차원 - 자료형배열명 [ 면첨자][ 행첨자][ 열첨자] 3) 레코드(Record) - 서로다른자료형을갖는연관성있는자료들을하나의집합으로묶어사용 - 원소의구별은 이름( 식별자) 으로함 - 주기억장치에블록단위로구성 - COBOL, PL/I, PASCAL, C 등 4) 포인터(Pointer) - 다른객체를가리키는자료형 - 고급언어에서사용되는기법으로객체의참조를위해주소를값으로가짐 - 하나의자료에동시에많은리스트의연결이가능

32 - 커다란배열에원소를효율적으로저장할때이용 -C/C++,Ada,PASCAL,Module-2등 8. 자료형(2) 1. C 언어와자료형 1) C 언어의개요 1 C언어의특징 - 고급언어, 시스템프로그래밍언어, 컴파일언어에속함 - 고급언어와저급언어의특성을모두가짐 - 여러개의함수로구성 - 구조적프로그램기법 - 프로그램분석및수정이쉬움 - 하드웨어제어가가능 - 다양한연산자를가짐 - 이식성이뛰어난언어 2 C 프로그램작성규칙 - 예약어, 함수, 연산자, 식별어, 상수, 변수등의요소로이루워짐 - 프로그램은 main( ) 함수로부터시작 - 모든프로그램은한개이상의함수로구성되며, 함수는한개이상의문장을포함 - 함수내의문장은블록 { } 내에포함되어야함 - 한문장이끝날때마다반드시세미콜론(;) 을씀 - 한줄에두개이상의문장을쓸수있음 2) 기본구조 1 전자처리기선언부 - 소스파일을번역하기전에선행처리지시자가사용된문장을미리처리하는부분 - C언어문법과는관계없이독립적으로사용 - 프로그램을매우효율적으로작성하도록함 - 프로그램을표준화할수있음 - 선행처리지시자 : #include, #define, #undef, #if, #elif, #else 등... #include - 컴파일러가헤더파일을불러와프로그램에포함 #include <*.h> #include =#.h= #include 매크로상수 #define - 매크로정의를위해사용되는선행처리지시자 - 반복적으로사용되는상수또는문장등을간단한기호( 매크로명) 로정의해놓고소스작성시사용 #define 매크로명( 인수1, 인수2...) 치환내용

33 2 main 함수 - 프로그램이시작될수있도록하는프로그램의본체에해당 - 한프로그램에항상존재하여야하는주함수부분 -voldmain() { 선언문 ; 명령문 ; : } 3 사용자정의함수 - 함수란프로그램내에서특정한부분을수행하도록독립적으로만들어지는하나의단위 - 사용자가직접정의하여사용하는부분 -main() 을제외한각함수들은수평적관계를가짐 - 함수명() { 선언문 ; 명령문 ; : } 3) 블록구조 - 프로그램에서사용하는식별자또는변수의자료형을명시적으로선언 - 사용할프로그램의문장근처에서선언하기때문에프로그램의지역성(Locality) 을높임 - 프로그램의변수명과삽입되는라이브러리루틴의변수명이같더라도문제점이없음 - 프로그램의블록내포관계를기준으로지역변수와비지역변수의영역을정함 - 프로그램을구성하는블록을기준으로기억장소를동적으로할당 - 블록안에선언된변수는해당블록에서만유효하기때문에자료의보호와제어가용이 - 블록에선언된변수는블록의실행시간에만기억장소를할당받고, 블록의실행이끝나면자동적 으로회수되므로기억장소의사용을향상시킴 - 변수에대한기억장소의할당과창조에따른제어를프로그래머에게일임할수있음 - 프로그램의구성을단계적으로세분화하는데도움을줌 - 프로그램을간소화시켜프로그램의이해를향상시킴 - 프로그램의블록단위로삽입, 삭제, 수정할수있어개발이용이 - 프로그램의논리적오류를블록으로제한시켜프로그램수정용이 4) 자료형종류

34 5) 변수(Variable) -값데이터을저장할수있는기억장소 ( ) - 사용자가임의대로만들어사용할수있음 1 5 가지기본자료형 Ttype 의미크기 char 문자데이터 1byte int 부호있는정수 2byte float 실수 4byte double 배정도의실수 8byte void 값이없음 - 2 변수작성규칙 - 영문자의대/ 소문자, 숫자(0~9) 및 Underscore(_) 를조합하여구성 - 첫글자는반드시영문자이어야함 - 대소문자를구분 - 공백을사용할수없음 - 길이제한이없음 - 예약어는변수로사용할수없음 3 예약어 (Reserved Word) - 시스템이알고있는특수한기능을수행하도록이미용도가정해져있는단어 - 프로그래머가변수이름이나다른목적으로사용할수없는핵심어(Key Word) 4 기억클래스

35 - - 기억장소의할당에따라지역변수와전역변수로구분 전역(Global) 변수 : 함수외부에서선언한다. 프로그램어디에서나액세스가가능 지역(Local) 변수: 함수내부에서선언한다. 정의된함수내에서만액세스할수있음기억클래스의종류 저장클래스를명시하지않은경우기본적으로자동변수(auto) 로간주 6) 상수(Constant) 1 변하지않는값을의미 2 변수를기억장소로사용 종류지정자사용범위 자동변수 Auto 함수내부 정적변수 Static 함수내부 레지스터변수 Register 함수내부 전역변수 Extern 연결된모든파일 외부정적변수 static 하나의파일 3 변수와마찬가지로지정된자료형에맞는상수를사용 정수형상수 - 소수점이없는수를의미 - 부호를포함할수있으며, 부호가없으면양수로간주 -10 진수,8 진수,16 진수,long형상수를가짐 10 진수 : 0~9의조합으로만들어진수 8 진수 : 0~7 의조합으로만들어진다. 0으로시작 16 진수 : 0~9와 A~F 의조합으로만들어진다. 0x로시작 long 형상수: 숫자끝에L을붙여사용 실수형상수 - 소수점을갖는수를의미 - 부동소수점상수(Floating-Point Constant) 라고도함 - 지수형태로표현할수있으며, 지수형태로표현시부호, 지수부, 가수부로구분 문자상수 (Character Constant) - 사용가능한단일문자 - 인용부호' ' 안에지정 - 문자상수에해당하는 ASCII 코드값으로저장 문자데이터와정수형데이터의형변 - 환이자유로움예) 'A',' 4' 등 문자열상수 (String Constant) - 문자상수의집합 - 이중인용부호" " 안에지정한

36 - 문자열을사용하기위해서는배열변수를사용 - 기억공간은실제문자열수에 Null( 0) 문자가들어갈공간을포함하여할당 - 예) "min"= 3byte. 실제기억공간은4byte 기호상수 - 상수에부여한이름을의미 - #define 문을이용하여정의 7) 형변환(Type conversion) 1 자동형변환 - 묵시적형변환이라고함 - 여러개의변수가혼합되어사용되는경우변환규칙에따라자동으로형이변환 - 두개이상의자료형이혼합된연산에서는순위가높은자료형으로변환한후계산 - 형변환시자료형우선순위 char<short<int<long<float<double 2 수동형변환 - 명시적형변환이라고함 - cast 연산자에의해강제적으로형변환 - 프로그래머가직접지시 - 자동형변환보다우선시함 8) 연산자(Operator) -변수, 상수, 함수호출값에대해서연산을수행하여결과를제공 - 연산자의종류 연산자 종류 산술연산자 +,-,*,/,% 증감연산자 ++, -- 관계( 비교) 연산자 <, <=, >, >=, ==,!= 일반논리연산자 &&,II,! 비트단위연산자 비트논리연산자 &,I,~,^ Shift 연산자 <<, >> 조건( 선택) 연산자?: 산술연산자 - 단항연산자로쓰인 +,-는이항연산자보다우선순위가높음

37 - 이항연산자는 +,-는서로동일한우선순위 -*,/,% 는서로동일한우선순위 - 이항연산자 +,- 는 *, /, % 보다우선순위가낮음 -/( 나눗셈) 연산자는피연산자의자료에따라결과값의자료형이달라짐 -%( 나머지) 연산자는정수형에만사용할수있음 * 곱셈 / 나눗셈 % 나머지 + 덧셈 - 뺄셈 증감연산자 - 증감또는감소의수식을간략하게표현 - 전위형과후위형형태로사용 전위형 : 우선변수의값을 1 증가/ 감소시킨후변수의값을수식에사용예 ) ++a 후위형 : 현재변수의값을수식에사용한다음변수의값을증가/ 감소예 ) a 회증가 -- 1회감소 관계연산자 - 결과값은관계식이참(True) 이면 1, 거짓(False) 이면 0으로표시 - 관계연산자들은모두우선수위가같음 - 좌측에서우측으로실행 < ~ 보다작음 <= ~ 보다작거나같음 > ~ 보다큼 >= ~ 보다크거나같음 == ~ 와같음 I= ~ 와같지않음 일반논리연산자 - 관계연산자와마찬가지로결과값은관계식이참(True) 이면 1, 거짓(False) 이면 0으로표시 -NOT>AND>OR순으로우선순위를가짐

38 ! && ll NOT 피연산자의값이참 거짓으로전환피연산자의값이거짓 참으로전환 AND 두피연산자의값이모두참일때만결과가참 OR 두피연산자의값이모두거짓일때만결과가거짓 비트논리연산자 - 연산대상이비트(bit) - 연산대상을 2진수로변환후연산 -NOT>AND>XOR>OR순으로우선순위 ~ NOT 1 0 으로변환, 0 1로변환 & ^ AND XOR 두비트모두참일때만결과가참 두비트가서로다르면결과가참 l OR 두비트가모두거짓일때만결과가거짓 Shift 연산자 - 비트단위로연산을행함 - 비트를왼쪽또는오른쪽으로이동시키는역할을함 - 이동후빈자리는0을삽입함 << >> X2^ 왼쪽으로비트를이동 a<<2 : a를 2진수로변환후왼쪽으로 2비트이동 /2^ 오른쪽으로비트를이동 조건연산자 -3 항연산자또는선택연산자 - IF~Else와같은의미를갖음 조건식? 참일때수식 : 거짓일때수식 변환(Cast) 연산자 - 변수또는상수의자료형을강제적으로변환 - 반드시괄호를사용 ( 자료형명) 변수 [ 또는상수] 콤마연산자 - 동일한형의변수나실행문의나열또는산술식에사용 sizeof 연산자 - 자료형이나수식의기억장소크기를알수있음

39 sizeof( 인수) 대입연산자 - 증감연산자처럼수식을간결하게표현 = A=b+c b+c는값을 A에저장 += A+=b A=A+b -= A-=b A=A-b *= A*=b A=A*b /= A/=b A=A/b %= A%=b A=A%b &= A&=b A=A&b l= Al=b A=Alb ^= A ^=b A=A^b <<= A<<=b A=A<<b >>= A>>=b A=A>>b - 연산자우선순위 괄호() > 단항 > 산술 > 관계 > 논리 > 대입 2. 제어문 1) 제어문 - 주어진조건의결과값에따라프로그램의수행순서를제어하거나문장들의수행횟수를조정 - 프로그램의흐름을지시하는데사용 1 IF 문 - 주어진조건에따라프로그램의순서를제어 -단일 IF 문, 양자택일 IF 문, 다중 IF 문으로구분 2 Switch~Case 문 - 다중선택문 - 다중 IF 문의복잡함을해결 2) 반복문 1 While 문 - 조건이만족하는동안 while 문안의내용을반복수행 - 조건이만족하지않으면한번도수행되지않을수있음 - 단일 while 문, 다중 while 문으로구분 2 do~while 문 - 조건이만족하지않아도일단은한번수행 - 조건식이참인동안 while 문의내용을반복수행 - 맨마지막에세미콜론(;) 이필요

40 3 for 문 - 조건식이만족하지않을때까지 for 문안이내용을반복 -단일 for문과다중 for문으로구분 3) 기타제어문 1 break 문 -for,while,switch문과 같은반복문이나조건문수행중범위를벗어나고자할경우사용 2 continue 문 - break 문과상반되는제어문 - continue 문이후문장을무시하고, 반복조건식으로이동 4) 변환문자 %d 인수를 10진수로변환 %o 인수를 8진수로변환 %x 인수를 16진수로변환 정수형 %u 인수를부호없는 10진수로변환 %c 인수를하나의문자로변환문자형 %s 인수를문자열로변환문자열 %f 인수를실수로변환 %e 인수를지수형태로변환 실수형 5) 확장문자(Escape Sequence) \ n New line 줄바꿈 \ t Horizontaltab 수평으로탭만큼칸을띄움 \ b Backspace 커서를뒤로한칸이동 \ r Carriage return 현재라인의처음으로커서를이동 \ o Null 낼문자를사용 \ f Form feed 한페이지를넘김 \\ Backsiash 역슬래시 (\) 를출력 \' Single quote 작은따옴표( ) 를출력 \" Double quote 큰따옴표( ) 를출력 \ a Beep 벨소리를발생

41 9. 운영체제관리 1. 운영체제관리 1) 프로세스(Process) 1프로세서(Processor) 에의해처리 2 특정한기능을수행하는단위프로그램 - 실행중인프로그램 - 프로세서가할당된개체(Entity) - 프로세서가활동중인것 - 디스패치(Dispatch) 가가능한단위 - 비동기적인행위(Asynchronous Activity) 를일으키는단위 - 운영체제가관리하는실행단위 2) 상태 1 준비(Ready) : CPU를할당받기위해주기억장치에서준비중인상태 2 실행(Running) : CPU를할당받아프로세스가실행중인상태 3 대기(Block) : 어떤사건이발생하기전까지실행될수없는상태 3) 프로세스제어블록(PCB : Process Control Block) 1 운영체제가프로세스에대한중요정보를저장해놓은자료구조 2 문맥교환발생시현재실행중인프로세스의정보를 PCB에저장한후제어가변경 3 PCB의내용 - 프로세스의고유식별자(Identifier) - 프로세스의우선순위 - 프로세스의현재상태 - 프로세스의부모와자식프로세스에대한정보 - 프로세스가위치한주기억장소의영역 - 프로그램카운터 -CPU레지스터정보 - 기억장치관리정보 - 계정(Accounting) 정보 - 입출력정보 4) 인터럽트(Interrupt) - 컴퓨터시스템에서발생하는예외적인사건을운영체제에의해적절히처리하기위한기법

42 - 인터럽트가발생하게되면인터럽트처리루틴을먼저수행한후원래의프로그램으로복귀 -시스템에변화가일어났을때만CPU에게보고하여조치를받을수있으므로CPU의효율성이향상 -처리과정 5) 종류 1 감시프로그램호출인터럽트 (SVC) ( 소프트웨어인터럽트) - 사용자프로그램명령어에의해발생 - 입출력수행, 기억장치의할당, 오퍼레이터와의대화등을위해발생 2 프로그램검사인터럽트( 내부인터럽트) - 불법적인명령의수행, 수치계산시 0 으로나누기, 보호된기억장소의침범, 스택의오버플로 등프로그램상의지정법이나명령법오류시발생 3 입/ 출력인터럽트 - 입/ 출력장치가발생 - 입/ 출력요구가완료되었을때또는입/ 출력도중에러등이발생하였을경우발생 - 프로세서에게채널이나입/ 출력기기의상태변화를알려줌 4 외부인터럽트 - 외부장치에의해발생 - CPU 타이머종료, 오퍼레이터의 INT 조작, 다른 CPU 로부터신호(Signal) 도착시발생 5 기계검사인터럽트 - 기계적인장애나에러시발생 6 재시작인터럽트 - 오퍼레이터가콘솔상에서재시작버튼(Reset) 이나 [CtrI] + [Art] + [Delete] 를누른경우발생 6) 교착상태(Deadlock) - 동일한자원을공유하고있는하나또는둘이상의프로세스들이다른프로세스가가지고있는자원을서로무한정기다리고있는상태 1 교착상태발생조건 상호배제 (Mutual Exclusion) 점유와대기 - 프로세스가자원을사용중일때다른프로세스는자원을사용하지못하고반드시대기해야하는경우를말함 - 프로세스가이미하나이상의자원을할당받은채다른프로세스의

43 (Hold and Wait) 비선점 (Non-Preemption) 환형대기 (Circular Wait) 자원이해제되기를기다리는경우를말함 - 프로세스에게할당된자원의사용이끝날때까지는다른프로세스는그자원을빼앗을수없는경우를말함 - 프로세스와자원들이원형을이루며, 각프로세스는자신에게할당된자원을가지면서상대방이자원을서로요청하는경우를말함 2 교착상태해결방안 예방 (Prevention) 회피 (Avoidance) 교착상태발생조건중하나를부정함으로써교착상태를해결자원의비효율성이발생시스템의운영상태를파악하여교착상태의발생가능성을피함시스템의상태를파악하는방법으로은행가알고리즘을사용 발견 (Detection) 회복 (Recovery) - 자원할당그래프또는대기그래프의사이클유무를판별하여프로세스간간선을소거 - 프로세스의종료 : 모든교착상태프로세스들을종료시키거나하나씩종류시킴 - 자원의선점 : 교착상태가없어질때까지프로세스로부터자원을강제적으로회수하여다른프로세스에게제공 2. 기억장치의관리 1) 중앙처리장치(CPU; Central Processing Unit) - 컴퓨터시스템의중심이되는장치 - 컴퓨터시스템전체를제어관리하며, 자료의연산및논리조작을수행하는등의중요한역할을담당 - 연산장치와제어장치로구성 1 연산장치 (ALU; Arithmetic Logic Unit) - 산술및논리연산등을담당하는장치 - 레지스터(Register) 를이용하여연산을수행 누산기 (ACC) - 산술연산및논리연산의결과를임시로기억하는레지스터 가산기 (Adder) - 데이터레지스터에보관된값과누산기의값을더하여결과를누산기에보냄 보스기 (Complementary) - 뺄셈을위해보수를만듦 시프트 (Shift) - 자리이동기 - 곱셈이나나눗셈을돕는등의연산보조기능을수행

44 기억레지스터 데이터레지스터 번지레지스터 주기억장치에보내는데이터를임시로기억하는레지스터 연산을사용할데이터를임시로기억하는레지스터 기억장치내의주소를기억하는레지스터 상태레지스터 - 연산실행결과의양수와음수, 자리올림(Carry) 과오버플로 (Overflow), 인터럽트상황등의상태를기억하는레지스터 인덱스레지스터 - 주소를변경하기위해사용되는레지스터 2 제어장치 (Control Unit) - 주기억장치에기억된프로그램을해독 - 입출력을제어하고주기억장치와연산장치사이의경로를결정하는등의모든장치의제어신호의처리, 통제, 관리하는기능을수행 프로그램카운터 (PC) 명령어레지스터 (IR) - - 다음에수행될명령어의주소를기억하는레지스터 현재실행중인명령어를임시로보관하는레지스터 번지해독기 명령해독 - 명령어레지스터가보낸주소를해독한후저장되어있는데이터를메모리로보냄 - 현재수행해야할명령을해독한후수행가능한여러제어신호를발생시킴 부호기 (Encoder) - 명령해독기에의해해독된내용을신호로변환하여각장치에전송 기억장치주소레지스터 (MAR) 기억장치버퍼레지스터 (MBR) - 실행시필요한프로그램이나데이터가저장된주기억장치의주소를기억하는레지스터 -MAR의내용을기억하는레지스터 2) 캐시기억장치(Cache Memory) - 중앙처리장치와주기억장치사이에있는버퍼메모리 - 중앙처리장치와주기억장치의속도차이를해결하기위하여개발 - SRAM이사용 3) 주기억장치(Main Memory) - CPU 의명령어나입력, 출력에사용될데이터등의정보를기억 -입력장치를통하여읽어들인데이터나프로그램, 처리결과등을기억 1 종류 롬 (ROM) - Read Only Memory - 비휘발성메모리

45 - 쓰기가자유롭지못함 램 (RAM) - Random Access Memory - 휘발성메모리 - 사용자가원하는정보를마음대로기억시키고읽을수있음 2 관리전략 반입 (Fetch) 배치 (Placement) 교체 (Replacement) - 언제(When) - 주기억장치에넣을프로그램이나데이터를보조기억장치에서주기억장치로언제옮길것인가를결정 - 요구반입전략 : CPU 가필요로할때( 실행중인프로세스의호출시) - 예상반입전략: CPU가필요로할때를예상하여미리옮겨둠 - 어디에(Where) - 반입전략에의해새로반입된프로그램을주기억장치의어느곳에위치 시킬것인지를결정 - 최초적합(First-fit) 전략 : 입력된프로그램이할당될수있는공간중가 장먼저발견된공간에배치 - 최적적합(Best-fit) 전략 : 입력된프로그램이할당될수있는공간중가 장작은공간에배치 - 최악적합(Worst-fit) 전략 : 입력된프로그램이할당될수있는공간중 가장큰공간에배치 - 무엇을(What) - 새로주기억장치에배치되어야할프로그램이들어갈장소를마련하기위해어떤프로그램과데이터를제거할것인지를결정 4) 가상기억장치 -주기억장치의용량부족을해결하기위한것 -보조기억장치의일부를주기억장치처럼사용 - 프로세스의논리공간에서사용된주소를가상주소라고하며, 가상주소를메모리내의실주소로변환하기위해주소사상기구를사용 - 구현방법 : 페이징, 세그먼테이션 1 페이징 (Paging) - 기억장소를일정한크기( 페이지) 로분할해서사용 - 가변분할의외부단편화문제를해결 - 가상주소공간내의페이지들이주기억장치의어느페이지프레임에사상되었는가를알기위해페이지사상표(PMT) 또는연관사상표(AMT) 를이용 직접사상 (Direct Mapping) 페이지사상표의페이지번호와변위를실제주소로변환하는방법 가상주소공간을구성하는모든페이지가페이지사상표에있을때 실제주소를찾아가기위해서는두번의기억장치참조가이루어짐 사용

46 연관사상 (Associative Mapping) 연관기억장치에페이지사상표를집어넣고사용하는방법 주소변환시간을빠르게하기위해연관메모리가사용되지만구현에따른가격이비싸실제사용되지않음 연관/ 직접사상 연관사상과직접사상을혼용 저렴한가격에연관사상의장점을활용 최근창조된페이지는연관사상표에보관하고나머지는페이지사상표를이용 2 세그먼테이션 (Segmentation) - 기억장치의운용을사용자관점에서정의하는개념 - 논리적가변단위인세그먼트를사용 - 내부단편화는없앨수있지만외부단편화가발생 - 최초, 최적, 최악기법을사용하는동적기억장치할당방법을사용 - 다중사용자의세그먼트보호를위해기억장치보호키를이용 5) 페이지교체알고리즘(Page Replacement Method) 선입선출 (FIFO) 최적화 (Optimal) LRU First In First Out 참조된때와관계없이주기적장치에먼저들어온페이지가먼저교체구현하기쉽고간단참조된시점에서그이후로가장오랫동안사용되지않을페이지를선택미래예측이불가능하므로최적화기법은비현실적 Least Recently Used 가장오랫동안사용되지않은페이지를교체할페이지로선택지역성을활용하는알고리즘카운터또는스택을이용하는구현이가능각페이지의사용기간을기억해야하므로오버헤드가큼 LFU Least Frequently Used 페이지별로사용횟수를기억하여사용빈도가가장적은페이지를교체할페이지로선택 바로직전에사용한페이지가교체대상이될수도있음 Not Used Recently 최근에사용하지않은페이지는나중에도사용하지않을가능성이높기때문에최근에 NUR 사용되지않은페이지를교체할페이지로선택 변형비트와참조비트를이용하여교체될페이지의순서를정함 5) 구역성구분 시간지역성 - Temporal Locality - 최근에참조된기억장소가가까운미래에도계속참조될가능성이높음 - 순환(Looping), 서브루틴(Subroutine), 스택(Stack), 계산(Counting) 과집계 (Totaling) 에사용되는변수등

47 공간지역성 - Spatial Locality - 어떤기억장소가참조되면그근처의기억장소가계속참조될가능성이높음 - 배열(Array Traversal), 순차적코드실행(Sequential Code Execution) 3 과목총정리문제풀이(1) 1. 기계어와가장유사한언어는? 가. Cobol 나. Assembly 다. C 라. Basic 2. 기계어에대한설명으로옳지않은것은? 가.2진수 0과 1 만사용하여명령어와데이터를나타낸다. 나. 컴퓨터가직접이해할수있어실행속도가빠르다. 다. 모든기계에서공통으로사용가능하여호환성이높다. 라. 전문적인지식이없으면이해하기힘들다. 3. 문자열대치, 복사, 치환등과같은문자열의조작을편리하게수행할수있도록여러가지기능을제공하며, 스트림자료활용의예가많은언어는? 가. SNOBOL 나. C 다. PL/I 라. ADA 4. 시스템프로그래밍에가장적합한언어는? 가. C 나. Cobol 다. Fortran 라. Pascal 5. 객체지향프로그래밍언어에해당하지않는것은? 가. C++ 나. Ada95

48 다. SmallTalk 라. Algol 6. 프로그램개발과정에서프로그램안에내재해있는논리적오류를발견하고수정하는작업은? 가. 컴파일나. 로딩다. 코딩라. 디버깅 7. 어셈블리에서 16 진수상수를정의한명령어는? 가. DC CL3"A2" 나. DC XL3"A2" 다. DC BL3"111" 라. DC PL3"38" 8. 고급언어를기계어로바꾸는역할을하는것은? 가. 로더나. 컴파일러다. 운영체제라. 링커 9. 인터프리터언어에해당하는것은? 가. FORTRAN 나. ALGOL 다. Ada 라. BASIC 10. 원시프로그램컴파일러가수행되고있는컴퓨터의기계어로번역하는것이아니라, 계어로번역하는것은? 가. 프리프로세서 나. 인터프리터다. 로더라. 크로스컴파일러 다른기종에맞는기 11. 대부분의고급프로그래밍언어에서제공하는예약어목록에관한설명으로거리가먼것은? 가. 예약어의사용은프로그램의판독성을저해한다. 나. 프로그램을번역할때예약어의사용은심볼테이블검색시간을단축시킨다. 다. 예약어의사용은오류가발생하였을때오류회복(error recovery) 을가능케한다. 라. 예약어의수가필요이상으로늘어나면프로그래머가모두기억하기가어려우므로프로그래밍이번거롭게될수도있다.

49 12. 특별한정보는갖고있지않으나, 판독성을향상시키기위하여사용하는구문요소는? 가. 핵심어나. 예약어다. 잡음어라. 연산식 13. 구문도표(syntax diagram) 표기시사용되는기호가아닌것은? 가. [ ] 나. 다. 라. 14. 프로그래밍언어의구문형식을정의하는데가장일반적인표현방식은? 가. Backus-Naur Form 나. Algorithm 다. DNF 라. HIPO 15. BNF 심볼에서정의를나타내는것은? 가. ::= 나. < > 다. 라. 3 과목총정리문제풀이(2) 1. 컴파일러의컴파일단계로옳은것은? 1 어휘분석 2 구문분석 3 중간코드생성 4 의미분석 5 코드생성 6 코드최적화 가 나 다 라 번역의가장기본적인단계로나열된문자들을기초적인구성요소들인식별자, 구분문자, 연산기호, 핵 심어, 주석등으로그룹화하는단계는? 가. 어휘분석나. 구문분석다. 의미분석

50 라. 코드생성 3. 고급언어로작성된프로그램을구문분석하여파서에의하여생성되는결과물로서, 구조에따라트리형태로구성한것은? 가. 어휘트리 나. 구조트리다. 파스트리라. 중간트리 각각의문장을문법 4. 어휘분석기(Lexical Analyzer) 에대한설명으로옳지않은것은? 가. 원시프로그램(Source Program) 을읽어들여토큰(Token) 이라는문법적단위(Syntactic Entity) 로분석한다. 나. 프로그래머가프로그램의설명을위해쓴주석(Comment) 은어휘분석기에서모두처리된다. 다. 어휘분석기는일명스캐너(Scanner) 라고도불린다. 라. 어휘분석기는그결과물로서파스트리(Parse Tree) 를생성한다. 5. 주어진문장이정의된문법구조에따라정당하게하나의문장으로서합법적으로사용될수있는가를확인 하는작업으로토큰들을문법에따라분석하는작업을수행하는단계는? 가. 어휘분석(Lexical analyzer) 단계 나. 구문분석(Syntax analyzer) 단계 다. 중간코드생성(Intermediate code generation) 단계 라. 코드최적화(Code optimization) 단계 6. 프로그램에서하나의값을저장할수있는기억장소의이름을의미하는것은? 가. 상수나. 변수다. 주석라. 라이브러리 7. 자료형변환중 widening 에해당하는것은? 가. 정수형을실수형으로변환나. 실수형을정수형으로변환다. 정수형을문자형으로변환라. 문자형을실수형으로변환 8. 동적( 실행시간) 형검사에대한설명으로옳지않은것은? 가. 프로그램설계시융통성을준다. 나. 프로그램이수행되는과정내에자료형을변경할수있다. 다. 대화형언어에적합하다. 라. 프로그램수행중에정보를유지할필요가없다.

51 9. 프로그램을구성하는함수에서전역변수를사용하여함수의결과를반환하는경우, 함수에전달되는입력파라미터의값이같아도전역변수의상태에따라함수에서반환되는값이달라질수있는현상을무엇이라하는가? 가. reference 나. side effect 다. aliasing 라. recursive 10. 자료객체의별명(Alias) 에관한설명으로옳지않은것은? 가. 자료객체는생존기간중여러별명을가질수있다. 나. 일반적으로별명은프로그램의이해를매우어렵게한다. 다. 자료객체가여러가지별명을갖는경우프로그램의무결점검증이쉬워진다. 라. 같은참조환경에서다른이름으로같은자료객체를참조할수있는언어의경우, 프로그래머에게심각한어려움을줄수있다. 11. C 언어에대한설명으로옳지않은것은? 가. 구조적프로그래밍이가능하다. 나. 시스템소프트웨어를작성하기에편리하다. 다. 기계어에해당한다. 라. 이식성이높은언어이다. 12. C 언어에서반드시포함해야하는것은? 가.main 함수나. 주석문다. 출력문라. 할당문 13. 블록구조에의한영역개념을사용함으로써얻어지는장점으로거리가먼것은? 가. 변수를사용할프로그램의문장근처에서선언하도록하기때문에프로그램의지역성(locality) 을높여준다. 나. 프로그램문장과변수들의지역성은필요로하는기억장소의크기를작게만들게되며, 이는운영체제의working set 을크게하는장점이있다. 다. 프로그램의변수명과삽입되는라이브러리루틴의변수명이같더라도문제점이없게된다. 라. 프로그램의구성을단계적으로세분화하는데도움을준다. 14. C 언어에서사용되는예약어가아닌것은? 가. case 나. switch 다. virtual 라. enum

52 15. C 언어의자료형이아닌것은? 가. long 나. integer 다. float 라. double 3 과목총정리문제풀이(3) 1. 프로그래머가직접제어를표현하지않았을경우, 는순서제어는? 가. 구조적 나. 명시적다. 묵시적라. 문장수준 그언어에서미리정해진순서에의해제어가이루어지 2. 이항(Binary) 연산에해당하지않는것은? 가. AND 나. OR 다. XOR 라. MOVE 3. 단항연산자(unary) 연산에해당하는것은? 가. AND 나. OR 다. Complement 라. XOR 4. 수학적수식"A+B" 를"+AB" 로표현한기법은? 가. PREFIX 나. INFIX 다. SUFFIX 라. POSTFIX 5. A+(B*C) 를 PREFIX 로표현한것은? 가. +A*BC 나. ABC*+ 다. +*ABC 라. CBA*+ 6. 구조적프로그램의기본구조가아닌것은?

53 가. 순차(Sequence) 구조 나. 조건(Condition) 구조 다. 일괄(Batch) 구조 라. 반복(Repetition) 구조 7. C 언어에서문장의실행순서를제어하는제어구조(Control Structure) 에해당하는문장으로볼수없는것은? 가. for 나. while 다. if 라. printf 8. 구조화프로그램을설계하기위한설명으로옳지않은것은? 가. 프로그램의이해가쉽고디버깅작업이쉽도록한다. 나. 한개의입구와한개의출구구조를갖도록한다. 다. 실행시간의단축을위해 GOTO 문을가급적많이사용한다. 라. 계층적설계를한다. 9. COBOL 언어의 PERFORM 문, C 언어의 FOR 문에해당되는것은? 가. 반복문나. 선택문다. 조건문라. 선언문 10. C 언어의제어문중성격이다른것은? 가.break문나.continue문다.goto문라.switch문 11. 교착상태의필요조건에해당하지않는것은? 가. 상호배제조건(mutual exclusion) 나. 대기조건(wait) 다. 환형대기조건(circular wait) 라. 중단조건(preemption) 12. PCB(process control block) 의포함정보가아닌것은? 가. 프로세스의현재상태나. 프로세스의생성율및부재율다. 프로세스의고유식별자라. 프로세스의우선순위

54 13. 주기억장치관리기법중배치(placement) 전략에서입력된작업을가장큰공백에배치하는전략은? 가. best-fit 나. worst-fit 다. first-fit 라. large-fit 14. 인터럽트의종류중프로그래머에의해발생하는인터럽트로서보통입출력의수행, 오퍼레이터와의대화등의작업수행시발생하는것은? 가. 입출력인터럽트 나. 외부인터럽트다. 기계인터럽트라.SVC인터럽트 기억장치의할당및 15. 시간구역성의예가아닌것은? 가. 배열순례(array traversal) 나. 순환(looping) 다. 부프로그램(subprogram) 라. 집계(totaling) 등에사용되는변수

OCW_C언어 기초

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

More information

3차시.ppt

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

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

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

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

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

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

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

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

More information

슬라이드 1

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

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 - 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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.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

[ 마이크로프로세서 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

자연언어처리

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

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

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

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

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

More information

Microsoft PowerPoint - C++ 5 .pptx

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

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 - 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

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 프레젠테이션

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

More information

<C7C1B7CEB1D7B7A1B9D6BEF0BEEE2E687770>

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

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

EA0015: 컴파일러

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

More information

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

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

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

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

C언어 및 실습 C Language and Practice

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

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

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

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

프로그래밍개론및실습 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

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 3 장 : 변수와데이터형 2012 년 이은주 학습목표 변수와상수의개념에대해알아본다. 리터럴상수, 매크로상수, const 변수에대해알아본 다. C 언어의데이터형에대해알아본다. 2 목차 변수와상수 변수 상수 데이터형 문자형 정수형 실수형 sizeof 연산자 3 변수와상수 변수 : 값이변경될수있는데이터 상수 : 값이변경될수없는데이터

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

OCW_C언어 기초

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

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

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

<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

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

Microsoft PowerPoint - lec3.ppt

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

More information

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap06-5 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.

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

JVM 메모리구조

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

More information

11장 포인터

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

More information

Microsoft PowerPoint - lec2.ppt

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

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

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 학습목표 변수와상수의개념에대해알아본다.

More information

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

C 프로그램의 기본

C 프로그램의 기본 C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

4장.문장

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

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

untitled

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

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 - 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

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

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

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

02장.배열과 클래스

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

More information

Microsoft PowerPoint - c2.ppt

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

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++ 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

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 기초특강 변수, 타입, 정수, 실수 상수 상수 (constant) #define MAX_FLOOR 100 프로그램헤더나앞부분에존재 변수의이름 ( 식별자 ) 와같은규칙을따르지만, 일반적으로대문자와 _ 로만구성 프로그램가독성을높이고, 일관된수정을위해사용 프로그램중간에갑자기등장하는임의의숫자는이해도를떨어뜨림 -> 반드시의미있는상수를이용해야함 Preprocessor

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

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

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

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

More information

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M 중앙처리장치 (CPU: Central Process Unit) 1) 제어장치 (Control Unit) 컴퓨터시스템의모든장치들에게동작을지시하고제어하는장치로주기억장치에서읽어온명령어를해독하고해당장치에게제어신호를보낸다. 구성회로 : 부호기, 명령해독기, 번지해독기 구성레지스터 : PC( 프로그램카운터 ), IR( 명령어레지스터 ) 부호기 ( 제어신호발생기 ) 해독한명령어에따라서해당장치로보낼제어신호를생성하는회로

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

chap x: G입력

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

More information

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp 1 0 1.7 6 5 'A ' '/ u 4 4 2 2 ' " JS P 프로그래밍 " A ', 'b ', ' 한 ', 9, \ u d 6 5 4 ' c h a r a = 'A '; 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 < % @ p a g e c o n te n

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

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

슬라이드 1

슬라이드 1 1 장. C 의개요 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2017-1 st 프로그래밍입문 (1) 2 C 의개요 C-Language 란? 원하는결과를얻어내기위한 Program 작성시필요한일종의언어 Unix 운영체제하에서시스템프로그래밍을하기위해개발된언어 구조적인언어, 강력한기능,

More information

1 처리능력 (Throughput) : 일정시간내에시스템이처리하는일의양 2 반환시간 (Turnaround time) : 시스템에작업을의뢰한시간부터처리가완료될때까지걸리는시간 3 사용가능도 (Availability) : 시스템을사용할필요가있을때즉시사용가능한정도 4 신뢰도

1 처리능력 (Throughput) : 일정시간내에시스템이처리하는일의양 2 반환시간 (Turnaround time) : 시스템에작업을의뢰한시간부터처리가완료될때까지걸리는시간 3 사용가능도 (Availability) : 시스템을사용할필요가있을때즉시사용가능한정도 4 신뢰도 온라인 IT 교육최강 (www.gisa79.com) 강의정보처리필기강사조대호 차시명 [OS-01 강 ] 운영체제의개요와학습전략차시 1 차시 학습내용 운영체제의개요와학습전략 학습목표 운영체제의개념과시스템소프트웨어를이해할수있다 운영체제학습계획을세울수있다 학습내용 1. 운영체제의개념및종류 (1) 개념 1) 운영체제는컴퓨터시스템의자원들을효율적으로관리 2) 사용자가컴퓨터를편리하고효과적으로사용할수있도록환경을제공

More information

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp 2015년도 국가직 9급 컴퓨터 일반 문 1. 시스템 소프트웨어에 포함되지 않는 것은? 1 1 스프레드시트(spreadsheet) 2 로더(loader) 3 링커(linker) 4 운영체제(operating system) - 시스템 소프트웨어 : 운영체제, 데이터베이스관리 프로그램,, 컴파일러, 링커, 로더, 유틸리티 소프트웨 어 등 - 스프레드시트 : 일상

More information

Microsoft PowerPoint - chap-05.pptx

Microsoft PowerPoint - chap-05.pptx 쉽게풀어쓴 C 언어 Express 제 5 장수식과연산자 컴퓨터프로그래밍기초 이번장에서학습할내용 * 수식과연산자란? * 대입연산 * 산술연산 * 논리연산 * 관계연산 * 우선순위와결합법칙 이번장에서는수식과연산자를살벼봅니다. 컴퓨터프로그래밍기초 2 수식 수식 (expression) x + y x*x + 5*x + 6 (principal * interest_rate

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

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

슬라이드 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

PowerPoint Presentation

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

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

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

<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

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)- 1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다. 1.2.1 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-1 연산범위이유 : 00000000 00000000 00000000 00000000의 32

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor 19. 전처리와분할컴파일 순천향대학교컴퓨터학부이상정 1 학습내용 전처리명령어 #include #define 기호상수 const 분할컴파일 순천향대학교컴퓨터학부이상정 2 전처리과정 전처리 (preprocessor) 전처리명령어는 # 기호로시작 #incldue #define 순천향대학교컴퓨터학부이상정 3 #include (1) 지정된파일을프로그램에삽입 꺽쇠괄호는포함할파일을컴파일러에설정되어있는특정디렉토리에서검색

More information

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

온라인 IT 교육최강 (  강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1 - 2. 중앙처리장치 (Central Processing Unit) 주기억장치에기억된명령을꺼내서해독하고, 시스템전체에지시신호를내는장치명령코드가명령을수행할수있게필요한제어기능을제공제어장치의구성

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

ABC 2장

ABC 2장 3 장 C 프로그램을이루는구성요소 김명호 내용 주석문 토큰 키워드 식별자 상수 문자열상수 구두자 1 구문 Syntax 올바른프로그램을만들수있게하는규칙 컴파일러 C 프로그램이구문에맞는지검사 오류가있다면, 오류메시지출력 오류가없다면, 목적코드생성 전처리기 컴파일러이전에호출 2 컴파일러 컴파일과정 C 프로그램 토큰으로분리 토큰을목적코드로변환 토큰종류 : 키워드,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

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

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

More information

쉽게

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

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

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

Microsoft PowerPoint - chap-06.pptx

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

More information