2012-04-15 90 views
0

我正在开发自定义语言,并且一切正常,但我停止添加对getchar(),fopen()等标准函数的支持。我的一个想法是解析可视化的.lib文件,但这是一项巨大的任务(例如由于缺乏规范)。你有其他想法吗?它是如何用D语言制作的?支持自定义语言的标准C库

编辑: 我想实现的目标是能够使用系统功能(例如打开文件,使用套接字),但无需从头开始编写。我需要一些方法来访问已经编写的libs/dll。

最简单的解决方案是加载C标准库并调用这些函数(之前设置堆栈),但我需要一些方法来获取此代码(汇编)。

+1

很难理解你在问什么。请编辑帖子并解释更多。 – pzanoni 2012-04-15 19:41:23

回答

1

通常情况下,您可以制作自己的标准库,使其适合您的语言,而不是使用C标准库。你为什么要编写自己的语言,而不应该把它写入你的标准库的设计中?

为了与一般的C库兼容,我发现最常见的方法是用不同的语言重新表达与库的接口。 Python为此提供了ctypes模块。在.NET中,您将使用P/Invokes。这在翻译界面时带来了一些手动工作和出错机会,但它比自动化过程更简单和更强大。

此外,.NET的设计使得.NET库可以从.NET中的任何语言实现进行访问,只要库和语言设计正确即可。特定语言可能有自己的需求,这些需求由自己的标准库来填充,但控制台I/O之类的东西都在同一个地方,并且不需要通过每种语言进行重新创建。