컴파일러(21)
-
3 - Formal Language
컴퓨터가 말하는 언어로, 정확하게 표현하기 위해 문법을 알아야 한다. 형식 언어를 이해하고 형식 문법을 이해해야 추후에 어휘를 분석할 수 있다. 기본 용어 정의 - Alphabet Formal Language에서의 Alphabet은 언어의 문장을 이루는 기본 심볼이다. 정의 - String 알파벳 집합에 대한 기호들을 나열한 유한 수열으로, {a,b,c} 일때 ccba는 string 이다. 문자열 연산 Length of String 심볼의 갯수를 세는 것으로, {a,b,c} 집합에서의 aba의 length는 3이고, {do, case, while} 집합에서의 docase 는 length가 2이다. Concatenation of String 두개 이상의 문자열을 연결하여 문자열을 만드는 것으로, u = a..
2021.07.05 -
8. 프로그래밍 언어 특성 & 코드 재사용과 리팩토링
프로그래밍 언어의 특성 인터프리터 언어 인터프리터는 중간과정 없이 원시 프로그램을 직접 저급 언어로 바꾸면서 동시해 실행한다. 기계어 번역을 기다리지 않고 필요시 마다 실행해서 빠르지만, 디코딩 처리 시간이 따로 존재한다. 컴파일러 언어 기계어로 번역하여 객체 모듈을 만들고, 이 모듈을 링크/로드 하여 실행한다. 재사용 프로그램일경우 재실행하여 단축시킬 수 있지만 기계어 변환 시간이 좀 걸린다. 코드 재사용 및 리팩토링 개념 1. 재사용 적용 시 고려사항 - 재사용 기반의 소프트웨어 개발 프로세스 - 재사용성 향상을 위한 교육, 품질 향상 - 지속적인 라이브러리 보강 2. 리팩토링 개요 및 정의 코드 리팩토링은 전보다 코드를 더 보기 쉽게 만드는 것이다. 3. 리팩토링 시점및 수행 절차 일반적으로 리팩토..
2021.01.26 -
언어 번역 프로그램과 링커, 로더
언어 번역 프로그램 종류 어셈블러 : 어셈블리 언어로 작성된 프로그램을 입력받아 기계어로 변환한다. 컴파일러 : 고급 언어로 작성된 프로그램을 컴퓨터에서 즉시 실행할 수 있는 형태의 목적 프로그램으로 변환한다. 인터프리터 : 프로그램을 문장단위로 번역하는 프로그램으로, 온라인에서 쓰는 언어가 대표적이다 링커 언어 번역 프로그램이 생성한 라이브러리, 목적 프로그램 등을 연결하는 시스템 소프트웨어다. 연결 기능만 수행하는 로더의 한 형태로, 링커에 의해 수행되는 작업을 링킹이라고 부른다. 로더 로더의 기능 1. 할당 - 프로그램을 실행시키기 위해 공간을 확보 2. 연결 - 프로그램이 할당된 기억 장소의 시작 주소를 호출한 부분에 등록하여 연결 3. 재배치 - 보조 기억장치에 저장된 프로그램이 사용하는 주소를..
2020.10.06