cost 250 ms
JVM 語言中如何編譯嵌套函數和詞法作用域?

[英]How are nested functions and lexical scope compiled in JVM languages?

作為我的問題的一個具體示例,這是 Python 中的一個片段(它應該對最廣泛的人可讀,並且無論如何都有一個 JVM 實現): 工業級語言如何編譯這樣的定義,以實現靜態作用域? 如果我們只有嵌套定義但沒有更高階的函數值參數或返回值,像 Pascal 那樣(因此不需要閉包)怎么辦? 我猜計算靜態鏈接 ...

為什么不使用 GlobalScope.launch?

[英]Why not use GlobalScope.launch?

我讀到非常不鼓勵使用Globalscope , 這里。 我有一個簡單的用例。 對於我收到的每條 kafka 消息(假設是一個 Id 列表),我必須拆分它並同時調用一個休息服務,等待它完成並繼續執行其他同步任務。 該應用程序中沒有其他東西需要協程。 在這種情況下,我可以逃避嗎? 注意:這不是一個安 ...

如何從 ScriptEngineManager 檢索 Kotlin jsr223 腳本引擎?

[英]How do I retrieve Kotlin jsr223 script engine from ScriptEngineManager?

我正在嘗試編寫一個界面 (GUI) 來運行一些 Kotlin 腳本。 我只是從 Junit 測試開始,以確保我可以執行腳本。 我什至無法加載 kotlin 引擎。 看起來我的依賴項(gradle)是有序的,但你可以仔細檢查一下。 上面: ext.kotlin_version = '1.3.0' ...

在沒有JVM支持的情況下,如何在JVM語言中實現協同程序?

[英]How are coroutines implemented in JVM langs without JVM support?

在閱讀了Loom提案之后提出了這個問題,該提案描述了在Java編程語言中實現協同程序的方法。 特別是此提案表示,要在該語言中實現此功能,將需要額外的JVM支持。 據我所知,JVM上已經有多種語言可以將協同程序作為其功能集的一部分,例如Kotlin和Scala。 那么如何在沒有額 ...

如何為自定義JVM語言的靜態代碼分析工具實現類型信息?

[英]How to implement type information for static code analylsis tool for a custom JVM language?

我必須為自定義JVM語言實現靜態代碼分析工具,並且希望擁有Java Class<?>類中可訪問的大多數方法,例如: getDeclaredMethods(): Method[] 。 我想出了兩種方法: 1)編譯所有類,以便我有了可以在其上調用javap的.class文件,然后 ...

為什么可以為JVM構建自定義語言,例如Groovy,Scala,Clojure,Kotlin?

[英]Why it is possible to build custom language for JVM, like Groovy, Scala, Clojure, Kotlin?

這些語言在很多方面與Java不同,例如OO系統,類型系統(最著名)。 實際的問題是JVM是否在后台跟蹤對象? JVM內部是否有對象 ? 這些語言的創建者有責任與Java世界進行互操作,還是“默認”實現? ...

錫蘭高階函數

[英]Ceylon Higher Order Function

我有代碼: 我不知道為什么編譯器可以使用“ i2”聲明。 什么都不是一切的子類型,因此也不是空元組的子類型,因此我可以理解為什么可以進行聲明。 但是一旦完成,對我來說,正常調用“ i2”似乎是不可能的,因為沒有參數調用它,空元組意味着以錫蘭拒絕的想要的超類型調用它。 那么有可能完全 ...

將結果寫入易失性var以防止在測試中消除死代碼

[英]Write result to a volatile var to prevent dead-code elimination in tests

我將測量一些代碼的性能。 為此,我介紹了以下方法: 引入blackHole變量是為了保留body結果。 這樣做是為了防止JVM 消除死代碼 。 在一些書中有一條聲明, blackHole聲明如下: 為什么要標記變量volatile ? ...

傳遞給:core / first的args(2)數目錯誤

[英]Wrong number of args (2) passed to: core/first

我是Clojure的新手,在迭代數據時遇到一些問題。 我寫的代碼如下: 當我調用該函數時: 我在(if(first firstTargets)語句中得到了錯誤數量的args錯誤。 例外是: ArityException傳遞給以下參數的錯誤數量的args(2) ...

在Scala代碼中調用Clojure類

[英]Calling Clojure classes in Scala code

我有一個簡單的clojure代碼與project.clj具有: 我的core.clj是: 我將.jar提取到target文件夾中: 它顯示: 在我的斯卡拉項目,我抄piezojob.jar中lib文件夾中。 在scala文件之一中,我添加了: impor ...

在Kotlin中使用Groovy的擴展方法有一種干凈的方法嗎?

[英]Is there a clean way to use Groovy's extension methods in Kotlin?

例如,Groovy允許獲取由java.nio.file.Path表示的文件的文本,如下所示: 我希望能夠在Kotlin中重用Groovy的text擴展方法。 請注意 :我知道Kotlin對這種特殊情況有一個相關的方法 。 但是,可能存在對Kotlin用戶有用的Groovy方法。 ...

Kotlin:UnsupportedOperationException用於帶有get / set運算符的通用泛型

[英]Kotlin: UnsupportedOperationException for reified generic with get/set operator

我試圖將在庫中read和write的函數分別轉換為運算符get和set 。 我的函數使用經過修飾的泛型類型,它們也是內聯方法。 (您可以在這里看到我的圖書館。) 編譯器沒有讓我通過的問題,我也看不出為什么使用非運算符函數進行推理就可以了,但是在運行時使用運算符會失敗。 代碼如下 ...

構造函數調用的java.lang.VerifyError

[英]java.lang.VerifyError on constructor call

我最近開始為自己的語言編寫一個編譯器,但是當我調用main方法時它開始拋出異常。 它適用於我的其他測試類,但它不想使用這個。 據我所知,這個類和其他類之間的方法調用方式沒有什么不同。 這是例外。 這是javap輸出的字節碼 ...

為什么Groovy用size()替換java.lang.String.length()?

[英]Why does Groovy replace java.lang.String.length() with size()?

Wikipedia 目前關於Groovy編程語言的文章解釋說“大多數有效的Java文件也是有效的Groovy文件”,並提供以下示例,首先是Java代碼: 然后在Groovy中相同: 請注意,在第一個示例中,我們使用了完全普通的Java方法java.lang.String.leng ...

是否可以通過命令行“愚弄” Java環境變量

[英]Is it possible to “fool” java that an environment variable is set from the command line

我在可以傳遞參數但不能使用普通命令行設置環境變量的環境中運行。 我還是要設置環境變量。 是否有另一種方法可以“愚弄” java設置環境變量,例如使用-D參數? (我正在通過色調在oozie中運行火花;所有這些都在Cloudera堆棧中)。 ...

編寫針對JVM的編譯器的最佳框架或方法?

[英]Best frameworks or methods to write compilers targetting JVM?

是否有類似於LLVM或Parrot Compiler Toolkit的框架,這些框架使編寫針對JVM的編譯器更加容易? 我希望該框架具有AST代碼生成器。 因此,我可以編寫一個基於框架庫構造AST的語言前端,然后框架可以完成其余工作並編譯為JVM字節碼。 Polyglot看起來像一 ...

內部/字節碼注釋安全性

[英]Intrinsic / Bytecode Annotations Security

我目前正在制作一種基於JVM的編程語言。 我沒有使用運算符,而是選擇允許使用符號作為方法名稱,並為原始數據類型創建編譯器引用類。 這些使用所謂的@Intrinsic注釋進行注釋,這些注釋將Bytecode指令作為其參數。 代替INVOKE指令,編譯器使用這些指令在每次調用時生成字節碼。 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM