写在前面
这里是Ozelot。一个正在学习编程,希望和各位大佬一起交流学习的大学生。这是我关于编程语言Cesno的设计方案,欢迎大家评论交流!
提示: 最终设计尚未决定,可能还有很多设计上的不足需要优化,故内容可能会发生变动。因为没法不加标签,我不得不打了“程序员”标签。希望没有给大家造成困扰。
注意: 因为Cesno并未制作完成,这里只记录Cesno的语法规范。正因如此,代码部分的高亮可能不能保证每一次都正确显示。如果影响了阅读,我感到十分抱歉!
基本语法结构
这一部分包含了Cesno的基本语法结构。它被设计成让开发者更好理解Cesno,并快速进行语法的掌握。
语句
一个Cesno语句由语句体和一个附在结尾的分号组成。像这样:
int a = 10;
这句话是对变量的声明。其中,语句体中的内容代表了“声明a为整数形变量,并接收了10作为值”,而分号则标记了这句话的终止。关于“声明”的更多内容将会出现在“Cesno 变量”。
Cesno通过分号,而不是换行来结束一个语句。所以,编程人员可以适当地加入空行,使得代码更具有可读性。比如,这样书写
var x = 1 + 2 + 3;
等价于
var x = 1 + 2
+ 3;
或是在其它空白处插入换行的版本。换行可以被Cesno视作空格(其实缩进多数情况下也由空格组成)。不应当在一个词、数字、超过一个字的操作符或是其他不包含空格的“东西”中换行,尽管这听起来可能显而易见。
定义
一个Cesno定义由定义起始关键字(这些特殊的关键字通常简称为定义字)及之后的定义体组成。通常,定义不需要通过分号来表示结束,至少Cesno已经含有的定义不会这样。
如下是一个函数的定义:
function void greetings(string name)
{
print("Hello", name);
}
它由标示着函数定义起始的关键字function
,函数的返回值void
,函数名greetings
,函数参数列表(string name)
以及函数体{ print("Hello", name); }
组成。其中,除了function
是定义字以外,其余的均为定义体。
这是一个类的定义:
class Test
{
public int member;
}
它接收一个类名Test
,一个类的体。class
是定义字,其后都是定义体。
Cesno被设计成对用户友好的: 它允许用户自定义属于自己的声明。值得注意的是,因为定义字同样是类型,为防止和声明产生混淆,Cesno的定义不建议采用等号。
基本代码结构
Cesno是面向对象的,但不像Java需要为每一份代码创造一个公共类。如下是Cesno可以识别的几种代码结构。
通常结构
void main()
{
print("Hello world!");
}
这是一个依照通常结构书写的标准Cesno程序,它将会输出"Hello world!"。这里将不会讨论太多关于主函数的返回值类型的事情。大部分时候,主函数返回类型设成void
即可。当然,Cesno也不靠返回值类型识别主函数。
简单结构
一个最简单的Cesno程序可能看起来像这样:
print("Hello world!");
如果不需要复杂的代码结构时,用户可以将Cesno代码当作Python或是其他脚本语言一样编写。编译时,用户的这些代码将会被转换成通常结构。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。