问题标签 [embedded-language]

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.

0 投票
7 回答
98007 浏览

c++ - Calling python from a c++ program for distribution

I would like to call python script files from my c++ program.

I am not sure that the people I will distribute to will have python installed.

Basically I'm looking for a .lib file that I can use that has an Apache like distribution license.

0 投票
5 回答
17747 浏览

c++ - 如何在 C++ 中嵌入 Ruby?

将 Ruby 作为脚本语言嵌入到 C++ 中的最佳方法是什么?使用 ruby​​.h?痛饮?还有什么?我需要向 Ruby 公开一些 C++ 对象,并让 Ruby 解释器评估访问这些对象的脚本。我不在乎扩展 Ruby 或在 C++ 中访问它。

我发现了这篇关于在 C++ 中嵌入 Ruby 的文章,虽然它非常有用,但它有点老了,我想知道是否有关于该主题的任何其他资源(或类似引擎的开源实现)。

0 投票
3 回答
1175 浏览

c - 如何在 C 程序中编译 Perl 代码?

我有一个带有嵌入式 Perl 解释器的 C 程序。我希望能够从程序中预编译一些 Perl 代码。我怎么做?

基本原理(如果有人感兴趣的话)是能够编译一次,存储解析树,并执行多次(只要编译后的代码不变)。

谢谢!马杜

PS:我正在使用 Perl-5.8,不过如果 Perl-6.0 以任何方式让这变得更容易,我会很高兴。

0 投票
5 回答
2477 浏览

embedded - 小型 RISC 模拟器

我正在寻找将虚拟机构建到游戏中,并且想知道是否有人知道任何非常简单的虚拟机(我认为 RISC/PIC 接近我想要的),这些虚拟机通常用于嵌入式项目,例如控制机器人、电机、传感器等。如果我自己动手,我主要担心的是必须编写一个编译器/汇编器。我会很高兴使用已经存在的工具,或者以最简单的形式使用可以为其编译的 C 编译器:-p。

我真的不想在这里重新发明轮子,但我还需要在虚拟世界中运行数千个这样的设备,因此它们必须尽可能简单和快速。正如一个人已经提到的那样,我也不关心现实世界的问题,例如时间和公共汽车以及所有有趣的东西。我认为他们的虚拟时钟将仅限于非常慢的东西。最终我可能不得不研究原生编译以使它们运行得更快,但现在我只是将原型放在一起以获得一般的概念证明。

作为输入,我计划安装在圆柱体周围的距离、光线、材料和触摸传感器(16 个,可能是 32 个),然后只需 2 个用于定向输出的电机来控制每侧的一种轮子。本质上,处理不会太费力,世界将足够简单,以至于机器不必在简单的任务上投入大量的处理能力。

在内存方面,我希望他们能够存储足够的数据,以便在不干预构建地图和收集统计数据的情况下单独放置几天。我不喜欢 8bit 会因为处理或内存而减少它,但 16bit 肯定会是一个竞争者。32 位和 64 位只会推动它,而且它们的每个内存不可能超过 1mb - 可能更接近 256-512k。(比尔一说640k就足够了,我为什么不能!!)

0 投票
4 回答
1491 浏览

user-interface - 具有简单的基于 GUI 的编辑器的非开发人员的宏/脚本语言

我们希望让人们能够在他们的帐户中添加一些逻辑(例如,给定一些参数,如何计算特定结果)。因此,从本质上讲,这相当于编写支持条件和表达式的简单业务规则。然而,挑战在于为他们提供一个简单的在线编辑器,他们可以在其中通过完全可视化的方式(最好是拖放 Expr-tree 节点——有点像 Y!管道)来创建逻辑。

有人知道可以让人们这样做的脚本/宏/域特定语言吗?挑战在于可视化编辑器,因为我们不希望投资开发 UI 来进行编辑。基本要求是:
1. 嵌入到另一种语言中,或安全运行(否reboot -n<JUNK-DANGEROUS-COMMAND> >> ~/.bashrc
2. 无需编码背景的用户即可轻松访问(不需要任何高级功能)
3. 最好有一个简单的基于 GUI 的编辑器来创建逻辑非开发人员可以访问的程序(有点像电子表格)
4. 生成编译时警告(无效代码)的能力会很好(类型安全?)
5. 能够在执行前嵌入一些解​​释器可用的数据(例如., name, birthday, amount)

有人试过做这样的事情并有任何想法吗?我查看了 Lua、Io、Python、Ruby 和许多其他工具,但挑战本质上是我不认为非程序员能够理解这么多代码。如果可以轻松开发编辑器,可以通过“元编程”添加一些东西来表示 Ruby 也很好!

0 投票
2 回答
924 浏览

c - 如何在鞋子中使用嵌入式 c?(红宝石串行端口)

是否可以使用类似的东西:

带鞋?serialport.o 是编译为 ruby​​ 扩展的 c 代码。

当我尝试在鞋子中运行以下代码时,我看不到屏幕上的可见输出,并且鞋子在 OS X 上崩溃了。

谢谢

代码:

0 投票
4 回答
4896 浏览

c++ - 使用 Python 或其他嵌入式脚本语言部署应用程序

我正在考虑在一个用C++编写的爱好项目中使用 Python 作为嵌入式脚本语言。我不想依赖单独安装的 Python 发行版。Python 文档似乎对一般用法非常清楚,但我找不到明确的答案。

在我的应用程序中部署 Python 解释器 + 标准库是否可行?像 Lua、Javascript (Spidermonkey)、Ruby 等其他语言会更适合这种用途吗?

以下是我衡量不同语言的标准:

  • 对外部安装的包没有/很少依赖
  • 具有良好功能集的标准库
  • 好语言:)
  • 不会产生巨大的安装包

编辑:

我想问题应该是:如何使用我的程序安装程序部署我自己的python库+标准库,这样平台是否已经安装了python都没有关系?

编辑2:

再澄清一件事。我不需要有关链接 C 和 Python 代码的细节的信息。

0 投票
3 回答
4603 浏览

groovy - 如何设置嵌入式 Groovy 脚本类路径?

我正在尝试扩展一个 Eclipse 代码构建器(用于从 Hibernate VO 生成 DTO)——它使用 Groovy 作为其模板系统。

它用于创建 groovy 脚本的代码有点奇怪(不是我在 Groovy 文档中看到的),但它可以正常工作,主要是:

然后,稍后:

现在,这工作得很好,直到它引用一个不直接在项目中的对象。在脚本中,它遍历它正在处理的 Class 的属性——当它这样做时,Groovy 会查看所有方法,当它找不到某个方法参数的 Class 定义时,它就会出错。在这种情况下,当它发现任何对 Hibernate 的引用时,它就会死去,但我相信它会因为更多的东西而崩溃。它不需要对他们做任何事情,但如果不知道他们显然是什么,它就无法生存。

脚本似乎没有可以提供任何类路径信息的类加载器,所以我尝试将它提供给GroovyShell - 没有区别。

解决这个问题的正确方法是什么,以便 Groovy 解释器可以找到我的项目引用的 Jars?

0 投票
2 回答
323 浏览

python - Python 嵌入——如何从 C/C++ 中获取 if() 真值测试行为?

我正在尝试编写一个函数来返回给定 PyObject 的真值。此函数应返回与 if() 真值测试相同的值——空列表和字符串为 False,等等。我一直在查看 python/include 标头,但没有发现任何似乎这样做的东西。我最接近的是 PyObject_RichCompare() ,其中 True 作为第二个值,但是对于“1”== True 返回 False 。是否有一个方便的功能可以做到这一点,或者我必须针对一系列类型进行测试并为每种可能的类型进行特殊情况测试?if() 的内部实现是做什么的?

0 投票
2 回答
844 浏览

c++ - 为嵌入式分发构建 Python26.zip 的最简单方法是什么?

我使用 Python 作为现有 C++ 应用程序的插件脚本语言。我可以按照 Python 文档中的说明嵌入 Python 解释器。一切都在解释器的初始化和反初始化下成功运行。但是,我无法加载模块,因为我无法将标准库压缩到一个 zip 文件中(通常是 PythonXX.zip,对应于 python dll 的版本号)。

优化字节码编译后压缩所有标准库的最简单方法是什么?我正在寻找一个简单的脚本或命令来为我执行此操作,因为我真的不想手动执行此操作。

有任何想法吗?

谢谢!