为我正在考虑设计的语言开发语法

时间:2010-11-04 21:06:11

标签: syntax programming-languages qbasic

我正在考虑在语法中设计类似于qbasic的语言,但更简单,以便新程序员可以学习一些编程,而不会被C,C ++或C#之类的东西所挫败。例如,使用

Write "Hello World"

而不是

PRINT "Hello World"

In "Enter your name" 
Read = name

而不是

INPUT "Enter you name" name$

我正在寻找有关语法的更多建议。任何事都会非常感激。谢谢!

1 个答案:

答案 0 :(得分:1)

假设您已经查看了其他预先存在的语言并发现他们想要......好吧,我很抱歉,但是您想要设计自己的语言,从而陷入了一个非常复杂的主题。定义良好(和支持)的语言,例如LogoBBC BASIC(我个人最喜欢的)和(我3岁的孩子喜欢这个)Scratch都很容易上手。

假设您正在进行此操作,请查看Domain Specific Languages并考虑由着名的Martin Fowler等人购买the book of the same title(无会员链接)。

已修改为包含语法示例:

BBC Basic RSS提要阅读器

INSTALL @lib$+"XMLLIB"

      url$ = "http://feeds.bbc.co.uk/weather/feeds/rss/5day/id/2688.xml"
      XMLfile$ = @tmp$+"temp.xml"
      PROCurldownload(url$, XMLfile$)

      PROC_initXML(xml{}, XMLfile$)
      rss% = FN_skipTo(xml{}, "rss", 0)
      IF rss% THEN
        channel% = FN_skipTo(xml{}, "channel", rss%)
        IF channel% THEN
          IF FN_skipTo(xml{}, "title", channel%) THEN
            PRINT FN_repEnt(FN_nextToken(xml{}))
          ENDIF
          WHILE FN_skipTo(xml{}, "item", channel%)
            item% = FN_getLevel(xml{})
            IF FN_skipTo(xml{}, "title", item%) THEN
              PRINT 'FN_repEnt(FN_nextToken(xml{}))
            ENDIF
          ENDWHILE
        ENDIF
      ENDIF
      PROC_exitXML(xml{})
      END

标志:

FD 20    ; drawing a line and moving
PENUP    ; lifting the pen so it will not draw anything
FD 20    ; moving but not drawing
PENDOWN  ; lowering the pen so it draws again
FD 20    ; drawing a line and moving
PENUP    ; lifting the pen so it will not draw anything
FD 40    ; moving but not drawing
PENDOWN  ; lowering the pen so it draws again
RT 20    ; rotating right (clockwise) 20 degrees

划痕:

你需要真正看到可视化编辑器

alt text