问题标签 [metalanguage]

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 投票
3 回答
206 浏览

javascript - Metalanaguage 从 MVC 描述模型以生成相同的客户端和服务器端代码

我正在寻找一种强大的元语言来描述我打算在离线模式(google-gears + javascript)和服务器端 sqlite +(php/ruby/java 等)下使用的应用程序的行为,并寻找一种好的格式来描述模型的行为可以很容易地转换为目标语言。我完全偏离轨道了吗,还有更好的方法吗?

0 投票
1 回答
347 浏览

business-logic - 跨不同编程语言共享通用业务逻辑的策略

拥有在 Visual Dataflex 中实现的具有复杂业务逻辑的单一业务应用程序,我们面临着跨编程语言维护业务逻辑的挑战,因为某些功能是用其他编程语言(主要是 .NET)编写的。

因此,我正在寻找跨不同编程语言实现“同步”业务逻辑的策略,以避免不匹配。避免重复是一个优点,但这可以通过自动化测试来弥补。

编辑:SOA 是一个很好的建议。但是那些服务不够快的情况呢?

编辑 2:对使用元语言有什么建议吗?

0 投票
3 回答
1510 浏览

php - 实现编译为 PHP 的元语言的最佳方法

一段时间以来,我一直在研究一种可以编译为 PHP 的元语言的规范 / kitchensink。现在我想开始构建这个东西。在我使用 PHP_Lexergenerator 和 PHP_Parsergenerator 实现微型 DSL 之前,它们运行良好,但我以前从未构建过这种规模的任何东西。如果您有任何反馈/建议/经验,我将不胜感激!

我将规范粘贴在http://pastebin.com/613mFGsB上。

0 投票
2 回答
115 浏览

perl - @result_list = grep { test($_) } @unfiltered_list 其他语言?

我喜欢 Perl 中的一个特性是受 LISP 启发的 (?) 能够使用简单的语法从事物列表中过滤内容

其中测试函数将应用于@unfiltered_list 的所有项目以生成@result_list。

这是否也存在于其他语言中?(PHP?Python?)否则,我怎么能轻易地通过这样的代码向非 Perlers(学生)暗示我的意思?

解决方案:filter在大多数语言中,如 wikipedia 上所见。谢谢你的提示,伙计们。

0 投票
2 回答
788 浏览

javascript - 用于定义 HTML 应用程序工作流的元语言

我正在寻找一种语言独立表达HTML 应用程序工作流程的方法。如果用户在表单中填写某些值,则应显示另一个表单。此外,如果填写了值,则应在此子表单中显示这些子表单的新部分。

我想表达 HTML 表单、这些表单中的 HTML 元素以及这些元素的值之间的关系。

基于数据库信息,如表字段和表关系,我通过 Doctrine 进行管理,生成 ExtJS 表单。

现在我必须在我的 ExtJS 表单中引入一些流逻辑,这样我就不会直接使用 ExtJS (JavaScript) 代码对应用程序流进行硬编码。

我想根据预定义的配置文件在运行时生成适当的 JavaScript 代码。

例如:

我有 X 表格

此外,如果用户在输入字段 中填写了某些内容,我只想显示部分表单

然后我只想在用户填写表单元素的值 通过预定义条件时显示表单

最后,我想根据用户在父表单中插入的值,为输入元素设置规则以限制其输入范围(可能的值)

这是一个示例工作流程

在此处输入图像描述

是否已经有一种元语言来定义这样的关系?

你会用什么方法来实现这样的事情?

问候,

J。

0 投票
2 回答
289 浏览

algorithm - 绘制用户定义的树

我正在制作一个非常抽象的树绘图系统,但是我在将它应该具有的所有绘图功能形式化时遇到了很多麻烦。如果有人能指出我要阅读的关于这个主题的东西,我将非常感激,因为不幸的是我的搜索是徒劳的。

我正在寻找/尝试制作一种用于显示树木的元语言。在这些树中,每个节点都是具有用户定义图形表示的用户定义对象的一个​​实例。

每个对象都与一个名称、一个图形表示相关联,并且具有有限数量的子代 (0+),这些子代仅知道是对象本身。不允许对象递归。每个对象可能具有用户定义的选项,用于触发将改变其图形表示的条件(以用户定义的方式)。一些选项是自动应用的,其他选项可能需要用户交互(“您希望这个对象是 A 还是 B?”),从而解释了为什么需要实例化对象树。

一旦对象树被实例化,就必须在没有任何成瘾的用户输入的情况下绘制它,这就是我遇到麻烦的地方。对象树的实例化为每个对象分配了一个特定的图形表示(我们称之为符号)。然而,该分配在实例化之前是未知的。不同的对象也可能具有相同的符号,根据对象的选项可能会以不同的方式绘制。

正因为如此,符号必须与对象分开定义,并且必须具有一系列抽象机制,以便能够按照用户指定的规则正确地绘制自己(和他们分配的孩子)。

每个符号由一个图像(或没有图像)加上有限数量的附件表示。附件是符号坐标的相对位置,它告诉绘图代码在哪里绘制对象子项的符号。它们中的每一个都可能具有特定的使用条件(例如,此附件只能由具有特定选项的符号使用,或者如果已经绘制了 N 个符号,则与已绘制的符号没有冲突等)。

该算法必须按照其优先级指定的顺序为每个对象的孩子找到一个免费的附件。如果无法找到子项的附件,则用户可以预先指定允许某些自动重试的规则,但如果它们也失败了,那么整个树的绘制就会失败。其中一些规则允许添加上瘾的子符号和/或将子符号分配给其他孩子(使他们成为 grandChildren)等。

我的主要问题是 Symbol 应该能够访问的变量数量非常多。我将再次提醒的每个符号应该使用这种元语言定义,应该能够访问其子符号的信息(而不是其他符号,以避免死锁和循环引用):例如,用户可能想要高度和宽度一个符号等于所有子符号的高度和宽度之和,或者使用相同的图片,等等。这也是由于用户独立于最终结构编写符号规则的事实造成的。

同时,由于必须从上到下绘制树,因此其中一些信息可能从一开始就无法获得,并且可能需要大量的回溯。

此外,由于所有这些都必须在我必须能够形式化和解析的元语言中定义,我必须定义元语言需要哪些功能以允许语言的最大自由度 -编写用户而不是过于复杂(这是一个模糊的限制,但本质上我不想让 Tikz 作为我的元语言的子集)。然而,我在识别它们时遇到了很多麻烦。

正如我之前所说,我正在寻找有关此类主题和/或完成此类项目的方法的信息。一旦我能够完全完成元语言,我认为我不会有太多麻烦来实现代码来完成所有这些,我的问题大部分是理论上的。

0 投票
1 回答
13230 浏览

list - 了解 ML 中的 foldl

我需要编写一个函数来获取字符串列表并在列表中找到最大的字符串。问题是它需要使用 List.foldl 遍历列表,并且不能使用递归调用,除了 List,foldl 的库函数中的调用。

我写

我的解释如下:

- 输入 xs,如果 xs 为空,则返回一个空字符串

- 否则对于 xs 的第一项调用 List.foldl

-List.foldl 传入一个匿名函数来检查 s 的长度,这应该表示针对列表头项的累加器。

-设置初始累加器为空字符串,初始比较值设置为高阶函数传入的初始列表的头部

但是,它不键入检查。

我认为我的问题在于对 List.foldl 函数本身的理解以及它如何准确地读取其参数。有人可以提供一些澄清吗?

0 投票
0 回答
191 浏览

bnf - 在计算机科学中(尤其是在使用 EBNF 的元语言中),符号 -> 和 <- 是否具有特定含义?

如果这不在 SO 的领域内,我深表歉意——它有点高级/理论。我正在研究自定义语言规范(如果您有兴趣,称为 ACELandic)。它基于扩展巴科斯-瑙尔形式(EBNF)。

我看到像这样的符号

这真的让我很困惑。这些是标准化的符号吗?我记得在 Haskell 中这样的东西,但我无法理解这一点。我感谢任何提示或建议。

在此处输入图像描述

0 投票
1 回答
167 浏览

c# - 通过代码生成向 C# 添加关键字?

我有一种特定于领域的语言,我想通过添加新关键字(或一些类似关键字的语法)与 C# 进行交互。使用属性是不够的(我不能在方法体中使用它们),并且将它硬塞进“有效”的 C# 符号中,然后编译成其他东西会很丑陋,并且会破坏与 DSL 的类比(以及类似 DSL 的翻译) C# 的符号很重要,所以每次只写 C# 是不可能的)。

我已经有办法解析 .cs 文件并将其转换为可以编译的合法、重要的 C# 代码。

问题是,即使我可以完成定义 DSL、解析它并将其翻译成有效的 C# 的所有工作,Visual Studio 也不会让我使用它不理解的符号;它只是添加了红色曲线,发出错误“无法解析符号”,然后经常无法正确解析之后的内容。

有没有办法强制 Visual Studio 在其分析中忽略特定字符串?我看过visual studio插件,但看起来,虽然我可以做语法突出显示和其他东西,但我不能强迫它忽略它不知道如何解析的东西(除非我错过了一些方法在扩展 API 中,这当然是可能的)。

我已经浏览了 Roslyn 的东西,也没有看到临时的方法来做到这一点。(同样,可能遗漏了一些东西,它似乎没有很好的文档。)

0 投票
1 回答
346 浏览

ide - 用于元语言编程的 IDE?

我最近开始学习元语言。有适合它的jetbrains IDE吗?如果没有,这是元语言编程的最佳 IDE。不必是开源的。谢谢。