自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

做一个汇编语言

acc,power,state,data,pc,sp,cy,ac,0v,p,tcon,tmod

  • 博客(189)
  • 资源 (41)
  • 问答 (4)
  • 收藏
  • 关注

原创 【通过Browser理解Token】【1】搜索引擎

前言不需要获得什么,只是无聊才买了这本书《自制搜索引擎》。书挺薄,按我的经验来说应该学不到太多的东西。前几个月,公众号码农翻身发了漫画《Google偷了张大胖的算法》,里面有讲搜索的原理,简单说明就是对每个网页中的关键字与句子扣出来,要记住关键字之间的间距和顺序。然后根据不同网页中的链接...

2021-05-07 07:06:29 7

原创 [VHDL] 案例模板——就算忘了也要把知识塞入大脑

前言刚刚看到群里有人问要VHDL模板,我都快忘了这事了,VHDL的语法再不记下来就忘了。趁现在还有印象,复习一下几个FPGA实验中写的VHDL代码。简单还是复杂,这要看受众了。文章目标人群就是忘了或者完全的不会的人,让你马上可以使用起来VHDL。这个语言我并不喜欢,太死板了。在了解Verilog前我还对Verilog有所期望,但是那个语言的设计也是一坨屎。设计一些非人 性的东西,考虑了特别多的问题但是语言变得很难用。简短了解一下注释--和lua和SQL一样。用两个连续的减号程序结构libr

2021-04-29 01:18:36 47

原创 [shenzhen io] 通过信号的种类控制蜂鸣器 buzzer 的行为

界面左边的是信号发生器,这题只用到了rx接口,这个接口是XBUS数据类型的,只能用x0,x1,x2,x3这种XBUS接口才能接。右边的蜂鸣器buzzer并不是通电就能响,需要反复输出时钟才能让它响起来。XBUS总线数据从-999到999,接通XBUS需要等待数据的到来slx x0 #等待x0数据,程序一直卡着Simple IO引脚数据从0到100要求RX输入不是时钟,连的是信号发生器buzzer是simple io类型的引脚,连接一个(假的)蜂鸣器当数据包从信

2021-04-20 08:29:10 25 1

原创 【py 包】避免过长的调用

一个python包 feedback 里,有__init__.pypid.pyadv.py而, pid.py 和 adv.py 中都有pid函数,adv函数如果想调用时,像下面这么用的话import feedbackfeedback.pid()就需要在 __init__.py 中这样写from feedback.pid import pidfrom feedback.adv import adv包内文件如何导入模块#adv.pyfrom feedback import

2021-04-19 01:05:41 21

原创 【py spider】读取代理ip文件的几个函数 | 代理ip获取 | TXT

代理ip的时候有三种方式买到一批代理ip号后,利用卖者网站给的id访问卖者网站,返回一个ip号卖家网站发一个TXT文件,放一批ip号下载卖家的软件,会更改本地的ip我使用的是第二种,黑洞ip的import requestsimport osimport random# 全局ip池ips = []# 当前代理current_proxy = ''def ips_init(): # 读取ip代理 global ips ips = [] f

2021-04-14 22:24:03 39

原创 【C语言】 熬夜制作了一个特别轻便的信号与槽(一对多,多对一,信号可传递参数)

前言曾经,我以为QT的信号与槽机制,仅仅只是个函数指针而已。但是,不对。函数指针是一对一的!一个函数指针实例 对应 一个函数调用。这显然没有封装的意义,把函数调用换成信号发射,还是一对一的#define emit //空内容的宏 //发射信号 emit clicked()需求如果一个信号能执行多个函数,多个信号能执行一个函数,多个信号也能执行多个函数——注意,每个函数都能被一个信号执行,如果连接的话。不需要多个信号都发射,才执行对应的槽函数!这该如何实现呢?  \;  \;  

2021-04-14 04:07:36 183

原创 百度静态网页文件 baidu.html(测试用)

<!DOCTYPE html><html> <head> <meta content="text/html;charset=utf-8" http-equiv="content-type" /> <meta content="IE=Edge" http-equiv="X-UA-Compatible" /> <meta content="always" name="referrer" .

2021-04-02 08:09:51 23

原创 【LogiSim】便利的仿真软件,有了这个我又对硬件有了兴趣~

前言做一个计数器,使用四个74160和门来做四位十进制计数器,原理什么的不用管了,第一次就先练练使用LogiSim,感受一下它是多么的舒服和便捷。软件资源和参考文章来源:你可能没用过这个电路仿真软件(logisim)软件界面导入别的库 xx.circ 和 xx.jar 文件工程Project => 加载库Load library => LogiSim库 或者 Jar库语言在偏好设置Preference中修改模块新建的电路在main中,想要添加嵌入的子电路方法是工程 =&g

2021-04-01 21:59:08 127

原创 【zhangqi-lang】【13】重学编译原理!新语言大改版!

重学编译原理在进行语法分析时,越来越感觉自己的编写的代码都是垃圾,没有复用的过程来处理不同但是类似的语法。之前还想《编译原理》我学过的啦,学到FOLLOW左右就没有学啦,反正写的时候也不用啦。都是自己太年轻,说些胡话。打脸还是自己来打!语法分析时,一直以为用LL就行,但是按照ruby设计的循环,就需要规约才行!(1..20:2)->each |i|: print(i)end语法分析的方法有LR分析法,特别复杂,去年我还没学到这就放弃了,毕竟疫情虽然在家,但是课还是很多的,虽然都是垃圾

2021-03-20 14:32:05 138 2

原创 【zhangqi-lang】【12】解析了函数

函数设计/* export function say(str:string,a,b,c,...) -> bool: print('hello,world') return false end let a = function(a:int,b,c:float) -> string: print('hello') if b : return 'true' 'end return 'demllie' end */ class Func_Node : public

2021-02-19 22:49:02 32 1

原创 再谈编程语言设计和实现

...

2021-02-13 15:31:48 2023 6

原创 【zhangqi-lang】【11】解决了数字状态机的BUG,设计了Range,解析了循环

Lexer错误数字状态机有错误,浮点数有小数点,但是操作符点点和点点点也有,当数后面有点点或点点点时,第一个点会被数字状态机吸收!修改后 /*------------------------------数字状态机----------------------------------*/ if (flag_syn == 0 || flag_syn == 2 || flag_syn == 4) { if (c <= '9' && c >= '0') {

2021-02-13 11:36:12 101

原创 【zhangqi-lang】【10】修改了Node类设计,解析了if,elif,else

前言Node设计修改的部分 typedef enum { BodyType_NORMAL, BodyType_BEGIN, BodyType_END, BodyType_ELSE }BodyType; class Body_Node : public Node{ protected: vector<Node*> body; BodyType t; public: Body_Node() { t = BodyType_NORMAL; } Body

2021-02-10 23:40:31 37

原创 【zhangqi-lang】【9】文法设计

zhangqi-lang文法program := chuck{,chuck}chuck := block|statmentstatement := ( vardef_stat | assign_expr | expression | funccall_stat | return_stat ) endstat

2021-02-05 22:55:08 120 1

原创 【zhangqi-lang】【8】添加优先级,允许多个not或者多个!相连

优先级(由低到高)orand xor xnor nand nornot< > <= >= == (值等于) ~=(值不等于) ===(类型和值都等于) ~ ==(类型和值都不等于) <=>(比较)+ -* / % %%^& | ! << >> <<< >>>factor函数声明 //1. Node* expr_logic_or(); Node* expr_

2021-02-04 11:30:20 57

原创 【zhangqi-lang】【7】运算符消除左递归写法,将关键字并入token,重新设计Node

之前项目中的Parser没用了,现在改了Node设计,之前关于Node的AST构造都变成垃圾了(其实本来就是,,,,就是因为太差所以好久没碰了)——修改后的Node简单多了,之前Add,Sub这种都分两个类,其实区别只有一个符号而已,差别太小、功能相似的应该放在一个类里!!!

2021-02-04 09:08:00 42

原创 【zhangqi-lang】【6】四则运算新的解析方法

原来如此比之前的解析方法好多了,之前还需要先用temp保存当前token判断一下temp是不是运算符next()右边迭代返回右值判断temp运算符类型,分类型进行计算移动temp到当前token,返回第二步  \;  \;下面的解析方法是先判断当前token,进入各情况next()用传入的参数——左值与迭代返回的右值进行计算并返回#include <iostream>#include <istream>using namespace std;

2021-01-29 21:53:29 40

原创 【zhangqi-lang】【5】变量定义let\var\const ——后面删掉了var,增加了static

Parser.cpp ... const char* keyW[] = { "import","from","as","if","elif","else","end","in", "function","def","while","do","until","return","break","next","exit", "redo","reloop","reboot","True","False","Nil","NaN","Inf","Undefined", "local","switch"

2021-01-27 21:48:45 129

原创 【zhangqi-lang】【4】扫描两遍,把AST构造从Lexer中分离出来 + 制作变量池

变量和变量池 /*---------------------------数据类型定义------------------------------*/ /* Id标识符,包括var变量,kw关键字 var变量包括num数,function函数\enum枚举,type原型等 */ //所有的数据类型 typedef enum { // _t在后表示类型 NONE_t, //基本数据类型 INT_t, //整数 NUM_t, //浮点数 COMP

2021-01-26 23:11:17 29

原创 【PyQT5】自定义信号——pyqt比qt更好用

前言先下载好sip,pyqt5,pyqt5-tools,准备好QT designer,PyUIC两个工具QT Designer新建项目后,建一个.py文件,打开外部工具QT Designer,创建为QWidget窗口,保存了另一个名称的.ui文件,名称不能与前面的.py文件一样。设计好窗口后,保存,使用外部工具PyUIC(点一下就可以),然后会生成一个.py文件。每次修改后都要使用PyUIC更新一下这个.py文件!自定义信号注意定义好信号后,connect时会显示pyqtSignal

2021-01-19 10:41:20 211 1

原创 github repository仓库提交,还是不熟悉

安装git就不说了Git下载、安装与环境配置进入git,cd进入自己想上传的文件的目录内。在github上新建一个仓库repository,然后在git内使用git init把空的仓库拿下来,如果你这么做了的话,后面就要进入空的仓库目录下,把文件又复制进去,所以下面这一步是不需要的!!!git clone https://github.com/Demllie/Zhangqi-lang添加所有文件git add .第一次提交到mastergit commit -m "first co

2021-01-17 10:56:35 20

原创 解决了pip安装到别的python版本上的问题

Scripts文件下有pip.,比如我装的python3.7下有pip.exepip3.exepip3.7.exe除了pip3.7其他两个pip都删除,然后把pip3.7.exe改成pip.exe为了避免后面可能的问题,我就加个后缀留着没删除。

2021-01-16 12:57:14 92

原创 【Demllie C++ Design Pattern】Visitor Pattern Learning

需求在传递不同类的时候,需要做不同的工作,一般我有以下几个方法1.枚举缺点就是要做一个很大的枚举,还写一个没什么用的函数! ////用来替代typeid,进行类类型判断 enum SuatinCmdClassType{ SuatinCmdClassType_Cmd, SuatinCmdClassType_SingleCmd, SuatinCmdClassType_BlockCmd, SuatinCmdClassType_CondCmd, SuatinCmdClassType_I

2021-01-16 08:57:17 32

原创 【Demllie C++ Design Pattern】Singleton Pattern Learning

需求用在多线程中,保证实例的唯一性。代码#include <iostream>#include<thread>using namespace std;class Singleton {public: //单例模式不允许拷贝构造函数 Singleton(Singleton& ) = delete; //不允许重载等号 void operator=(const Singleton& ) = delete; static Singleton

2021-01-16 08:11:19 28

原创 【Demllie C++ Design Pattern】Finite State Machine Learning

##### 需求状态机就是状态转换,如果只有简单的功能的话,用if-else或者switch就可以解决了,用类来做状态机就把问题弄复杂了!!!但是如果是十分复杂的状态转换的话,还是需要用状态机,把状态转换的隐藏起来,并且各个状态做各自该做的事,会减少混乱!!!

2021-01-15 15:39:57 28

原创 【Demllie Design Pattern】template method learning

需求游戏项目先确定一个框架,把基础的执行顺序写死,不允许也不需要改动,就可以把顺序写在抽象类里,后面添加怪物和物品只需要继承即可!!!代码#include <iostream>using namespace std;class Sprite {protected: void show() { cout << name<<"出现了!" << endl; } void dispear() { cout << name&l

2021-01-15 15:04:29 24

原创 【Demllie C++ Design Pattern】Observer pattern learning

用处多对一,比如多个用户查看一个网站,看up主更新了没有,一旦更新了,网站要给每个关注了的人发消息!!!分析所以主要就是两个方面,一方面的多个观察者(用户),另一方面是被观察者(网站)。。。就算不用面向对象,只要明白了原理和需求就能做。如果用面向对象的话,两边的类需要相互调用,相互传递抽象类的指针!!!类图代码#include <iostream>#include<list>using namespace std;class OOer {public: v

2021-01-15 13:18:05 24

原创 VisualStudio C++调试小技巧 Demllie

前言VSC不好调试于是我又用回VS了。下面分享几个调试技巧,都是面向菜鸟的SHIFT+F9选中变量后按shift+f9,就能查看变量的内容,不能查看指针自身的地址!SHIFT+F9 , + &在上面的基础上,在窗口里,前面加上&就能得到指针自身的地址!添加监视调试时只关注自己想要关注的变量!选中后右击添加监视!—— 全局变量在主函数里无法查看,无论使用 shift+f9 还是添加监视都不行,必须进入其他的函数才能查看。...

2021-01-14 07:49:29 42

原创 【zhangqi-lang】【3】简单抽象语法树,只有加减乘除取余取模和小括号

前言关于switch体的设计,迭代体的设计等,太让人头疼了。先把简单的写完,再去一个个基本的加上去。比如先针对变量和关键字的区分,然后设计动态可变的变量和变量池,要考虑全局和局部,考虑字符串转哈希。定义简单节点//Node.h#pragma once#ifndef _NODE_H_#define _NODE_H_#include"Utils.h"namespace zhangqi { //节点类型定义 typedef enum { //N_在开头 N_Node, N_Tre

2021-01-12 15:23:52 41

原创 【zhangqi-lang】【2】把Token放在一个容器里

前言因为之后会扫描几遍,所以放在一起比较方便!!!0宽数组在匹配标识符和字符串的时候,只设置了开始和结束标志,然后一个个字符打印到控制台,想要变成一个字符串的话就需要一个柔性可变的字符数组。对于文件名 g_file和一行的内容 g_lineContent这些,设置成定宽的就行了!为什么不用C++的string?因为之前项目suatin-lang用过,很方便,但是从std::string字符串到char字符或者char数组需要个转换,所以还是全用char比较清楚。自定义0宽数组这个算是Uti

2021-01-11 00:10:44 48

原创 【zhangqi-lang】【1】词法分析器

..........

2021-01-10 10:07:12 122

原创 【Demllie航天】火箭方程

齐奥尔科夫火箭方程设火箭当前质量为M0,释放一部分推力后质量为M,两个时间点速度分别为v0v_0v0​和vvv,火箭飞行方向为正方向,则燃料喷出的相对速度C为负数。总动量为零,则(m−dm)dv−Cdm=0(m-dm)dv - Cdm = 0(m−dm)dv−Cdm=0∫v0vdvC=∫M0Mdmm\int_{v_0}^v \frac{dv}{C} = \int_{M_0}^M\frac{dm}{m}∫v0​v​Cdv​=∫M0​M​mdm​v=v0+ClnMM0v = v_0 + Cln\fr

2021-01-05 21:06:33 119

原创 Demllie【5】>由AST抽象语法树到生成字节码

前言在没有AST抽象语法树的时候,直接迭代返回值就计算完了,有了AST抽象语法树后,值放在树节点里,在遍历的时候返回运算结果。再抽象一下,遍历的时候也不计算,而是生成字节码放入文件里,等后面用虚拟机处理字节码时运算!!!前面的文章Demllie>做一个Toy语言编译器,随便玩玩Demllie>小型词法分析器,其实就是循环判断Demllie>编译语言实现的核心问题,就是这里不明白让我白白写6000行垃圾Demllie>由迭代法next_term_factor_expr来构造AST抽象语法树修改v

2021-01-05 09:35:37 69

原创 Demllie【4】>由迭代法next_term_factor_expr来构造AST抽象语法树

命名规范去年做suatin-lang项目时,为了避免命名冲突和规范得让自己舒服点,结果各种标识符名称越来越长,越来越臭, //解释器运行的三个阶段 enum SuatinRunTimeType { SuatinRunTimeType_Lex, SuatinRunTimeType_Parse, SuatinRunTimeType_Interpret }; //cannot change the sequence enum SuatinTokenType { SuatinToke

2021-01-05 08:49:18 78

原创 Demllie【3】> 编译语言实现的核心问题,就是这里不明白让我白白写6000行垃圾

前言核心问题就是分析时的迭代,因为不懂怎么迭代,我白白写了好多垃圾。下面做一个计算器,弄明白这个东西。Token定义typedef enum { NIL, ADD, SUB, MUL, DIV, MOD, NUM, LB, RB}TokenType;typedef union { char c; double v;}Var;class Token {private: static int counter;//类变量,不能再此处初始化 int num;

2021-01-05 02:01:49 135 2

原创 Demllie【2】>小型词法分析器,其实就是循环判断

#include <iostream>using namespace std;int main() { FILE* file; int a = fopen_s(&file,"test.txt", "r"); if (a != 0) { cout << "文件打开失败!" << endl; return 1; } char c; int state, num = 0; while ((c=getc(file))!=EOF) {

2021-01-04 20:45:29 36

原创 Demllie【1】>做一个Toy语言编译器,随便玩玩

代码运行在VS2019中,命令行参数用下面方法添加在compiler.cpp旁建一个main.txt文件夹,写一段代码。#include <iostream>using namespace std;int main(void) { cout << "hello,demllie" << endl; return 0;}运行SB编译器//compiler.cpp#include <iostream>#include <string

2021-01-04 05:29:25 100

原创 【单片机】用蜂鸣器播放《小半》

note是音节,beat是节拍#include "reg52.h"sbit bell = P1 ^ 5;unsigned char note, beat;unsigned char code sheet[49][2] = { //0~48,49个音符各自的时间对应的初值 {0, 0}, {0xF8, 0x8B}, {0xF8, 0xF2}, {0xF9, 0x5B}, {0xF9, 0xB7}, {0xFA, 0x14}, {0xFA, 0x

2021-01-03 18:00:15 41

原创 【Demllie航天】重力转弯与闭环控制

前言一个绕轨飞行的航天器,降落期间是垂直于地表的,那么那这段区间内,航天器是怎么做到的呢?在旋转航天的角度为垂直期间,火箭喷口方向朝哪?朝向径向向外吗?只需要喷一会儿一开始降低轨道,需要火箭喷口朝速度方向,降低轨道为抛物线后,不需要再开火箭,当然开也行,由于重力转弯的作用,在降落的最后阶段开火箭,航天器也能垂直,并不需要朝横向或者径向喷,浪费燃料让它垂直。下面解释重力转弯是什么。降低轨道了,轨道变成抛物线,这时候火箭喷口朝速度方向,打开节流阀。重力加速度设为g,航天器速度为v,火箭输出的推重

2021-01-03 04:35:16 239

原创 【zhangqi-lang】制作新语言的需求

作者:Demllie时期:2021年1月1日回顾:去年花了三个月做的编程语言suatin-lang,仅仅实现了判断和循环就放弃了,主要的原因是本人水平太差,没有搞懂词法分析和语法分析中的核心问题——不会迭代生成AST,至于后面的代码优化、类型判断、虚拟机等需求就不需要提了。虽然suatin-lang只能算是个计算器,但是编译语言的相关特性还是实现了很多的,我想着这足够让我有自信去往下做了。但是,事实上,我没有一点成就感,这东西是个残次品,给别人吹自己做了个编程语言也没办法秀出来,因为的的确确没有实际用

2021-01-01 22:43:46 63

随机缓存探究系统

文章《【反馈】随机缓存系统》的项目。一个软件模拟的反馈控制系统!具体内容到我的专栏【反馈】中查找!

2019-12-01

解压就能用的Processing.rar

processing编辑工具,processing3.3.7!!解压就能用!!

2019-10-12

2021-2-19 iter_function.zip

函数解析

2021-02-19

2021-2-12 loop_range.zip

解析了循环,设计实现了range,解决了lexer的一些Bug

2021-02-12

2021-2-10 if.zip

改进了let,static,const语法树,解析了BEGIN和END块,解析了if,elif,else 修改了Node类设计。 但是出于BinOp_Node类上面的类都会被VS2019当做是BinOp_Node类,这是编译器的问题,不是我的

2021-02-10

2021-2-4 Statement.zip

把一条语句完整的构造成AST

2021-02-04

2021-1-27 let_var_const.zip

实现了变量定义,let a = 1 let a = b = c = 1 + 2 之类的

2021-01-27

2021-1-26 Pool_Lexer_Parser.zip

分离了lexer和语法树的构造,把AST构造放到了Parser内,这样第一遍扫描就把所有的token扫描出来

2021-01-26

2021-1-12 SimpleAST.zip

zhangqi-lang抽象语法树,这个里面只实现了表达式的抽象语法树,复杂的没写,或者说删除了

2021-01-12

2021-1-11 SaveInVector.zip

zhangqi-lang还是词法分析阶段,把token全部放入容器中,便于后面多次扫描

2021-01-11

2021-1-10 FSM_Lexer.zip

zhangqi-lang词法分析器,zhangqi-lang语言开放的第一个项目。用状态机实现,有5改状态机:注释、标识符、数字、操作符、字符串

2021-01-10

Suatin编程语言项目最后一个LAST

SUATIN不学编译原理制作编程语言的项目完整版!

2020-10-02

Suatinlang_version_2020_2_3.zip

自制编程语言的第一个项目,完成了识别分类Token,还有分割了简单语句!虽然后面的项目可能要大改,但是这第一个还是要好好纪念一下的!

2020-02-09

绘制哆啦A梦.zip

看小甲鱼的课程做的,GDI绘图乐呵乐呵就行,谁也别想通过这种方法做东西,太无聊了——知识这种东西,是学会了后肯定会忘记的

2019-12-01

Suatinlang_version_2020_4_5.zip

Suatin编程语言项目。这次设计了变量栈,scope=0放特殊变量,scope=1放常量,scope=2放全局变量,scope>2放局部变量——这么设计了,但是现在还没有识别local x;const x;del x;那部分下次做

2020-04-05

Suatinlang_version_2020_3_10.zip

suatin自制编程项目! 简单表达式现在可以看做有三个模式了:开头是BOOL类型的式子、五则计算式、字符串拼接式! 赋值节点的解释,现在也特别的清楚! (有个BUG,字符串拼接模式下,expTmp完成后不置空) 解决方法,增加expTmp = NULL; 到Parser.cpp,DealToken_Str函数中,return;之前,就行!

2020-03-10

Suatinlang_version_2020_3_19.zip(有bug,修正版3_19_v2)

suatin编程语言的项目,快结束了,做完function就结束了,这个项目里完成while,do-until,for三种循环 有一个BUG!!!uncompleted_tree在分支和循环中最后处理的不好

2020-03-19

Suatinlang_version_2020_3_19_v2.zip

Suatin编程语言项目,实现了分支,if-elif-elif...-else 实现了循环while,do-until,for

2020-03-19

Apollo-11-master.zip

AGC汇编代码,是阿波罗登月飞船的指令代码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2019-07-23

File.rar OPENCV资源文件夹

一个File文件夹,装的是我专栏OPENCV4学习使用到的资源——图片、视频(CSDN下载时添加标签写不了中文)!!!!!!!!!

2019-09-05

DemllieText.zip

QT5 c++ 制作的文本编辑器。新建、保存、打开、保存为、全选、剪切、复制、粘贴、清空、粗体、斜体、下划线、字体、字体大小、关闭询问、最大化与恢复、最小化、更换背景、关于作者

2020-06-26

C实现控制台下的生命游戏

就是个简单的控制台黑界面下的生命游戏,还不完整,但是无所谓。你想玩玩可以改改!不完整是因为生命游戏的一些要求没完全实现

2019-04-17

UltimateTCS大一做的作业1000+

在VC6上运行,里面有预览、源码、素材,可以自己改成别的编译器上运行。里面涉及的知识有C链表、C文件、easyX图形库、C++原始多线程、PS(哈哈哈哈)等

2019-04-17

Suatinlang_version_2020_3_3.zip(有bug,修改版是2020_3_4)

Suatin编程语言项目 此次改进有,正确区分不同表达式!使字符串拼接模式不再严格,给字符串和数字一样的级别!修改了NotExpr\AndExpr\OrExpr\NeqExpr\EqEqExpr的解释方法,允许非数字的逻辑运算和判断运算!增加了5种节点解释时调用的孩子的解释方法信息,在构造语法树时将【该调用那种解释方法】这个信息留在了5种节点内!

2020-03-03

Suatinlang_version_2020_3_9_v2.zip

suatin编程语言的项目!!!3月9号晚上的第二个大更改!!! 去掉了之前的 exprType \ expr_compare_flag \ expr_logic_flag 改为了 m_statType \ m_exprType \ m_simpleExprType 虽然变量数目没变,但是含义可大大更改了,之前的三个变量都是指的一个关系,在那个关系中,计算表达式、字符串拼接表达式、逻辑表达式和判断表达式混为了一谈,但是他们的关系并不是并列的,所以项目中表达式式的区分乱七八糟,没法人脑检查出BUG来!!! 写了三个枚举,改变了语句、表达式、简单表达式之间的关系后,代码变得清爽多了——并不是代码少了,相反,比上一个项目还多2kB,而是关系变得简单了!!!!

2020-03-09

Suatinlang_version_2020_2_28.zip

Suatin自制编程语言5,一次较大的改动!为了引入bool返回值,增加了一个interpret_bool接口!解决了正则识别不了>=,&lt;=的BUG!改善了语言环境的显示!引入了特殊赋值!为了判断运算又增加了6个类!

2020-02-28

Suatinlang_version_2020_3_4.zip

Suatin编程语言项目 此次改进有,正确区分不同表达式!使字符串拼接模式不再严格,给字符串和数字一样的级别!修改了NotExpr\AndExpr\OrExpr\NeqExpr\EqEqExpr的解释方法,允许非数字的逻辑运算和判断运算!增加了5种节点解释时调用的孩子的解释方法信息,在构造语法树时将【该调用那种解释方法】这个信息留在了5种节点内!

2020-03-04

Suatinlang_version_2020_3_18.zip

这次的自制编程语言项目实行了if-elif-else,可以是嵌套的,总之功能强大! 还做了个简易的Qt的信号槽,可以实现全局信号->非成员函数,全局信号->成员函数!

2020-03-18

Suatinlang_version_2020_3_28.zip

suatin自制编程语言项目!精简了变量的内存结构!将单个分号不算做语句,提高了解释速度!10000个数的空循环一秒多就运行完了!一百万个数的空循环大概100秒左右运行完!

2020-03-28

Suatinlang_version_2020_3_1.zip

Suatin自制编程语言的第6个项目!完成了单个语句的逻辑运算,就是not,and,or.........但是项目本身遇到很大的问题,因为学习的不好,我采用的是最愚蠢的,每遇到一个Token就改变一下语法树,这实在是太麻烦了!啥时候去学习《编译原理》了!迷迷糊糊写了3000代码,完成的功能实在是太简陋了!

2020-03-01

Suatinlang_version_2020_3_8.zip

suatin自制编程语言的第N的项目!并没有多实现什么,之前单条语句已经解释完了,现在只是打个包,解释了多条语句而已!!!! 感觉很绝望!项目中有很多难以处理的结构,也可能出现未知的bug,所以没办法把解释器的架构给改变了!!!!毕竟是自己乱七八糟写的! suatin语言的项目做到实现函数为止吧!!!画了很多时间,没使用编译原理的知识,也要做到那个地步!!!

2020-03-08

Suatinlang_version_2020_3_13.zip

suatin自制编程语言的项目!!!在制作if-elif-else等架构之前,对项目进行了多次改进,打了很多补丁。。。。运行只有单个变量时,打印出数、字符串、布尔、nil 将bool类型的变量很好的融入了表达式中,对布尔进行计算和>,<,>=,<=四种判断运算都会报错!!! 解释时遇到nil类型的变量会报错!!!

2020-03-13

Calculator_version_2020_2_4.zip

计算机改进版,添加了默认函数,虽然只能有一个参数!添加了小数、指数,基本的计算都能完成了。仍然是中缀表达式转后缀表达式,后缀表达式求解

2020-02-09

Suatinlang_version_2020_2_21.zip

Suatin-lang项目的第二个版本,抛弃的第一个版本才用的中缀转后缀,而是直接由Token建立语法树!架构也重置了,之前的功能少,文件有三十多个,这次文件只有5个!

2020-02-21

Suatinlang_version_2020_2_23.zip

自制编程语言Suatin的第三个项目,之前的简单语法树只有Num,这次增加了对Id\Str的处理!给解释器模式增加了一个接口string interpret_str()!!!!

2020-02-24

Suatinlang_version_2020_2_25.zip

Suatin编程语言的第四个项目,添加了赋值,即允许 a = Expr 和 a= b = Expr 的存在!暂时把Int和number(double)合在了一起,现在就两个主要的类型,Number和String!

2020-02-25

Calculator_version_2020_2_3.zip

计算机的第一个版本,输入一个式子,1+2-3/5^6%3都能算出来。通过中缀表达式转后缀表达式,然后通过后缀表达式求解。缺点是数字只能是一个一个的,而且不支持数学函数

2020-02-09

Suatinlang_version_2020_3_9.zip

suatin编程语言的项目! 改进了异常,之前的异常机制只能告诉我有问题,到底问题在哪不知道,改进之后可以得到问题所在的语句了! 还重写了错误种类!

2020-03-09

Suatinlang_version_2020_3_26.zip

suatin编程语言的倒数第几个项目。做了一些变化,比如竟可能的把实现和声明分开了。把异常机制的模板给去掉了,这个异常以后再搞其他项目的时候要好好考虑清楚。现在6千行代码,每次都要大改异常机制,一改就是几百个函数 这次的项目最重要的就是完善了循环的功能,增加了break;和continue;还增加了打印语义树的方法

2020-03-26

Suatinlang_version_2020_3_19_v3.zip

Suatin编程语言第N个项目,增加了调试的功能!assert关键字,可以卡住解释器的解释过程,当卡住后输入exit,解释器会关闭,输入其他的会继续往下解释!

2020-03-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除