我正在考虑设计一种在语法上类似于 qbasic 但更简单的语言,以便新程序员可以学习一些编程,而不会因 C、C++ 或 C# 之类的东西而气馁。例如,使用
Write "Hello World"
代替
PRINT "Hello World"
或者
In "Enter your name"
Read = name
代替
INPUT "Enter you name" name$
我正在寻找有关我的语法的更多建议。任何事情都会非常感激。谢谢!
我正在考虑设计一种在语法上类似于 qbasic 但更简单的语言,以便新程序员可以学习一些编程,而不会因 C、C++ 或 C# 之类的东西而气馁。例如,使用
Write "Hello World"
代替
PRINT "Hello World"
或者
In "Enter your name"
Read = name
代替
INPUT "Enter you name" name$
我正在寻找有关我的语法的更多建议。任何事情都会非常感激。谢谢!
假设您已经查看了其他预先存在的语言并发现它们想要......好吧,对不起,但是您想要设计自己的语言,从而进入了一个非常复杂的主题。定义明确(且受支持)的语言,如Logo、BBC BASIC(我个人最喜欢的)和(我 3 岁的孩子喜欢这个)Scratch都非常容易上手。
假设您要继续进行此操作,请查看Domain Specific Languages并考虑购买著名的 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
标识:
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
刮:
你需要真正看到可视化编辑器