精英盒子 -> 程序设计 -> 我要把Abreto的GPML发扬光大! [打印本页]

jybox 2012-06-07 14:41

我要把Abreto的GPML发扬光大!

如题

为GPML重写了一份语法参考,解决了Abreto设计上的诸多问题
ps.吐槽abreto两句,他之前的那个 分明是对C++的刻意翻译,没有充分利用XML的特征
不但语法(不够)蛋痛,技术上可行性也不大....



目前这个项目在技术上已经有可行性了....

语法参考:https://github.com/jybox/MyWorks/blob/master/GPML/REDEME.markdown

同时目前已经研制出了人肉编译器,在本帖直接回复小段、简单的C/C++/PHP/VB代码,即可收到经过翻译后的GPML代码

jybox 2012-06-07 14:59
好像还有没涵盖的部分:
等于、大于、小于、大于等于、小于等于、不等于运算符
位运算运算符
类的运算符重载
标准库(输入输出和数据结构).
自动类型转换
异常机制(如果有的话)

abreto 2012-06-07 15:14
printf("其實這樣..就有點繁瑣了..");

jybox 2012-06-07 15:20
abreto:printf("其實這樣..就有點繁瑣了.."); (2012-06-07 15:14) 

编译结果:

<?xml version="1.0" encoding="utf8"?>
<GPML>
  <function>
    <name>main<name>
    <body>
      <call>
        <function>printf</function>
        <params>
          <variable><string>其实这样..就有点繁琐了..<string></variable>
        </params>
      </call>
    </body>
  </function>
</GPML>

rockxh 2012-06-07 15:30
ab发明了一种编程语言?

jybox 2012-06-07 16:15
rockxh:ab发明了一种编程语言?[表情]  (2012-06-07 15:30) 

好久之前的事了,他策划一半就给坑了

现在被我捡起来了...

whtsky 2012-06-07 19:54
你就没考虑过XML的冗长带来的代码编写效率的问题?

whtsky 2012-06-07 19:55
rockxh:ab发明了一种编程语言?[表情]  (2012-06-07 15:30) 

扯一个编程语言其实不难,比如这里就有一个:https://github.com/whtsky/facemotion

有着完整可用的解释器,不过没文档- -

jybox 2012-06-07 20:08
whtsky:扯一个编程语言其实不难,比如这里就有一个:https://github.com/whtsky/facemotion
有着完整可用的解释器,不过没文档- - (2012-06-07 19:55) 

没觉得你这个比GPML强多少....

GPML有个特点就是,因为数据非常规则(代价就是大量的冗余),配合一个好的IDE,完全可以实现全GUI编程....可以把if while之类的语句当成控件拖...

whtsky 2012-06-07 20:51
jybox:没觉得你这个比GPML强多少....
GPML有个特点就是,因为数据非常规则(代价就是大量的冗余),配合一个好的IDE,完全可以实现全GUI编程....可以把if while之类的语句当成控件拖... (2012-06-07 20:08) 

代码短小,有解释器。
另外,说到你的“优点”,http://code.google.com/p/google-blockly/

jybox 2012-06-07 21:27
whtsky:代码短小,有解释器。
另外,说到你的“优点”,http://code.google.com/p/google-blockly/ (2012-06-07 20:51) 

很好...

pdl 2012-06-08 23:17
以前空想了一种基于xml的语言,但是普遍采用属性。。
大概是<var type="int" name="i" />
<printf format="%d"><value>i</value></printf>
<array type="int" name="a" len="5">
<int data="0" />
<int data="1" />
<int data="2" />
<int data="3" />
<int data="4" />
<int data="5" />
</array>
=============
<xxx>
<fun>
<main>
</main>
</fun>
</xxx>
不过仅限于空想

jybox 2012-06-09 00:02
pdl:以前空想了一种基于xml的语言,但是普遍采用属性。。
大概是<var type="int" name="i" />
<printf format="%d"><value>i</value></printf>
<array type="int" name="a .. (2012-06-08 23:17) 

我也考虑过,但是这样很多操作没法嵌套地表示,所以我决定不用xml的属性

例如上面你的<printf format="%d"><value>i</value></printf>
如果我要给format传递一个变量呢,你后面都用<value>i</value>表示变量了....为了保持一致
你这里就得<printf format="<value>i</value>">..
这样很显然不行...



oran 2012-06-10 18:56
乃们把我无视了

pdl 2012-06-10 19:03
说实话,此语言只能yy,因为xml读取是不按顺序的。。。
可能用二叉树或者其他什么的数据结构,很麻烦

jybox 2012-06-10 22:09
pdl:说实话,此语言只能yy,因为xml读取是不按顺序的。。。
可能用二叉树或者其他什么的数据结构,很麻烦 (2012-06-10 19:03) 

查了一些资料,在XML标准中,确实没有规定元素区分顺序的(但也没规定区分顺序)

但是现有的绝大部分XML解释器都是对元素区分顺序的,而且很多基于XML的技术也要求区分元素顺序,比如SVG、XHTML等等

所以在W3C后来发布的XML Infomation Set中,W3C规定了元素的有顺序的
XML Infomation Set可以理解为是对XML表示数据的方法的进一步约定

所以在这个语言中,要求区分元素顺序,并没有不妥

幻の上帝 2012-06-14 13:38
SGML系的反人类语法有什么好玩的……




Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.054319 second(s),query:5 Gzip enabled