구문 분석

Similar documents
1

Microsoft Word - ExecutionStack

강의10

Microsoft Word - FunctionCall

No Slide Title

Microsoft PowerPoint - PL_03-04.pptx

Microsoft Word - 1. ARM Assembly 실습_xp2.doc

형식 언어

C# Programming Guide - Types

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

untitled

02 C h a p t e r Java

hlogin2

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

??


9

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

MPLAB C18 C

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

JVM 메모리구조


Deok9_Exploit Technique

2002년 2학기 자료구조

포천시시설관리공단 내규 제 24호 포천시시설관리공단 인사규정 시행내규 일부개정(안) 포천시시설관리공단 인사규정 시행내규 일부를 다음과 같이 개정 한다. 제17조(기간제근로자의 무기계약직 임용) 1 기간제근로자 관리규정 제16조 를 제19조 로 한다. 제20조(인사기록)

Something that can be seen, touched or otherwise sensed

Contents Contents 2 1 Abstract 3 2 Infer Checkers Eradicate Infer....

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

6주차.key

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

을 할 때, 결국 여러 가지 단어를 넣어서 모두 찾아야 한다는 것이다. 그 러나 가능한 모든 용어 표현을 상상하기가 쉽지 않고, 또 모두 찾기도 어 렵다. 용어를 표준화하여 한 가지 표현만 쓰도록 하여야 한다고 하지만, 말은 쉬워도 모든 표준화된 용어를 일일이 외우기는

2007_2_project4

15강 판소리계 소설 심청전 다음 글을 읽고 물음에 답하시오. [1106월 평가원] 1)심청이 수궁에 머물 적에 옥황상제의 명이니 거행이 오죽 하랴. 2) 사해 용왕이 다 각기 시녀를 보내어 아침저녁으로 문 안하고, 번갈아 당번을 서서 문안하고 호위하며, 금수능라 비

PowerPoint Presentation

The_IDA_Pro_Book

Microsoft Word - 青野論文_李_.doc

PowerPoint 프레젠테이션

초보자를 위한 ASP.NET 21일 완성

도 1 명세서 도면의 간단한 설명 도 1은 본 발명의 바람직한 실시예에 따른 데이터 송수신 장치의 회로도이다. 도 2는 도 1에 도시된 등화기의 일 실시예를 보여주는 회로도이다. 도 3은 도 1에 도시된 프리엠퍼시스 회로의 일 실시예를 보여주는 회로도이다. 도 4는 본

Speculative Register Promotion Using Advanced Load Address Table (ALAT)

untitled

Microsoft PowerPoint - 27.pptx

MS-SQL SERVER 대비 기능

부벽루 이색 핵심정리+핵심문제.hwp

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

MAX+plus II Getting Started - 무작정따라하기

IDA 5.x Manual hwp

歯15-ROMPLD.PDF

Orcad Capture 9.x

DocsPin_Korean.pages

hwp

인켈(국문)pdf.pdf

우리나라의 전통문화에는 무엇이 있는지 알아봅시다. 우리나라의 전통문화를 체험합시다. 우리나라의 전통문화를 소중히 여기는 마음을 가집시다. 5. 우리 옷 한복의 특징 자료 3 참고 남자와 여자가 입는 한복의 종류 가 달랐다는 것을 알려 준다. 85쪽 문제 8, 9 자료

상품 전단지

::: 해당사항이 없을 경우 무 표시하시기 바랍니다. 검토항목 검 토 여 부 ( 표시) 시 민 : 유 ( ) 무 시 민 참 여 고 려 사 항 이 해 당 사 자 : 유 ( ) 무 전 문 가 : 유 ( ) 무 옴 브 즈 만 : 유 ( ) 무 법 령 규 정 : 교통 환경 재

2

DBPIA-NURIMEDIA

화이련(華以戀) hwp

ÆòÈ�´©¸® 94È£ ³»Áö_ÃÖÁ¾

歯1##01.PDF

<5BC1F8C7E0C1DF2D31B1C75D2DBCF6C1A4BABB2E687770>

120229(00)(1~3).indd

01Report_210-4.hwp

<C3D1BCB15FC0CCC8C45FBFECB8AE5FB1B3C0B0C0C75FB9E6C7E D352D32315FC5E4292E687770>



교육 과 학기 술부 고 시 제 호 초 중등교육법 제23조 제2항에 의거하여 초 중등학교 교육과정을 다음과 같이 고시합니다. 2011년 8월 9일 교육과학기술부장관 1. 초 중등학교 교육과정 총론은 별책 1 과 같습니다. 2. 초등학교 교육과정은 별책

시험지 출제 양식

177

제주어 교육자료(중등)-작업.hwp

¸é¸ñ¼Ò½ÄÁö 63È£_³»Áö ÃÖÁ¾

<C3D6C1BE5FBBF5B1B9BEEEBBFDC8B0B0DCBFEFC8A C3D6C1BEBABB292E687770>

초등국어에서 관용표현 지도 방안 연구

6±Ç¸ñÂ÷

과 위 가 오는 경우에는 앞말 받침을 대표음으로 바꾼 [다가페]와 [흐귀 에]가 올바른 발음이 [안자서], [할튼], [업쓰므로], [절믐] 풀이 자음으로 끝나는 말인 앉- 과 핥-, 없-, 젊- 에 각각 모음으로 시작하는 형식형태소인 -아서, -은, -으므로, -음

민주장정-노동운동(분권).indd

untitled

<C0CEBCE2BABB2D33C2F7BCF6C1A420B1B9BFAAC3D1BCAD203130B1C72E687770>


E1-정답및풀이(1~24)ok

<C1B6BCB1B4EBBCBCBDC3B1E2342DC3D6C1BE2E687770>

< BDC3BAB8C1A4B1D4C6C75BC8A3BFDC D2E687770>

교사용지도서_쓰기.hwp

최우석.hwp

cls46-06(심우영).hwp

時 習 說 ) 5), 원호설( 元 昊 說 ) 6) 등이 있다. 7) 이 가운데 임제설에 동의하는바, 상세한 논의는 황패강의 논의로 미루나 그의 논의에 논거로서 빠져 있는 부분을 보강하여 임제설에 대한 변증( 辨 證 )을 덧붙이고자 한다. 우선, 다음의 인용문을 보도록

0429bodo.hwp

伐)이라고 하였는데, 라자(羅字)는 나자(那字)로 쓰기도 하고 야자(耶字)로 쓰기도 한다. 또 서벌(徐伐)이라고도 한다. 세속에서 경자(京字)를 새겨 서벌(徐伐)이라고 한다. 이 때문에 또 사라(斯羅)라고 하기도 하고, 또 사로(斯盧)라고 하기도 한다. 재위 기간은 6

PCServerMgmt7

hlogin7

No Slide Title

PowerPoint 프레젠테이션

Runtime Data Areas 엑셈컨설팅본부 /APM 팀임대호 Runtime Data Area 구조 Runtime Data Area 는 JVM 이프로그램을수행하기위해할당받는메모리영역이라고할수있다. 실제 WAS 성능문제에직면했을때, 대부분의문제점은 Runtime Da

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

Microsoft PowerPoint - o8.pptx

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

목 차

SIGPLwinterschool2012

<32382DC3BBB0A2C0E5BED6C0DA2E687770>


Transcription:

컴파일러구성 제 10 강 중간언어 / 인터프리터

Motivation rapid development of machine architectures proliferation of programming languages portable & adaptable compiler design --- P_CODE porting --- rewriting only back-end compiler building system --- EM_CODE M front-ends + M compilers for N target machine N back-ends

source program front -end interface back -end target code target machine abstract machine code abstract machine interpreter

Pascal P Compiler --- portable compiler producing P_CODE for an abstract machine(p_machine). P_Machine ----- hypothetical stack machine designed for Pascal language. (1) Instruction --- closely related to the PASCAL language. (2) Registers PC --- program counter NP --- new pointer SP --- stack pointer MP --- mark pointer (3) Memory CODE --- instruction part STORE --- data part(constant area, stack, heap)

CODE PC STORE stack MP current activation record SP heap constant area NP

ACK(Amsterdam Compiler Kit) 알골형태의소스언어와바이트기계형태의목적기계에적합 EM Machine 중간언어는 EM(Encoding Machine) EM-code 의사명령어와 EM 명령어로구분 각명령어는상수, 명칭등과같은오퍼랜드를가짐 의사명령어는기억장소를확보, 상수정의 분리컴파일이나링킹기능을수행

EM 기억공간구조 SB //// Unimplemented memroy //// Stack and Local area // Implementation dependent // Heap area LB SP HP EB EB 0 Global area Program text //////// Undefined //////// PC

Ucode the intermediate form used by the Stanford Portable Pascal compiler. stack-based and is defined in terms of a hypothetical stack machine. Ucode Interpreter : Appendix B. Addressing stack addressing ===> a tuple : (B, O) B : the block number containing the address O : the offset in words from the beginning of the block, offsets start at 1. label to label any Ucode instruction with a label field. All targets of jumps and procedures must be labeled. All labels must be unique for the entire program.

Example : Consider the following skeleton : int x; void main() { int i; int j; //... } block number - 전역변수 : 1 - 함수내지역변수 : 2 variable addressing - x : (1,1) - i : (2,1) - j : (2,2)

Ucode Operations(39 개 ) Unary --- notop, neg, inc, dec, dup Binary --- add, sub, mult, div, mod, swp and, or, gt, lt, ge, le, eq, ne Stack Operations --- lod, str, ldc, lda Control Flow --- ujp, tjp, fjp Range Checking --- chkh, chkl Indirect Addressing --- ldi (load indirect), sti (store indirect) Procedure --- cal, ret, retv, ldp, proc, end Etc. --- nop, bgn, sym

Example : x = a + b * c; lod 1 1 /* a */ lod 1 2 /* b */ lod 1 3 /* c */ mult add str 1 4 /* x */ if (a>b) a = a + b; lod 1 1 /* a */ lod 1 2 /* b */ gt fjp next lod 1 1 /* a */ lod 1 2 /* b */ add str 1 1 /* a */ next...

Indirect Addressing is used to access the array elements. ldi --- indirect load replace stacktop by the value of the item at location stacktop. to retrieve A[i] : lod i // actually (Bi, Oi)) lda A // also (block number, offset) add ldi // effective address // indirect load gets contents of A[i]

sti --- indirect store sti stores stacktop into the address at stack[stacktop-1], both items are popped. A[i] = j; lod lda add lod Sti i A j

Procedure Calling Sequence function definition : void func(int x, int array[]) { } function call : func(a, list); calling sequence : ldp // load parameter lod a // load the value of actual parameter lda list // load the address of actual parameter call func // call func

Ucode Interpreter The Ucode interpreter is called ucodei, it s source is in the appendix B. (You can get it from plac.dongguk.ac.kr). The interpreter uses the following files : *.ucode : file containing the Ucode program. *.lst : Ucode listing and output from the program. Ucode format (fixed format) label-field op-code operand-field 1-10 12-m m+2 m is exactly enough to hold opcode. label field a 10 character label(make sure its 10 characters pad with blanks) op-code --- starts at 12 column.

Bytecode Java Virtual machine (JVM) 의명령어집합 Stack-based virtual machine code 이기종간의실행환경에적합 : 이식성, 유연성인터프리터방식과 JIT (Just-In-Time) compiler 방식에의해실행명령어개수는 230개 Compilation & Execution of Bytecode JAVA Program JAVA Compiler Bytecode JVM Result

.NET IL (MSIL).NET 환경에서언어통합을위해설계된중간언어 JIT (Just-In-Time) compiler 방식에의해실행언어독립적으로설계되어포괄적인프로그래밍가능 소스프로그램의기능및구조변화에잘적응하는중간언어 명령어개수는 236 개 CLR (Common Language Runtime) 에의해실행

Compilation & Execution of.net IL C# Managed C++ VB.NET ETC. C# Compiler Managed C++ Compiler VB.NET Compiler Language Compilers Compilation level PE File (exe/dll).net IL +Metadata Execution level CLR JIT Compilation Native Code

부록 B 에수록된 Ucode 인터프리터를각자 PC 에 설치하고 100 이하의소수 (prime number) 를구하는 프로그램을 Ucode 로작성하시오. 다른문제의프로그램을작성해서제출해도됨. Ucode 인터프리터출력리스트를제출. 참고 : #1 : recursive-decent parser #2 : MiniC LR parser

IL criteria intermediate level input language --- high level output machine --- low level efficient processing translation --- source to IL, IL to target interpretation optimization extensibility external representation clean separation language dependence & machine dependence

A : 좋다 B : 보통이다 C : 나쁘다