모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    중용자님의
    개인페이지입니다
    가입 : 12-10-09
    방문 : 1057회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_18575
    작성자 : 중용자
    추천 : 16
    조회수 : 1149
    IP : 182.228.***.202
    댓글 : 39개
    등록시간 : 2016/10/01 17:48:23
    http://todayhumor.com/?programmer_18575 모바일
    컴파일러 개발 근황
    예전에 컴파일러 개발한다고 글을 올린 이후로 오랬만에 컴파일러 개발 근황을 올립니다. <div><span style="font-size:9pt;">아무래도 오유에는 컴파일러 개발에 관심있는 분들이 많지 않은 것 같아 컴파일러 관련해서는 프로그래밍 전문 커뮤니티에 글을 쓰고 있습니다.</span></div> <div><br></div> <div>현재 개발중인 컴파일러는 간단하게 말해서 C Preprocessor + Rust + Python 입니다.</div> <div><span style="font-size:9pt;">전에는 컴파일러가 생성한 어셈블리 코드를 FASM을 이용하여 컴파일하고 실행파일을 만들어 냈는데 현재 어셈블러를 직접 만들고 있습니다.</span></div> <div><span style="font-size:9pt;">컴파일 전과정을 직접 개발하여 성능의 극대화를 추구하려는 것도 있지만 가장 큰 이유는 기존의 컴파일러 개발 방식과는 전혀 다른 방식으로 접근하기 위해서 입니다.</span></div> <div><span style="font-size:9pt;">일반적으로 컴파일러는 문법을 BNF으로 정의하고 직접 렉서, 파서를 만들거나 오픈 소스 렉서, 파서 등으로 토큰 테이블과 신택스 트리를 생성한 다음 중간 코드 생성하고 생성된 중간 코드를 플랫폼에 맞게 기계어로 변환하고 링커로 실행파일을 만드는 과정을 거칩니다.</span></div> <div><br></div> <div>저는 어셈블러에 살을 붙이는 방식으로 역으로 컴파일러를 개발하고 있습니다.</div> <div><span style="font-size:9pt;">우선 순수하게 어셈블러 니모닉과 지시어로 이루어진 어셈블러를 만든 후 앞단에 C Preprocessor를 붙이고 어셈블러의 스캐너와 파서에 고급언어 문법을 추가할 생각입니다.</span></div> <div><span style="font-size:9pt;">고급 언어의 문법추가는 실제로 컴파일시 생성되야 할 기계어 코드를 어셈블리로 직접 생성한 이후 같은 기능을 하는 문법을 추가하고 컴파일하여 동일한 결과가 나오는지 검토하는 방식을 사용할 생각입니다.</span></div> <div><span style="font-size:9pt;">이미 FastASM을 개발할 때 계속 사용했던 방식인데 예전에는 고급언어 문법 스캐너, 파서와 어셈블러의 스캐너, 파서가 분리되어 있었다면 지금은 이걸 하나로 합치려는 것이죠.</span></div> <div><span style="font-size:9pt;"><br></span></div> <div><span style="font-size:9pt;">문법은 기존의 Visual Basic .Net에 비슷한 문법에서 생산성과 접근성을 위해 파이썬으로 변경했습니다.</span></div> <div><span style="font-size:9pt;">최대한 파이썬의 문법에 가깝게 만들어 기존의 수많은 파이썬을 어렵지 않게 포팅할 수 있게 하여 제가 만들고 있는 컴파일러가 그냥 마이너 컴파일러가 되지 않게 하기 위해서 입니다.</span></div> <div><span style="font-size:9pt;">아예 동일하게 문법을 하지 않는 이유는 파이썬의 문법이 갖고 있는 수많은 단점들과 모든 문법을 지원할 경우 제가 원하는 어셈블리어에 버금가는 성능의 고급언어는 구현이 불가능하기 때문입니다.</span></div> <div><span style="font-size:9pt;">C의 Preprocessor 도입은 운영체제 API들이나 DLL API를 사용하기 위해 해야하는 정의를 최대한 줄이기 위해서 입니다.</span></div> <div><span style="font-size:9pt;">문법을 파이썬으로 해서 파이썬 라이브러리의 포팅을 쉽게할 수 있게 했듯이 C의 Preprocessor를 도입하여 API 등을 사용하기 위한 정의를 C의 해더를 이용하겠다는 겁니다.</span></div> <div><span style="font-size:9pt;"><br></span></div> <div><span style="font-size:9pt;">현재 어셈블러는 절반이상 진행이 된 상태로 PE 해더부분만 더 가다듬으면 내일중에 간단한 명령들은 컴파일이 될 것 같습니다.</span></div> <div>하지만 요즘 CPU들 명령이 너무 많아 모든 명령이 추가 되려면 상당한 시간이 걸릴 것 같습니다.</div> <div>컴파일러의 구조는 대부분 만들어진 상황으로 <span style="font-size:9pt;">앞으로는</span><span style="font-size:9pt;"> </span><span style="font-size:9pt;">부지런한 노가다가 될 것 같습니다.</span></div> <div>파이썬 문법 추가후 셀프 호스팅으로 다시 컴파일러를 만드는 것은 내년에나 가능하지 않을까 생각중입니다.</div>

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2016/10/01 17:59:53  183.102.***.52  정겨울  423595
    [2] 2016/10/01 18:25:26  211.36.***.69  순잼  667643
    [3] 2016/10/01 19:44:08  116.34.***.231  뉴럴네트워크  720836
    [4] 2016/10/01 19:52:40  115.22.***.44  DB2  228007
    [5] 2016/10/01 21:31:44  124.5.***.157  향기없는바람  384438
    [6] 2016/10/01 21:59:52  183.101.***.80  꾸듯  357582
    [7] 2016/10/01 22:27:15  119.204.***.103  을파소  440752
    [8] 2016/10/01 23:43:04  222.112.***.50  모지리이  665701
    [9] 2016/10/02 00:37:48  60.241.***.216  택배다문열어  680804
    [10] 2016/10/02 03:56:49  110.13.***.27  내가니엡이다  94397
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    205
    라이젠 견적 조언 부탁드립니다. (파워, 메인보드, 마우스) [5] 본인삭제금지 중용자 17/12/15 23:35 61 1
    204
    강백호 황치열 너무 목소리를 거칠게 내네요. 중용자 17/05/21 17:35 228 1
    203
    무당벌레 이예준 정말 노래 잘부르네요. [4] 중용자 17/05/21 17:10 217 6
    202
    전 노통의 삶에 대한 글도 영화도 보지 못합니다. [5] 중용자 17/05/17 23:13 316 14
    201
    에어로빅소녀- 화사, 탱고걸- 김보형? [4] 중용자 17/05/14 17:30 209 1
    200
    김빵순 안신애 같은 안신애 언제 다쳤어요? 중용자 17/04/30 17:33 126 1
    199
    대통령 후보 토론회 왜 이리 재미있죠? [2] 중용자 17/04/25 23:21 437 1
    198
    아무래도 제가 잘못된 판단으로 글을 쓴 것 같아 사과드립니다. [6] 중용자 17/04/21 19:08 611 18
    197
    어그로 들에게는 답글보다는 신고를 부탁드립니다. 중용자 17/04/20 01:11 49 2
    196
    한 회사가 오랜시간 잘나가면 신격화 시키는 경향이 있습니다. [6] 중용자 17/04/15 16:00 154 7
    195
    유승민이 토론을 잘했다는 평에 대한 오해들 [4] 중용자 17/04/14 01:04 412 3
    194
    유승민이 오늘 토론의 승자이고 긍정적 결과인 것 같습니다. [21] 중용자 17/04/14 00:24 1609 25
    193
    지금까지의 토론 평가 : 유 > 심 > 문 > 안 > 홍 [24] 중용자 17/04/13 23:22 1305 6/22
    192
    그래픽 카드 선택팁 [4] 중용자 17/02/19 19:02 122 3
    191
    오랬만에 컴파일러 개발 근황 [11] 중용자 17/01/25 15:25 74 14
    190
    호빵왕자 시작부분은 환희같네요. 중용자 17/01/08 18:19 76 2
    189
    디저트맨 정승환 같은데요. [3] 중용자 16/12/25 17:35 235 1
    188
    박기영이 그 동안 성악쪽 공부 한 것 많이 써먹네요. 중용자 16/12/18 18:11 178 1
    187
    김필 아까워서 복면가왕 또 나왔나 보네요. [2] 중용자 16/12/18 17:10 281 1
    186
    체리필터 나왔네요. 중용자 16/12/11 18:20 49 1
    185
    암행어사 라디, 미스춘향 이지혜 같은데요. [4] 중용자 16/10/16 17:52 278 0
    184
    Hybrid Assembler - Hello, world! 중용자 16/10/11 14:03 44 6
    183
    알리가 이기면 장기가왕 될 수도 있을 것 같네요. 중용자 16/10/09 18:28 142 0
    컴파일러 개발 근황 [39] 중용자 16/10/01 17:48 65 16
    181
    컴퓨터 견적 추천에 과대스펙 추천을 하지 않았으면 좋겠습니다. [7] 중용자 16/09/27 01:42 202 12
    180
    RX 460 가격 및 벤치마크 [7] 중용자 16/08/09 11:49 247 3
    179
    정의당 한방은 참았는데 JTBC 한테 맞은 건 못참겠네요. 중용자 16/07/28 04:58 426 9
    178
    hybrid 컴파일러 제작 중 표준라이브러리와 OS API 호출 방법 [2] 중용자 16/06/10 22:32 25 3
    177
    더 원 칼 뽑았네요. 중용자 16/06/05 17:57 179 0
    176
    벤은 노래 잘합니다. 애들과 비교할 수준이 아니예요. [9] 중용자 16/05/29 18:15 522 6
    [1] [2] [3] [4] [5] [6] [7]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈