问题标签 [runtime-compilation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 你会在哪里使用 C# 运行时编译?
我最近在另一个网站上偶然发现了一个关于 C# 运行时编译的简短讨论,当时我正在搜索其他内容,并认为这个想法很有趣。你用过这个吗?我正在尝试确定如何/何时可以使用它以及它解决了什么问题。我很想听听您是如何使用它的,或者在什么情况下它是有意义的。
非常感谢。
code-generation - CodeDOM 和 .Net 模块
如何以编程方式将 .Net 模块嵌入到 CodeDOM 生成的程序集中?
java - Java 5 和 Java 6 的动态内存中 Java 代码编译
如何从 Java 5 和 Java 6 中的任意字符串(在内存中)编译 java 代码,加载它并在其上运行特定方法(预定义)?
在你发火之前,我查看了现有的实现:
- 大多数依赖于 Java 6 Compiler API。
- 那些没有,依靠技巧。
- 是的,我查看了 commons-jci。要么我太密集而无法理解它是如何工作的,要么就是没有。
- 我找不到如何为编译器提供我当前的类路径(这是相当大的)。
- 在有效的实现上(在 Java 6 中),我找不到如何正确加载内部类(或内部匿名类)。
- 如果整个东西都在内存中,我会非常喜欢它,因为它可以在多个环境中运行。
我确信这已经解决了,但是我在谷歌上找不到任何看起来甚至是半生产质量的东西(除了 jci,正如我之前所说,我还没有设法使用)。
编辑:
- 我查看了 JavaAssist - 我需要内部类、Java 5.0 语言级别支持以及使用整个类路径进行编译。另外,我想即时创建新课程。我可能弄错了,但我找不到如何使用 JavaAssit 执行此操作。
- 我愿意使用基于文件系统的解决方案(调用 javac),但我不知道如何预测类路径,也不知道以后如何使用特殊的类加载器加载文件(不在我的类路径中)为多次调用而回收。虽然我确实知道如何研究它,但我更喜欢现成的解决方案。
Edit2:目前,我对 BeanShell“评估”感到满意。显然它做了我需要它做的一切(获取一个字符串,在“当前”类路径的上下文中评估它。它确实错过了一些 Java 5 功能,但它可以使用枚举(未定义)和编译的“通用”(删除) 类,所以对于我想要的应该足够了。
我不想将答案标记为已接受,因为我确实希望出现更好的解决方案。
Edit3:接受了 beanshell 的建议——它真的很有效。
java - 在 Java 应用程序运行时定义一个类
在 Java 中,是否可以在应用程序运行时动态创建类定义,然后创建该类的对象?
例如,一个正在运行的应用程序将读入一个文本文件,该文件包含要包含在新类中的类成员列表。然后,应用程序将根据成员列表定义一个类定义,然后实例化它。
java - 加载外部源代码并在内部使用它们(通过重新编译或其他方式)
有没有办法使用外部存储的源代码并将其加载到 Java 程序中,以便它可以使用它?
我想要一个无需编辑完整源代码即可更改的程序,甚至无需每次都编译。另一个优点是,我可以随意更改部分代码。
当然,我必须有接口,以便可以将数据发送到其中并再次将其返回到固定源程序中。
当然,它应该比纯口译系统更快。
那么有没有办法做到这一点,比如额外编译这些外部源代码部分并在完成后启动程序?
提前谢谢你,安德烈亚斯 :)
performance - 运行时编译:这怎么可能不影响性能?
我听说某些类型的运行时编译不会影响性能。官方 Python 文档断言运行.pyc
文件不比.py
. (我现在找不到链接。)这怎么可能?从 生成字节码不需要时间.py
吗?
像 PHP 这样的语言呢?每次执行时都不需要编译它们吗?你为什么要这个?如果多次运行同一个脚本,这似乎是在浪费时间。
c# - 编译运行动态代码,不生成EXE?
我想知道是否可以编译和运行存储的代码,而无需生成 exe 或任何类型的其他文件,基本上是从内存中运行文件。
基本上,主应用程序将有一些存储的代码(可能会更改的代码),它需要编译代码并执行它。无需创建任何文件。
创建文件,运行程序,然后删除文件不是一种选择。编译后的代码需要从内存中运行。
代码示例,指针,或几乎任何东西都是受欢迎的:)
java - 运行时代码生成和编译
假设我有这段代码,它使用一些输入(例如 URL 路径)来通过反射确定要运行的方法:
这使用反射,因此可以提高性能。可以这样做:
但是手动创建所有类似Runnable
的 s 有其自身的问题。我想知道,我可以在运行时生成它们吗?所以我会像第一个示例一样有一个输入映射,并会动态创建第二个示例的映射。当然,生成它只是构建一个字符串的问题,但是编译和加载它呢?
注意:我知道性能提升是如此之小,这是过早优化的完美示例。因此这是一个学术问题,我对代码的运行时生成和编译感兴趣。
c# - 在线c#解释器安全问题
我正在玩弄构建一个在线 C# 解释器的想法,有点像Codepad。现在有明显的安全问题:
- 无限循环
- System.Diagnostics.Process.Start
- 几乎整个 System.IO 命名空间
我对 C# 的了解并不完全是微不足道的,但我确信还有很多关于它的知识,以及我没有想到的东西。你会注意什么?
一些精度,我计划在一个使用 Mono 的小型 Linux VPS 上运行它。
c# - 具有多对可能关系的 CompileAssemblyFromDom
我有两节课。
我需要在单独的程序集中编译它们。CompileAssemblyFromDom 认为它没有找到另一种类型,这是有道理的,因为这些类是循环依赖的。有什么解决方法可以做到这一点吗?
谢谢。