BRONZE
BRONZE 등급의 판매자 자료

[프로그래밍] LEX&YACC으로 구현한 SIC/XE 어셈블러

컴퓨터 학부 3학년 1학기 과목이 시스템 프로그래밍의 과제 중 하나인 SIC/XE 어셈블러 입니다. LEX & YACC을 이용하여 쉽게 구성 되어 있으며, 추가 기능 삭제 및 구현이 간단하게 됩니다. 아무래도 LEX & YACC의 장점이 아닌가 싶습니다. 학교 교재는 SYSTEM SOFTWARE라는 교재입니다. 참고하시길 바라며, 책과 함께 하신다면, 이해가 훨씬 수월할 것입니다. 학점은 제가 중간/기말을 못봤음에도 불구하고, LEX&YACC을 사용한 것에 가산점에 차후에 올린 어셈블러 시뮬레이터에서 최고 점수 +알파를 받아 중간/기말 성적이 안좋음에도 불구하고 A+나왔습니다. 차후 SIC/XE 시뮬레이터는 VC로 작성되어 있으며, 이 자료와 연계가 잘 된다고 볼 수 있습니다. ■ 개 요 SIC/XE 어셈블러를 구현하는 데 앞서 주어진 프레임과 LEX & YACC을 이용하여 구현하였습니다. LEX&YACC으로 구현하였기에 주어진 프레임에서 필요 없는 부분이 상당히 많았습니다. 파싱 처리를 위한 함수들이 LEX&YACC으로 구현하다 보니 필요 없는 부분이 생겨 무시하거나 XE를 위한 함수도 몇 가지 추가되었습니다. 그래도 기본 프레임의 흐름은 최대한 유지한 채 LEX & YACC을 이용하였습니다. ※ 이후 경어체는 생략하겠습니다. ■ LEX & YACC을 이용한 기본 프레임 구조 제가 구현한 어셈블러는 가급적 1-PASS에서 할 수 있는 일들을 최대한 처리를 합니다. LEX&YACC에서 처리한 토큰들을 2-PASS에서 반복한다는 것은 비효율적이므로 토큰 관리는 PASS-1에서 처리를 끝마칩니다. 그리고 LEX & YACC은 문법이 어렵지 않을 뿐더러 구조가 간단하여 주석을 삽입하지 않았습니다. 문법 정의의 연속이라 BNF 구조만 정의하면 이해하기 쉬울 것 같습니다.
압축파일
최초등록일 2007.02.01 최종저작일 2006.05
[프로그래밍] LEX&YACC으로 구현한 SIC/XE 어셈블러
  • 미리보기

    소개

    컴퓨터 학부 3학년 1학기 과목이 시스템 프로그래밍의 과제 중 하나인 SIC/XE 어셈블러 입니다.
    LEX & YACC을 이용하여 쉽게 구성 되어 있으며, 추가 기능 삭제 및 구현이 간단하게 됩니다.
    아무래도 LEX & YACC의 장점이 아닌가 싶습니다.

    학교 교재는 SYSTEM SOFTWARE라는 교재입니다. 참고하시길 바라며, 책과 함께 하신다면, 이해가 훨씬 수월할 것입니다.

    학점은 제가 중간/기말을 못봤음에도 불구하고, LEX&YACC을 사용한 것에 가산점에 차후에 올린 어셈블러 시뮬레이터에서 최고 점수 +알파를 받아 중간/기말 성적이 안좋음에도 불구하고 A+나왔습니다.

    차후 SIC/XE 시뮬레이터는 VC로 작성되어 있으며, 이 자료와 연계가 잘 된다고 볼 수 있습니다.


    ■ 개 요

    SIC/XE 어셈블러를 구현하는 데 앞서 주어진 프레임과 LEX & YACC을 이용하여 구현하였습니다.
    LEX&YACC으로 구현하였기에 주어진 프레임에서 필요 없는 부분이 상당히 많았습니다.
    파싱 처리를 위한 함수들이 LEX&YACC으로 구현하다 보니 필요 없는 부분이 생겨 무시하거나 XE를 위한 함수도 몇 가지 추가되었습니다. 그래도 기본 프레임의 흐름은 최대한 유지한 채 LEX & YACC을 이용하였습니다.
    ※ 이후 경어체는 생략하겠습니다.


    ■ LEX & YACC을 이용한 기본 프레임 구조

    제가 구현한 어셈블러는 가급적 1-PASS에서 할 수 있는 일들을 최대한 처리를 합니다. LEX&YACC에서 처리한 토큰들을 2-PASS에서 반복한다는 것은 비효율적이므로 토큰 관리는 PASS-1에서 처리를 끝마칩니다.
    그리고 LEX & YACC은 문법이 어렵지 않을 뿐더러 구조가 간단하여 주석을 삽입하지 않았습니다.
    문법 정의의 연속이라 BNF 구조만 정의하면 이해하기 쉬울 것 같습니다.

    컴파일 실행환경

    ■ 개발 환경

    SYSTEM : LINUX (FEDORA CODE 5)
    PARSER : FLEX & BISON (LEX & YACC GNU VERSION)
    COMPILER : GCC COMPILER
    FILE : my_assembler.h(헤더), my_assembler.l(LEX), my_assembler.y(YACC), convert.c

    ** 리눅스 상에서 단지 make만 하면 모든 컴파일이 완료되며, 소스 코드 또한 그리 어렵지 않기 구성되어 있다.

    참고자료

    · System Software (3rd Edition) by Leland L. Beck
    · 나머지는 리눅스의 man페이지
  • 자료후기

      Ai 리뷰
      이 자료를 통해 새로운 인사이트와 지식을 얻을 수 있었습니다. 내용이 풍성하여 과제 작성에 큰 도움이 되었습니다. 계속해서 좋은 자료를 기대합니다! 감사합니다.
    • 자주묻는질문의 답변을 확인해 주세요

      해피캠퍼스 FAQ 더보기

      꼭 알아주세요

      • 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
        자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
        저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
      • 해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.
        파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
        파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우
    문서 초안을 생성해주는 EasyAI
    안녕하세요. 해피캠퍼스의 방대한 자료 중에서 선별하여 당신만의 초안을 만들어주는 EasyAI 입니다.
    저는 아래와 같이 작업을 도와드립니다.
    - 주제만 입력하면 목차부터 본문내용까지 자동 생성해 드립니다.
    - 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
    - 스토어에서 무료 캐시를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
    이런 주제들을 입력해 보세요.
    - 유아에게 적합한 문학작품의 기준과 특성
    - 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
    - 작별인사 독후감
    해캠 AI 챗봇과 대화하기
    챗봇으로 간편하게 상담해보세요.
    2025년 08월 03일 일요일
    AI 챗봇
    안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
    4:08 오전