我正在为我正在创建并来自 C 背景的简单宠物语言制作一个简单的编译器(尽管我是用 Ruby 编写的)我想知道是否需要预处理器。
你怎么认为?现代语言中仍然需要“哑巴”预处理器吗? C# 的条件编译功能会被视为“预处理器”吗?是否每一种不包含预处理器的现代语言都有正确替换它所需的实用程序? (例如,由于模板,C++ 预处理器现在大部分已经过时(尽管仍然依赖)。)
最佳答案
C 的预处理可以做非常巧妙的事情,但是如果您查看它所使用的东西,您就会意识到它通常只是为了添加另一个抽象级别。
所以我的回答是:如果您的语言足够高级,则不需要预处理器 *.我不会说预处理是邪恶的或无用的,我只是说语言越抽象,我认为它需要预处理的理由就越少。
* 什么才够高级?当然,这完全是主观的。
编辑:当然,我真的只是指宏 .使用预处理器与其他代码文件交互或定义常量是邪恶的。
关于language-agnostic - 预处理器在现代语言中过时了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2940437/