包含库的语言设计问题
Language Design issues with including libraries
我正在编写一个编译器,它将把我制作的一种语言(称为俚语(目前这些文件有些落后,但并不重要))编译成c++(最终是ELF, Mach-O和PE,但这将在稍后出现)。这是我的第一个编译器,想知道包含库的最佳方式?在c/c++中,库只是通过复制和粘贴来导入的(最坏的情况下)。我敢肯定还有更复杂的事情发生)。对于编译器来说,这是最好的方法吗?对于无法匹配gcc/visual c++/clang预处理器的人来说,是否有更有效的方法?事先感谢你能给予的任何帮助。只是要清楚,我不是要求具体的代码,只是关于如何做的想法。
边注如果有人知道任何编译器特定的论坛或irc频道,我很想知道它们是什么。我找了又找,除了针对某个产品的特定名称,比如#gcc或#clang,还没有找到。
编辑:我上面说错了。我知道,只是头文件被粘贴到文件中,包括它,然后链接器链接源文件与更多的源文件和/或库。然而,我仍然在寻找包括库的最有效的方式,而不编写俚语链接器
您没有提供您的编程语言的一个小的"Hello World"示例,并且,您链接,没有直接显示任何示例。
尝试做类似的事情,在过去。
你可能想看看D,因为它是一个类似的已知情况:
http://dlang.org/index.html大多数编程语言没有头文件,但如果编译成C或c++,可能会生成头文件。
你的编译器/编程语言如何处理单独的文件?你的编译器/编程语言如何定位单独的文件?
我建议你的编程语言支持名称空间或模块。"Plain C"answers"PHP"最初没有名称空间。
类似:
文件:"CollectionExample.sprg"
namespace CollectionExample;
import Collections = "c:\slang\Collections.slib";
...
void main()
{
// do something with definitions in "Collections"
}
...
可以生成如下c++文件:
文件:"CollectionExample.hpp"
...
:
文件:"CollectionExample.cpp"
#include "c:\slang\Collections.hpp"
#include "c:\slang\CollectionExample.hpp"
...
我还建议,在你的编程语言中,使用与主程序库不同的文件扩展名或文件后缀。
欢呼。
- 警告处理为错误这里有什么问题
- Rextester 语言编译C++问题
- 我的C++语言蛮力算法有问题
- 桌面计算器出现问题.C++程序设计语言
- 以C++语言打印 CHAR 数组时出现问题
- 有关在C++中为很酷的语言制作编译器的问题
- 在 C 语言中打印映射/过滤器/减少函数时出现问题
- 选择一门语言学习真的很重要吗?他们都使用相似的技术来解决问题
- 用C语言制作一个基本外壳,在管道/叉子方面遇到问题
- averagefunctor语言 - 它或VS2013有问题
- 编译器问题或c语言代码块中的一些错误
- CMake CLion 问题 - 错误:无法确定目标"XYZ"的链接语言
- 包含库的语言设计问题
- c++到java,语言等价问题
- C++中的一个星形实现(语言问题)
- 关于C++编程语言的问题
- qmake 语言保留字问题(我认为)
- C 语言中的另一个核心转储问题
- c++语言中的两个问题
- 新项目:我在选择要使用的语言时遇到问题