Syntax 开发语言i'的语法;我在考虑设计 我想设计一种类似于QBasic的语法,但更简单,这样一个新的程序员可以学习一些编程,而不必被C、C++或C等东西所挫败。例如,使用 Write "Hello World"

Syntax 开发语言i'的语法;我在考虑设计 我想设计一种类似于QBasic的语法,但更简单,这样一个新的程序员可以学习一些编程,而不必被C、C++或C等东西所挫败。例如,使用 Write "Hello World",syntax,programming-languages,qbasic,Syntax,Programming Languages,Qbasic,而不是 PRINT "Hello World" 或 而不是 INPUT "Enter you name" name$ 我正在寻找更多关于我的语法的建议。任何事情都将不胜感激。谢谢 假设您已经研究过其他现有的语言,并发现它们需要。。。好的,我很抱歉,但是你想设计自己的语言,这是一个非常复杂的问题。定义良好(并得到支持)的语言,例如,(我个人最喜欢的语言)和(我3岁的孩子喜欢这种语言)都非常容易掌握 假设你正在进行这件事,然后看看并考虑购买Martin Fowler(没有附属链接)。 编辑以包含

而不是

PRINT "Hello World"

而不是

INPUT "Enter you name" name$

我正在寻找更多关于我的语法的建议。任何事情都将不胜感激。谢谢

假设您已经研究过其他现有的语言,并发现它们需要。。。好的,我很抱歉,但是你想设计自己的语言,这是一个非常复杂的问题。定义良好(并得到支持)的语言,例如,(我个人最喜欢的语言)和(我3岁的孩子喜欢这种语言)都非常容易掌握

假设你正在进行这件事,然后看看并考虑购买Martin Fowler(没有附属链接)。 编辑以包含语法示例:

BBC基本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
标志:

划痕:

你真的需要看看可视化编辑器


Read=name
看起来很像是将
name
的值赋给
Read
,尽管我认为这实际上会起到相反的作用。这对我来说似乎很不直观。我的建议是
name=Read()
。也就是说,
Read
是一个函数,它读取并返回字符串,
FunctionName()
调用一个没有参数的函数,
variableName=expression
计算
expression
并将结果赋给变量
variableName
。我知道这有点无聊,因为大多数语言都是这样做的,但我真的认为这是最不容易混淆的方法。我看不出
打印
好多少。两者都需要一点解释,而且只需要一点
name=Read
是一种可能的方法(参见SNOBOL),但我真的不认为它比
INPUT
简单,或者比
cout>name简单得多。大多数现代语言都设计得很好,编写简单的程序与其说是语言问题,不如说是编程问题。也许有一个更简单的解决方案,在过去的五六十年里我们一直没有找到,但是简单地让qbasic对你来说可能更直观,不是吗。有些人不习惯
cin@RCProgramming:negative的问题是有些事情不能做,或者不应该做,或者根本不值得付出努力。这正是我在学了很多基础知识后尝试过的事情。这在当时是毫无意义的,除非你有一些我没有看到的想法,否则现在是毫无意义的。我真的很怀疑,在全世界的善意和帮助下,你会想出任何明显优于Python或Scheme的东西——除非你想出了一个好主意,而且你不会通过要求一个就得到一个。你能给我这3种语言的示例代码吗?Thanks@RCProgramming:谷歌是你的朋友,我想…:-)@RCP编程根据请求进行编辑谢谢。我认为它的标志是一个图形唯一的语言?BBC basic和其他的有什么不同。hello world会是什么样子?@RCProgramming您现在需要进行自己的研究。遵循我提供的链接,在编写解析器之前,花大量时间思考您的语言。
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