01/10/2018, 12:08
I challenge DNH to
1. Viết một trình biên dịch (compiler) cho ngôn ngữ brainfuck sang ngôn ngữ tùy thích
Bonus: Code sinh ra phải được tối ưu hóa (optimized)
Test case: https://ideone.com/SjZwJj
Test case 2: https://ideone.com/D3WAOU
2. Viết một trình thông dịch (interpreter) cho ngôn ngữ brainfuck (không cần cú pháp lặp)
Bonus: Cho phép dùng cú pháp lặp
Test case: https://ideone.com/oRDXuk
Test case bonus: https://ideone.com/SjZwJj
Test case bonus 2: https://ideone.com/D3WAOU
Note:
- Chương trình không cần xử lý các ký tự không nằm trong ngôn ngữ brainfuck (kể cả khoảng cách, tab, xuống hàng, …)
- Ngôn ngữ được dùng tùy thích
- Bonus không bắt buộc
- Chỉ cần làm 1 trong 2 câu
- Vui là chính :))
Tài liệu tham khảo:
- https://en.wikipedia.org/wiki/Brainfuck
- http://www.muppetlabs.com/~breadbox/bf/
Online compiler:
- https://copy.sh/brainfuck/
- https://ideone.com/
Happy Brainf*cking!
Bài liên quan
Em vẫn chưa hiểu cái brain nó hoạt động thì làm sao làm đây?
Trình cùi chỉ chuyển sang C thôi
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
// This file is a "Hello, world!" in C++ language by GCC for wandbox. #include #include void toC(const char c) { switch(c) { case '+': { std::cout << "++*pt
Result:
Ideone.com
Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.
Nay nhận ra mình cùi thiệt mấy ngày mới xong cái trình thông dịch, người ta viết đơn giản mà mình làm dài ơi là dài với phải ngồi sửa lỗi đâu đâu không nên mất thời gian.
Viết trên Rust có giai đoạn compile để gom mấy lệnh gần nhau rồi cộng trừ 1 lượt rồi mới thực thi, cũng chưa tối ưu gì hết.
Về Rust thì các bạn có thể đọc ở đây: https://thefullsnack.com/posts/rust-intro.html?t=1508797552961 của anh huytd (có bài y chang trên techtalk nhưng mình tin page đó đạo nhái nên không up link ;)).
Chờ mãi có 2 mống
Thui chắc t7 này cho cái nhẹ nhàng hơn. \ OvO /
Cuối tuần mới làm được, viết bài xong vào tuần rồi nên chẳng ai có time
Biện hộ vote ban nick