游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4656|回复: 15

研究成果全部开源-欢迎参与

[复制链接]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-8-22 17:22:00 | 显示全部楼层 |阅读模式
------------------------------------------------------------
参与者您只需想想这种语言的design,而实现代码等我写,然后开源
------------------------------------------------------------

简述:

最近想研究一个东西,思路已经有了,具体的设计,为了效率,希望感兴趣的朋友能和我一起共同努力。
其类似于:宏,模板,XML,等,即,可自定义语义的语言。(XML虽好但不能作为编程语言用,宏和模板又不够用)具体概念需要例子才能说明。
研究目的:加快科研、软件等的开发效率,避免那些在用尽了OO之后仍然存在的“大量机械重复劳动”

注:

(1) 研究成果全部开源
(2) 这绝对不是再造车轮,因为我研究这个的目的正是避免再造车轮。所以,如果您认为现有的某些工具等,
涉及到了我的这个研究,不妨告诉我。

具体操作:

(1) 请联系 544262895, 最好注明“语言”
(2) 我会不断发布出我的思路,例子代码等,而在您的空余时间中,可以提出您的意见,以及您的希望、要求,
这样大家共同思考,比闭门造车强多了。
(3) 考虑到时间的宝贵性,这个研究在年底必须画句号,研究到什么程度就是什么程度,不继续深入了。
这里没有失败,成功的问题,而只有研究到什么深度的问题。

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-8-22 19:05:00 | 显示全部楼层

Re:研究成果全部开源-欢迎参与

汗……你都没说你是要做啥语言,做什么用的。

8

主题

15

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2008-8-22 23:13:00 | 显示全部楼层

Re:研究成果全部开源-欢迎参与

说了半天,在说些什么啊?!
碰到朱元璋早把你拉出去砍了~

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-8-29 14:27:00 | 显示全部楼层

Re:研究成果全部开源-欢迎参与

我说的是这个意思(注意: 一 部 分 是这个意思):
http://bbs.gameres.com/showthread.asp?threadid=116272
还请大家抽出宝贵时间帮忙投票啊,谢谢

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2008-8-30 21:20:00 | 显示全部楼层

Re:研究成果全部开源-欢迎参与

c++语言 好像有你需要的

避免再造车轮
宏,模板

帮自己的一段程序改名字也可做到“自定义语义”

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-8-31 15:45:00 | 显示全部楼层

Re: Re:研究成果全部开源-欢迎参与

windy2000: Re:研究成果全部开源-欢迎参与

c++语言 好像有你需要的

避免再造车轮
宏,模板

帮自己的一段程序改名字也可做到“自定义语义”


有些时候MACRO不够用。还有MACRO的语法有时候会令人敬而远之,比如:
DECL_CLASS_RTTI(CMyClass)
END_DECL_CLASS_RTTI

还有template operator虽然好,但是歧义也很烦。
我用尽C++特性封装了一个matrix类库,还是没有matlab方便,不然人家也不要混了。

如果编写程序“加工”C++代码,首先需要写C++语法解析器,我的天哪。。。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-16 15:52:00 | 显示全部楼层

Re:研究成果全部开源-欢迎参与

贴点我的草稿:

Applications use the methods of the IDirect3DDevice9 interface to perform DrawPrimitive-based rendering, create resources, work with system-level variables, adjust gamma ramp levels, work with palettes, and create shaders.


Applications-SUB
IDirect3DDevice9
interface-GEN-methods-TOOL
{
    DrawPrimitive-based rendering-OBJ perform,
    resources-OBJ create,
    system-level variables-WITH work,
    gamma ramp levels-OBJ adjust,
    palettes-WITH work,
    shaders-OBJ create,
};

applicationsは
IDirect3DDevice9で、
    DrawPrimitive-based renderingをperformし、
    resourcesをcreateし、
    system-level variablesに??してworkし,
    gamma ramp levelsをadjustし,
    palettesに??してworkし,
    shadersをcreateする。

アプリケ?ションは
IDirect3DDevice9で、
    DrawPrimitiveベ?スのレンダリングを?g行し、
    リソ?スを作成し、
    システムレベルの?涫???して作?Iし,
    ガンマ ランプ レベルを?整し,
    パレットに??して作?Iし,
    およびシェ?ダを作成する。

applications使用IDirect3DDevice9,执行以DrawPrimitive为基础的渲染,创建资源,对系统级变量操作,调整gamma ramp level,对调色板操作,以及创建shader。




func(arg1,arg2); /* math expression, C style */
obj->func(arg1,arg2); // math expression, C++ style

but:

verb(subject,object); /* sentense, C style -- (VSO) likes such as Filipino */
subject->verb(object); // sentense, C++ style -- (SVO) likes such as english

正常の文の??の?龊希

>日本?の文からは、??文が??でも、?で、文の各成分を考える?序の多くは、容易に判ることが普通だ。
 (しかし、?体修?、??象格、?鏊?⒌谰撙胜嗓?龊悉摔胜毪韧ㄓ盲筏胜?胜耄

>中国?の文からは、?で、主格と??象格と述?を考える?序を、容易に判ることが普通だ。
 (しかし、?体修?、?鏊?⒌谰撙胜伞ⅳ?瑜友}?な??文の?龊悉摔胜毪韧ㄓ盲筏胜?胜耄

とはいえ、(?し言?で)、??が整っていない?龊悉稀ⅳ嗓螭恃哉Zでも、容易に?の思考を判ることができるものだ!

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-17 16:35:00 | 显示全部楼层

Re:研究成果全部开源-欢迎参与

我简述一下我初步的设计(更多的细节实在很难想出来)

首先是 “可缩略的句子”,它被自动翻译为“正规句子”

比如 XXX { a , b, c } wo YYY 翻译为:
XXX a wo YYY;
XXX b wo YYY;
XXX c wo YYY;

如果没有歧义,花括号可以省略,比如:
{a, b, c }wo Do ru. 省略为:
a, b, c wo Do ru.

作为一个正规句子,可以定义句节(clause)

正规句子 ::= 句节 *
句节 ::= 独立词 ( 附属词 * )
独立词 ::= 普通名词 | 形式名词
附属词 ::= 助词 | 助动词
助词  ::= 一般助词 | 连体助词
助动词 ::= 一般助动词 | 连体助动词

以上这些东西的解析,是自动完成的

现在谈谈如何使用这种工具:

1 首先需要定义附属词,可以在GUI中定义,也可以存xml,也可以用专门的语法定义。
这里我不拘泥于语法,只要能看懂即可:

-------syntax定义文件-------------------------------

附属词定义
{
    "" : case_unk   // 未知的格
    "va" : case_var    // 助词va代表:变量格
    "ty" : case_type   // 助词ty代表:类型格
    "ga" : case_subject  // 助词ga代表:主格
    "wo" : case_object   // 助词wo代表:宾格
    "ni" : case_dest     // 助词ni代表:目的格
    连体 "no" : case_no  // 助词no代表:连体助词
};

助动词定义
{
    class 助动_verb   // 这里定义了一类助动词,具体可以有多个子类(词形变化)
    {
        可连体的 "ru" : 助动_verb     // 助词ru代表:动词/连体
    }
}

特殊名词定义
{
    "ret" : retval     // 独立词ret代表:返回值的形式名词
}

-------例子代码-------------------------------

S va string ty;
float ty {A, B, C } va;

A , B , C wo ToString ru ret wo S ni append ru;  // 花括号省略

// 也可以用日本语:

S ?涫 文字列 型;
浮?有∈? 型 { A, B, C } ?涫?

A、 B、 C を ToString る ?果 を S に append る; // 花括号省略


-------翻译成C++就是-------------------------------

string S;
float A, B, C;

void main()
{
    S.append( ToString(A) );
    S.append( ToString(B) );
    S.append( ToString(C) );
}

-------这个代码首先被翻译为-------------------------------

S va string ty;
A va float ty;
B va float ty;
C va float ty;
S ni A wo ToString ru ret wo append ru;
S ni B wo ToString ru ret wo append ru;
S ni C wo ToString ru ret wo append ru;

然后生成一张数据结构(不是tree!):

S       va
string  ty

A       va
float   ty

B       va
float   ty

C       va
float   ty

// 因为 ru 是可连体的助动词,所以复合句被自动解析出来,下同
{
    A       wo
    ToString     ru
}ret     wo
S       ni
append  ru

{
    B       wo
    ToString     ru
}ret     wo
S       ni
append  ru

{
    C       wo
    ToString     ru
}ret     wo
S       ni
append  ru

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-9-17 17:17:00 | 显示全部楼层

Re:研究成果全部开源-欢迎参与

汗……

建议你做中文编程器,这样E文不好的人也可以轻松写脚本

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-17 17:27:00 | 显示全部楼层

Re: Re:研究成果全部开源-欢迎参与

qrli: Re:研究成果全部开源-欢迎参与

汗……

建议你做中文编程器,这样E文不好的人也可以轻松写脚本


当然可以用中文!而且允许全角空格!而且是unicode.

-----------------

上面的一些细节,如你所见,由不足的地方,也有高的复杂了的地方。
(因为我不限制verb的位置,比如你可以写 SVO VSO ... )
---->有待继续思考!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 05:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表