我知道這個問題聽起來很愚蠢,但我無法正確地構建它。所以,這就是我所期待的。
#This is some programming language.
java_file = new Java()#creates a temp java named java_file which will be interpreted when this program runs.
py_file = new Python()#creates a temp py file
java_file{
/*The usual class declaration*/
x=6
}
x=java_file.get(x)#this variable is of the hypothetical language.
py_file{
print(MAIN.x)#MAIN.x refers to the previous defined value.
}
我正在考慮一種通過在單獨的容器中運行每種語言來支持所有語言的編程語言,那么有什么辦法可以做到呢?最好使用Java。這看起來像套接字,但我想完全控制每個容器,比如能夠暫停、恢復和讀取內部狀態。
uj5u.com熱心網友回復:
這是一個想法:您可以在要連接的每個容器中運行本地服務器,并且在控制它們的 Java 程式中,您可以創建由語言類包裝的行程,該類可以使用套接字將控制資料包發送到服務器。這也可用于訪問變數。請參閱以下概念:
public abstract class Language {
public Object getVariable(String variableName) {
sendPacketToServer("get_variable " variableName);
return readResponse();
}
}
注意:這使您的選擇非常靈活,并且還允許遠程控制程式。但是,如果您希望可以使用流程輸入和輸出流發送和接收資料。
uj5u.com熱心網友回復:
簡短的回答:
理論上可以假設您可以為這種混合語言指定清晰的語意。
在實踐中,我知道沒有(已實作的)混合語言可以像這樣運行。甚至遠程。
第一個(大)問題是指定一種語言,允許您在其中嵌入其他語言并參考嵌入語言中定義的元素。語法和語意需要考慮您嵌入的所有語言的現有語法和語意。復雜,我想。
第二個(大)問題是實施它。
您是否嘗試使用嵌入式語言的現有實作?框架語言如何控制嵌入式執行?它如何在適當的點停止執行并提取/注入值?
您是否構建了在框架語言的“虛擬機”中運行的新實作(例如解釋器)?性能可以接受嗎?
這是一個有趣的想法……但最終的結果值得嗎?是否有令人信服的用例?你有沒有辦法花費幾個人年的努力(來自知道如何設計和實作語言的人)來看看它是否有效?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389456.html
