/zlang

自制编程语言

Primary LanguageC

简介

Zero是用于Zos操作系统的编程语言, 它的特点是基于C语言,多引入数学,语文,操作系统的概念,以替换编程语言自己的概念 因此简约又和谐,没有太多自造概念,从来都没有一门特别和谐的语言, 而且我只能做很少的部分,它不是完备的,但是简约而清晰的,至少比C语言要好 贴近内存概念,就是如此

语法

基本语法

按照回车分割语句,如果多条语句在一行,用逗号分割,如果需要多行,则需要在特定的地方断开才行 分割方式跟js一样 不行,比较难做,只能分号了

a<=1
b<=a
c<=3, d<=c

注释

注释放到中括号里,可以放到代码的任何地方

[这是一条注释]

或者仅仅有一个左中括号也可以,但无法换行了

[这是一条行内注释

变量

变量有三种基本数据类型,分别是整型,字符串,浮点型

a: 1
a: Int
b: ''
b: String
c: 0.3
c: Float

变量必须先声明才能赋值

操作符

声明运算符

声明运算符为冒号“:”,用来声明变量与函数,变量与函数必须先声明才能赋值或使用

a: 1 [变量a声明值为1且为整型]
b: a [变量b声明为a的值和类型]
b <= 3 [变量必须先声明才能赋值]

赋值运算符

<=或=>或<=>为仅仅赋值,不转换类型,如果类型不同会报错

a<=b [把b的值赋给a]
a=>b [把a的值赋给b]
a<=>b [a与b的值相互交换]

算数运算符

/

逻辑运算符

<

<

/ =

是不等于

数列

数列用花括号表示,选择其中一个元素用\符号,索引从1开始

arr: {1, 2, 3}
b: arr\1

函数

函数示例如下:

add(a, b):(.<=a+b)
c <= add(1, 2)

不同于其他语言的return,这里是会一直向下执行的

条件语句

条件语句示例如下:

if(a>b, (.<=a), (.<=b))            [那这个名字算什么?但名字是不行的,别说有if,还有大写类]

循环语句

循环语句示例如下:

while(a>b, (a<=a-1))

类实际上也是一个函数,当函数返回自己时,即返回了一个类实例

cls(a:0, b:0):(c:a+b, .<=cls) [这样感觉都有点辩证了,对,这样也是内存原理的]
d: cls(1,2)

类属性可以这样使用

cls(a:0, b:0):(
  c:0
  d: .\c
  e: .\a+.\b
  f: a+b
)

a<=b() a<=b 这样是传递值还是传递引用?基本变量传递值,复杂变量传递引用,跟大多数编程语言一样 字符串是基础变量吗?基础变量的定义是什么?

  1. 不会嵌套其他变量
  2. 有固定大小
  3. 数组不是,那么字符串同样不是
  4. int4字节,float4字节,char1字节

那么函数返回值怎么说?用return吗?还是new一个? return new(.) 函数在声明后,就必然会有它的位置,可以使用它的变量 func(...)<=new(.) 而且就停止执行了,这个是代码执行的问题