khó hiểu Tiny C Compiler (OTCC) là một trình biên dịch C rất nhỏ, tôi đã viết để giành chiến thắng trong cuộc thi obfuscated C Mã quốc tế (IOCCC) vào năm 2002.
Mục tiêu của tôi là để viết các trình biên dịch C nhỏ nhất mà là có thể biên dịch riêng của mình. Tôi chọn một tập hợp con của C mà là nói chung đủ để viết một trình biên dịch C nhỏ. Sau đó, tôi mở rộng thêm các tập con C cho đến khi tôi đạt kích thước tối đa cho phép bởi các cuộc thi: 2048 byte C nguồn không bao gồm, các ký tự, '{', '}' và không gian ''.
Tôi chọn để tạo ra mã i386. Mã OTCC ban đầu chỉ có thể chạy trên Linux i386 vì nó dựa vào endianness và truy cập unaligned. Nó tạo ra các chương trình trong bộ nhớ và đưa nó trực tiếp. Biểu tượng bên ngoài đã được giải quyết với dlsym ().
Để có một phiên bản di động của OTCC, tôi đã thực hiện một biến thể gọi là OTCCELF. Nó chỉ là một chút lớn hơn OTCC, nhưng nó tạo ra trực tiếp một ELF thực thi i386 liên kết động từ một nguồn C mà không dựa vào bất kỳ công cụ binutils! OTCCELF đã được thử nghiệm thành công trên i386 Linux và Solaris Sparc.
Chú ý: Dự án khác của tôi TinyCC mà là một trình biên dịch C ISOC99 đầy đủ tính năng được viết bằng cách bắt đầu từ mã nguồn của OTCC!
Biên dịch:
gcc-O2 otcc.c -o otcc -ldl
gcc-O2 otccelf.c -o otccelf
Tự biên dịch:
./otccelf otccelf.c otccelf1
Các chi tiết về phần mềm:
Phiên bản: 1.0
Ngày tải lên: 3 Jun 15
Giấy phép: Miễn phí
Phổ biến: 98
Bình luận không