C언어로 구현한 매크로 프로세서. 완성도 보장. (샘플보고서 확인 후 구매 결정)
*진*
다운로드
장바구니
소개글
해쉬와 다중 링크드리스트를 이용한 매크로 프로세서입니다.2010년도 시스템프로그래밍 강좌 2개 분반 통틀어 최고점 받았던 결과물입니다.
최종보고서도 첨부하니 참고로 사용하시면 꽤 유용하리라 생각됩니다.
(본문내용 소스코드 제외 22페이지)
혹시나 하시는 분들을 위해 보고서 샘플 올려둡니다.
http://blog.naver.com/lirelire/memo/130119316003
보시고 맘에드시면 구매하세요.
구현내용
-2Pass 확장
-Label 중복처리
-매크로 중복선언
-File Macro 확장
-문법구현(if, while)
-문법오류처리(에러메시지 출력. 총 11가지 경우에 대하여)
목차
1. 과제 목표2. 과제 필요성
3. 설계 제한요소
4. 수행 내용 및 방법
5. 수행 결과
6. 효과 분석
본문내용
1. 과제 목표마크로 프로세서란 어셈블리 프로그램 내의 축약된 코드를 실제 코드로 확장시켜주는 일종의 전처리기(Preprocessor)이다. 즉, 이는 사전에 정의한 마크로 명령어를 해당하는 원시언어로 바꾸어주는 역할을 한다. 본 프로젝트의 목표는 다양한 어셈블러에서 활용할 수 있는 이러한 마크로 프로세서의 제작에 있다.
2. 과제 필요성
마크로 프로세서는 프로그래머에게 코드의 구현상 편의를 제공하지만, 모든 어셈블러가 공통된 마크로 프로세서의 기능을 포함하고 있지는 않다. 이런 경우, 마크로 프로세서 내에 정의되지 않은 명령어가 사용하게 되면 전처리 과정에 의한 원시코드로의 번역과정이 이루어지지 않게 되어 해당 프로그램은 실행이 불가해지게 된다.
우리는 해당 프로젝트를 통해 마크로 프로세서 프로그램을 제작함으로서 위와 같은 상황을 미연에 방지하고자 한다.
또한, 본 프로젝트를 수행함으로서 마크로의 존재의의 및 그 처리과정에 대해 좀 더 심화적인 학습을 목표로 한다.
3. 설계 제한요소
현재 수업과 실습의 진행에 맞춰 개발환경을 Linux로 하는 것이 자연스러우나 아직 Linux에서 큰 규모의 코딩에 조원들이 익숙해 있지 않아, 개발 툴은 Windows의 Visual Studio를 사용하게 되었다.
4. 수행 내용 및 방법
이번 프로젝트에 있어 가장 기본적인 사항은 바로 매크로의 정의, 호출, 확장이다.
이를 구현하기 위하여 해시 테이블과 임의로 구현한 중첩된 링크드 리스트를 사용하였으며 그럼으로써 정의된 매크로 및 메인코드★의 사용을 용이하게 하였다. (★ : 여기서 메인코드란 어셈블리 코드 중 -확장의 유무에 관계없이- 매크로를 제외한 부분을 임의적으로 지칭하는 말이다. 이러한 용어를 사용하는 이유는 이후에 다시 언급하도록 하겠다.)
또한 그러한 기본적인 기능 외에 사용자의 편의를 고려한 문법 구현(if~else, while, fmacro)과 문법검사를 통한 에러메시지 출력 등을 추가로 구현하였다.
이에 대한 자세한 설명은 이후 설계과정 내용에 자세히 기술하도록 하겠다.
5. 수행 결과
정의된 매크로를 원시코드 내에서 호출하게 되면 이것이 목적 프로그램으로 번역되면서 매크로가 호출된 부분으로 확장되게 된다. 그리고 그 과정에서 사용자가 요청한 명령어(if~ else, while, fmacro)들을 처리하며 예외상황에서의 에러메시지를 출력해준다.
6. 효과 분석
매크로프로세서를 사용함으로서 일련의 명령어들을 매크로로 정의하여 사용 할 수 있게 되고, 이것은 프로그램 작성의 용이성과 간편성을 제공하는 효과를 가져온다.
또한 그 외의 추가기능을 제공함으로서 사용자가 어셈블리 코드를 작성 시 편의성 증대를 기대할 수 있게 된다.
참고 자료
SYSTEM SOFTWARE - Leland L. Beck 저 유원희,이필규,김유성 공역 홍릉과학출판사시스템 소프트웨어 - 이기철 저. 생능출판사
시스템 프로그래밍 - 조충호 외 공저, 생능출판사, 2004.
압축파일 내 파일목록
DoubleLinkedList.c
DoubleLinkedList.h
FFF
Functions.c
Functions.h
main.c
SRCFILE
SRCFILE(3)
testmacro
프로젝트.ncb
프로젝트.sln
프로젝트.suo
프로젝트.vcproj
프로젝트.vcproj.AS-5D49BFE7FDA4.tg.user
프로젝트.vcproj.F010-009.Admin.user
한계점.txt
Debug/BuildLog.htm
Debug/DoubleLinkedList.obj
Debug/FFF
Debug/Functions.obj
Debug/main.obj
Debug/mt.dep
Debug/SRCFILE
Debug/testmacro
Debug/vc90.idb
Debug/vc90.pdb
Debug/프로젝트.exe
Debug/프로젝트.exe.embed.manifest
Debug/프로젝트.exe.embed.manifest.res
Debug/프로젝트.exe.intermediate.manifest
Debug/프로젝트.ilk
Debug/프로젝트.pdb
최종보고서.hwp
DoubleLinkedList.h
FFF
Functions.c
Functions.h
main.c
SRCFILE
SRCFILE(3)
testmacro
프로젝트.ncb
프로젝트.sln
프로젝트.suo
프로젝트.vcproj
프로젝트.vcproj.AS-5D49BFE7FDA4.tg.user
프로젝트.vcproj.F010-009.Admin.user
한계점.txt
Debug/BuildLog.htm
Debug/DoubleLinkedList.obj
Debug/FFF
Debug/Functions.obj
Debug/main.obj
Debug/mt.dep
Debug/SRCFILE
Debug/testmacro
Debug/vc90.idb
Debug/vc90.pdb
Debug/프로젝트.exe
Debug/프로젝트.exe.embed.manifest
Debug/프로젝트.exe.embed.manifest.res
Debug/프로젝트.exe.intermediate.manifest
Debug/프로젝트.ilk
Debug/프로젝트.pdb
최종보고서.hwp
이 자료와 함께 구매한 자료
c언어 매크로프로세서 100%구현 13페이지