python高级语言特长_用python实现简易伪编程语言[没有技术含量]

Python:

一款简单,实用,的编程语言

用Python来实现一门简单的编程语言(其实也不算是编程语言啦),过程非常的简单哦

那么,第一步~:赋值 and 输出

提示:作者是小白一只,不是很熟练,勿喷QwQ,第一次闲得无聊写知乎qwq

我们先来看看我们想要实现的语法:[咱选了一个很奇怪的语法,如果以后有机会,会去试试普通的高级语言的语法的qwq]

push a 1

put a

push指令呢,是用来向虚拟栈内压入一个值的,他的语法可以这样写:

push [变量名] [值:字符串/数字/布尔值]

而put指令,可以像print()函数一样输出一个变量,或者字符串

但是呢,一门语言肯定不止赋值输出吧?,所以我们需要扩展他的功能~

第二步,运算[加,减,乘,除,乘方]功能指令格式

加法addadd [变量a] [变量b] [存放结果的变量]

减法minus……

乘法time……

除法div……

乘法power……

他们的格式相同,都是 op[操作指令] [目标1] [目标2] [结果]

例如:

add a b

意思是把a和b加起来,结果放进c变量里

是不是很简单呀~?

第三步:我们好像需要一些比较变量的操作?

咱们应该去实现一个比较大小的指令,功能指令格式

判断a是否小于bless a b cless 比较值1 比较值2 结果变量

判断a是否等于bequal a b c……

判断a是否大于bgreater a b c

[谷歌翻译得来的这个greater]……

比如说呢~a是1,b是2。那么:less a b c,b比a大,所以判断后就是……(咱去运行一下看看的),

push a 1

push b 2

less a b c

put c

运行为:True

所以a比b小是true,那么目标c的值就是true啦

是不是感觉,就这?

对的,就这xwx[咳咳……]

我们是不是也需要一些分支语句呀?类似于if什么的?

对的!当然需要啦:

if a

嗯哼,你没看错,直接if a?!,怎么用啊?:是这样的:如果a是True,那么就执行下一行指令,如果是False,就跳过下一行指令,(草……好低级啊)

突然想起,一般这种低级的语法,都会有个jump指令的(也就是goto),那么咱们也要!

咱们的jump支持直接输入数字或者一个变量

jump a

jump 5[这个是行数]

美名其曰:跳转指令(咳咳咳)

最后!咱们需要一个能代表编程语言的高级功能,面向过程!

我们创造了两条指令,call和ret

先说说这几条指令的功能吧,

我们可以使用:过程名 + 冒号来开启一段过程

main:

...

...

...

ret

来定义一个过程名字叫做main的,ret是返回程序跳转前的行数,简单地说就是ret结束一个过程,如果遇到了call main 就会跳转到main里面,直到运行至ret才返回call的后面继续执貌似讲的不太好懂xwx']

没事,咱们来看看具体的运行就明白了:

put "1"

main:

put "2"

ret

put "3"

call main

put "4"

看看运行结果啦

结果是先输出了1,3,再进入了过程main,输出了2,最后离开过程(ret),继续执行了输出4

嗯~符合预期嘛

最后咱们只需要再完善一下其他的杂七杂八的指令就好,都很简单的

READ ,exit,nop(这个是没什么用的,占位咯)

RADE

exit

nop

READ规定只能放在第一行,可以用来输出源代码

exit是直接结束程序

nop就是……没什么用其实xwx

好啦~到此为止,你已经初步完成了这门伪语言的语法部分了,具体怎么实现,可以阅读咱下一篇

---作者 心空,编程小白,不喜勿喷qwq,如果有兴趣,可以私下跟咱聊聊天的

有疑问或者想法的,可以加咱QQ:3597974497,或者邮箱@http://qq.com

下篇见啦~ Time:2021 2 10 [没错,就是在过年前一天晚上突然奇想做的]

谢谢每一位阅读的小伙伴,你们的阅读是作者前进的动力

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值