混淆微小的C編譯器(OmniTouch聯絡中心)是一個非常小的C編譯器我為了贏得國際C語言混亂代碼大賽(IOCCC)在2002年寫道。
我的目標是寫最小的C編譯器,它能夠編譯本身。我選擇C的一個子集,這是一般足夠寫一個小的C編譯器。然後,我擴展的C子集,直到我到達授權較量的最大尺寸:2048字節的C源代碼不包括';','{','}'和空格字符。
我選擇生成代碼的i386。原來OTCC代碼只能運行在Linux的I386,因為它依賴於字節序和未對齊訪問。它產生在內存中的程序,直接啟動它。外部符號解決了使用dlsym()。
為了有一個便攜版本OTCC的,我做了一個叫OTCCELF變種。這僅比OTCC大一點,但它會產生直接從C源動態鏈接i386的ELF可執行文件不依賴於任何binutils的工具! OTCCELF進行了測試成功地在i386的Linux和SPARC Solaris的。
注:我的其他項目TinyCC這是一個功能齊全ISOC99 C編譯器是由從OmniTouch聯絡中心的源代碼開始!
編譯:
GCC -02 otcc.c -o OTCC -ldl
GCC -02 otccelf.c -o otccelf
自編譯:
./otccelf otccelf.c otccelf1
按類別搜索
熱門軟件
-
Apricity OS 12 Jan 17
-
Oracle Enterprise Linux 22 Jun 18
-
LaTeX::BibTeX 14 Apr 15
-
Tor Browser 20 Jan 18
-
Syslinux 17 Feb 15
-
Solus 2 Sep 17
-
Psiphon 20 Feb 15
評論沒有發現