Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 特定于域的语言,标准文件格式_Python_Xml_Json_Standards_Dsl - Fatal编程技术网

Python 特定于域的语言,标准文件格式

Python 特定于域的语言,标准文件格式,python,xml,json,standards,dsl,Python,Xml,Json,Standards,Dsl,XML是存储文档的良好文件格式:包含元数据的内容。JSON是存储数据的良好文件格式 是否有一个类似的文件格式标准,它擅长于编码操作?换句话说,是否有一种标准的文件格式适合于编码小型轻量级领域特定语言?我想到的是简单的DSL,它只由字符串数据和不超过12个简单命令组成。我的语言包括以非常简单的方式(没有条件或循环)一个接一个地调用命令 目前,我使用XML对一系列操作进行编码,其中每个标记表示不同的命令。SAX解析器将每个元素作为函数调用分派。这是很难看到的;只是感觉这不是一个优雅的解决方案 理想情

XML是存储文档的良好文件格式:包含元数据的内容。JSON是存储数据的良好文件格式

是否有一个类似的文件格式标准,它擅长于编码操作?换句话说,是否有一种标准的文件格式适合于编码小型轻量级领域特定语言?我想到的是简单的DSL,它只由字符串数据和不超过12个简单命令组成。我的语言包括以非常简单的方式(没有条件或循环)一个接一个地调用命令

目前,我使用XML对一系列操作进行编码,其中每个标记表示不同的命令。SAX解析器将每个元素作为函数调用分派。这是很难看到的;只是感觉这不是一个优雅的解决方案


理想情况下,我将使用python,而不是编写自己的解析器……试图从使用已建立的标准文件格式中获益。一个退路是使用python本身,但如果要找到一个与语言无关的标准,我当然更喜欢它。

如果XML可以做到这一点,但可读性是一个问题,那么它很可能是一个很好的应用案例。()


关于“XML角括号税”有一个很好的解释,如果XML可以做到这一点,但是可读性是一个问题,它很可能是一个很好的使用案例。()


<> P.> Q>框架的QML框架提供了一种替代的路径,通过扩展元素集来包含C++对象支持的自定义元素。Python绑定可与一起使用

尽管QML主要用于UI开发,但QML可以扩展为表示任意对象树

例如,这定义了一个新的QML元素(PieChart),然后在QML系统中注册并在QML语言中使用

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import *

class PieChart (QDeclarativeItem):
   ... 
PieChart已在QML系统中注册:

 qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart');
在(DSL)端,我们可以导入并使用PieChart:

import Charts 1.0
import Qt 4.7

Item {
    ...

    PieChart {
        id: aPieChart
        anchors.centerIn: parent
        width: 100; height: 100
        name: "A simple pie chart"
        color: "red"
    }
 ...

的QML框架提供了一种替代的路径,通过扩展元素集来包含由C++对象支持的自定义元素。Python绑定可与一起使用

尽管QML主要用于UI开发,但QML可以扩展为表示任意对象树

例如,这定义了一个新的QML元素(PieChart),然后在QML系统中注册并在QML语言中使用

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import *

class PieChart (QDeclarativeItem):
   ... 
PieChart已在QML系统中注册:

 qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart');
在(DSL)端,我们可以导入并使用PieChart:

import Charts 1.0
import Qt 4.7

Item {
    ...

    PieChart {
        id: aPieChart
        anchors.centerIn: parent
        width: 100; height: 100
        name: "A simple pie chart"
        color: "red"
    }
 ...

最后,我使用S表达式用Python实现了一个简单的解释器。解析器很容易在网上找到(大约半页代码),使用函数装饰器可以简化语言函数的实现。

最后,我用Python实现了一个简单的解释器,使用S表达式。解析器很容易在网上找到(大约半页代码),使用函数装饰器可以简化语言函数的实现。

文本文件怎么样?S表达式最接近DSL的潜在通用格式。我想我想知道为什么不能使用JSON?层次结构可以是包含字符串数据的命令。您能告诉我们如何在XML中使用它吗?使用一些非常基本的Lisp方言(使用宏!)的S表达式应该可以。基本上,您描述的是一种简单的脚本语言。有许多脚本语言可供选择,包括Python。如果你想让它更通用,我不明白你为什么不能只使用JSON列表,按照惯例,列表中的第一个元素是函数,列表中的其他元素是参数。文本文件怎么样?S表达式最接近DSL的潜在通用格式。我想我想知道为什么不能使用JSON?层次结构可以是包含字符串数据的命令。您能告诉我们如何在XML中使用它吗?使用一些非常基本的Lisp方言(使用宏!)的S表达式应该可以。基本上,您描述的是一种简单的脚本语言。有许多脚本语言可供选择,包括Python。如果你想让它更通用,我不明白为什么你不能只使用JSON列表,因为列表中的第一个元素是函数,列表中的其他元素是参数。是的,DSL的一部分实用功能是它应该很容易阅读和理解;亚姆会朝这个方向努力。这里的许多其他建议解决了编码问题,但并没有真正使语言更易于阅读。谢谢。是的,DSL的部分效用在于它应该非常容易阅读和理解;亚姆会朝这个方向努力。这里的许多其他建议解决了编码问题,但并没有真正使语言更易于阅读。谢谢