2012-04-15 68 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之類的東西都在同一個地方,並且不需要通過每種語言進行重新創建。