Sec/UpLog.txt
shenjack 1b2371b99e
Changes to be committed:
new file:   .gitattributes
	new file:   Sec.exe
	new file:   Sec.ini
	new file:   Sec1.exe
	new file:   UpLog.txt
	new file:   "code/3D\346\265\213\350\257\225.exe"
	new file:   "code/3D\346\265\213\350\257\225.sec"
	new file:   code/HIF.sec
	new file:   code/Intermsg.sec
	new file:   code/OPENGL.sec
	new file:   code/SpeechInfo.sec
2023-07-22 20:01:36 +08:00

418 lines
15 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2022年4月21日开始计划写更新日志并准备正式发布1.0版本。
编译器从开始筹划到现在已经将近十年了,由于没有规划具体工作。
本人没有计算机基础,也没系统的学过编程。所以只能是一边研究编程,
一边构思编程代码的框架的思路。以下是这些年来编译器改进过程回顾。
2013年开始研究Windows程序编译原理可执行文件的结构。
2014年编译器框架初步成型能够编译“hollo world”和简单的窗口程序。
2016年完成代码语法高亮编辑器和窗体设计器的改进并实现资源图标等。
2018年优化数组的读写操作和自身加减操作以及变量和内存指针的处理。
2019年才开始实现switch判断语句增加了菜单编辑器和机器语言指令功能。
2020年重新规划数据变量的中英文名称改进小数和日期的处理。
2021年修正窗体设计器报错退出问题并深入研究汇编指令优化机器语言。
2022年开始优化局部变量的申请和使用并取消之前的内部变量方案。
尽可能的减少内存操作,优化对寄存器的使用。
增加了传址、索引和子类等语法,实现子类代码的定义和处理。
增加了数据表结构类型和数据库的批量读取。
数组的长度 .len 取代下标序号只能从0开始。
反汇编排查错误:数组和数据表乘以结构长度取错。
2022年4月23日更新
修正常量和类型内变量不能连续申请的问题。
修正字节组类型不能读写成员问题。
修正dll编译优化的兼容性。
修正非数组使用负数下标读写数据问题。
增加右键菜单插入常用中文编程词汇。
优化局部文本和小数变量的相关操作。
增加文本变量可以用加号连接字符串。
2022年4月24日更新
修正传送参数变量为文本时与局部文本的判断。
增加子类的销毁处理,子类可以是变量或数组成员。
增加 .len的中文 .长度 .cols = .列数 .rows = .行数
增加临时浮点数字的运算,#开头为浮点数字。
优化小数和浮点变量的运算和提交参数过程。
优化局部变量的自加自减和增加减少运算处理。
反汇编排查错误:局部变量自增加数字和变量表达式的区分
优化局部小数变量的读写运算等相关操作。
反汇编研究C语言对双精度小数和64位整数的处理
取消正整数类型,增加局部浮点(双精度)类型
2022年4月25日更新
实现整数、小数和浮点类型的相互转换和运算
数组内(数据表)小数、浮点和大数的处理
循环数组语句更新循环写入功能
增加循环字符串数据时,按字符长度计算
增加标记符号可以用@:和;太难区分)
2022年4月26日更新
优化多个常量组合时的计算处理。
修正局部变量自增加或减少数字时编译的错误。
支持库和实例目录改为lib和code方便实时更新。
程序正式上传在线更新列表,通过安装器就可自动安装。
2022年4月27日更新
编译器开始兼容C系列各种语法复制过来的C代码尽量做到不改动就能直接编译。
增加了VC、C#等常用数据类型的兼容写法,数组变量兼容小括号和中括号写法。
修正局部浮点变量直接赋值时的精度计算,以及子类和数组内浮点变量的赋值运算。
修正数组内(数据表)和新建子类浮点型变量以及子类所有变量赋值错误的问题。
2022年4月28日更新
优化变量初始赋值的方法,全局变量代码段外只能赋值数值。局部变量则可以用代码公式。
改进小数和浮点的赋值运算和提交数据的判断,给小数变量赋值时,自动转换成小数。
优化判断关键词的摘取,只在判断语句和循环语句中读取关系比较。
增加了小数和浮点的比较判断,优化了数组和子类内小数的赋值过程。
增加了+=、-=、*=、/=、|=、&=、%=、^=、等语法对各种变量的支持。
2022年4月29日更新
修正了关系运算(判断大小)时,第二条件为数字时,整数和小数的区分。
修正了判断大小时,第二条件为变量或表达式,小数和浮点的区分。
增加条件判断语句中可以使用多重括号loop改为兼容的do写法。
2022年4月29日更新
改进控件属性需要双击修改,解决修改错乱导致崩溃的问题。
修正“画”控件时宽度或高度为负数时程序崩溃的问题。
增加了switch判断语句可以用逗号分割多个条件以及~符号指定范围。
2022年5月6日更新
优化with列举语句的读写过程之前的取独立地址改为首地址加偏移量。
列举语句兼容类型、子类局部和全局、数据表等首地址用EDI存储。
统一了给EDI或ESI的地址赋值算法包含ESI/EDI加偏移或者ESI/EDI加ECX或者ESI/EDI加偏移加ECX
数组或者数据表取值算法与之前ESI/EDI加偏移、EAX、内存地址算法兼容
实现EBP/ESI/EDI加偏移/ECX与数字或者运算结果相加、相减以及自加自减的算法统一。
优化对EBP/ESI/EDI加ECX的地址进行赋值或加减运算时栈出到ECX和EDI的恰当时机。
修正列举数据表变量时寄存器用错的重大问题修正判断m ~ n指定范围不在第一条件无法编译的问题。
2022年5月7日更新
修正加索引误删获取数据表长度导致的错误,可选字段也可正常使用。
优化索引和加索引时数量存入ECX寄存器的方法。
帮助说明更新至本地路径,网络状况不好时也不影响阅读。
增加了读取数据表之前,自动把行数清零的功能。
2022年5月8日更新
增加了“#”加数字语法的特殊用途:数组获取数据之后,可以用#加偏移量,获取该内存地址后面的数据。
增加了启动SEC编程软件时检查程序是否需要更新询问用户需要更新时自动启动更新程序。
2022年5月9日更新
对#语法的用途进行扩展:可以使用列举,#数字是获取偏移地址的值,#@数字是获取偏移地址,“.#数字”是对偏移地址进行赋值。
编程软件增加自动更新模块,在线更新无需更新器,程序运行中也可以完成自我更新。
2022年5月10日更新
增加日期类型,并与双精度浮点类型通用。未指定日期或浮点类型的日期仍转为整数。
判断日期类型是否符合13-5、2-32、2022-0-99等错误日期将不按日期处理。
日期也是属于数字类型,可参与运算。非日期或浮点类型,是按格林威治时间转换成整数。
代码中有类似于“a*3-2”会被解读为a乘3月2号。在-号前面加空格则会解读为乘3减2
检查到程序需要更新时,弹出的信息框显示需要更新的文件列表。
取消检查到文件需要更新就先删除文件。改为下载时检查是自身程序时删除。
增加列举类型时赋值代码的优化,数值预先写入数据区段,省略代码赋值。
2022年5月13日更新
修正局部变量不在第一行(先写其它代码,后申请局部变量),导致局部变量无法正常使用的问题。
循环数组位于文本变量时每次英文读一字节中文两字节直到0字符为止不再依据长度读取。
申请变量时检查同名全局变量(包括控件名)是否存在,优先判断是否局部变量和子类变量。
修正循环代码之后加换行或者空格符号,导致识别不到循环条件的问题。
调用外部函数时如果参数为0个可以不加小括号。
2022年5月23日更新
增加申请数组时指定长度为固定数组,否则为动态数组(数组只能在全局变量申请)
固定数组不能进行重置、保留和销毁,性质和文本类似,只是单个成员长度不同。
“工程文件”和“外观样式”的列表从原来的最右侧,移至左侧。以适应多数人习惯。
编译代码时指定区段使用数字的全部改为标准化定义,这样修改标准定义也不受影响。
代码语法开始往BASICVB)语法相兼容,使用空格和换行也可以替代其它符号。
2022年5月24日更新
右键菜单的“插入字符”功能更改为点击左侧列表相应中文字直接插入代码
可自行调整“inc\风格.txt”里的最后一行内容。
增加直接“重命名”语法,英文的函数名可直接用中文代替。
2022年5月25日更新
修复所有全局变量在DLL里的重定向链表并解决编译优化时重定向链表的偏移地址重新计算问题。
优化自动更新多个文件压缩包的解压功能,解决多文件无法解压的问题。
2022年5月26日更新
修复全局文本变量时,实际长度多一字节,导致自定义类型数据错位的问题。
增加自定义类型申请时,可以在小括号内使用成员名=内容,加逗号分开的形式设置初始值。
更新文件框结构、目录框结构、执行结构、托盘结构等中文类型,解决托盘不能弹出消息问题。
2022年5月28日更新
修正退出软件时,保存数据无效的问题。
窗体设计的外观样式中,“是否可用”改为“是否禁用”。
增加“消息事件”小程序段调用它相当于DoEvents
编译程序处理窗体的核心代码全部改为中文名称和类。
2022年5月29日更新
增加代码编辑器可以设置字体大小的功能。
附加的示例代码重新整理,尽量全部中文化。
添加更多的全中文名称定义的类和常数定义。
2022年6月1日更新
修正读取小数数字时,误判为时间的错误。
继续增加的全中文名称定义的类和常数定义。
新的中文名称定义已更新至说明书对照表。
2022年6月8日更新
修正控制台开发库的错误兼容64位系统优化程序体积
增加双击窗体背景,自动加入图片资源并编译显示背景图片。
增加按条件判断跳转的语法,可在比较语句之后使用。
其它汇编语法将会陆续更新支持,无需内联汇编,直接写汇编代码。
2022年6月16日更新
修正某些系统环境下,启动程序出错的问题。
增加对文本或内存地址“清零”功能zeros
索引功能增加对非标准数组类型数据的查询。
2022年8月6日更新
增加了设计的菜单项可以隐藏显示
改进代码块只有一句时可以不写大括号
改进了文本变量申请以长度为准,末尾可以没0
改进了设计菜单时,添加的主菜单名可以为空
2022年8月13日更新
修正了双击打开源码文件报错的问题
SEC编程正式改名为极语言编程
增加了部分中文标点的兼容,冒号分号逗号
2022年9月10日更新
改进了for循环语句的支持多个判断条件;
改进了源码目录没有图标时,自动加载默认图标
改进了重新打开其它源码时,清空现有文件列表和数据
2022年9月23日更新
改进了循环语句支持纯数字和for/do/while的兼容写法
增加了非赋值参数里使用小数,后面加#号为浮点数
增加了百分号%可以获取除法运算里的余数
2022年9月24日更新
增加了&符号取地址指针,跟@符号作用相同,可兼容VC的写法
使用检索语句在括号后加&,是返回检索的地址,比取序号更简单
修正了"调用"语法可作为参数,以及给变量赋值返回值的问题
2022年9月28日更新
增强了内存安全性的处理,空指针指向默认申请的一段内存
增加了对于窗体使用制表键切换控件和翻译消息的处理
消息事件从循环改为判断语句,并可返回是否处理了消息
取消了最后一个内置的库函数,全部由外部处理中文定义
调整了控制台程序默认包含内核库,窗口程序增加了一些常用库
2022年10月13日更新
修正了使用十六进制数字不能用小写字母的问题
增加了0x开头的十六进制数字格式的支持
增加了0#开头的两个汉字转换为数字的支持
增加了0$开头的四个英文字符转为数字的支持
申请局部文本变量忘记指定长度时改为16字节
申请全局文本变量忘记指定长度时改为1字节
申请文本变量兼容支持小括号指定长度的语法
2022年11月5日更新
增加了使用@或者&取API函数指针地址的功能
修正了传址语句后面不加分号不能编译的问题
修正返回语句后面加空格导致编译失败的问题
修正了申请文本变量名称后面不能加空格的问题
限制了文本变量申请时必须指定缓冲区的长度
2022年11月13日更新
修正局部整数与小数混合运算时自动转换的问题
修正整数与小数运算结果向整数变量赋值的问题
新建DLL函数库时加入返回(1)解决兼容挂载问题
2022年11月22日更新
增加了文本内容开头加`符号时,自动转码成宽字符
源码最大容量从65K扩充到16M,解决源码量过大无法编译问题
小程序片段可以兼容"函数"的叫法, 以前旧代码不影响编译
优化了插入窗口背景图片的显示函数,去掉了两个复杂结构体
2022年11月25日更新
修正了无指定长度宽字符文本末尾只有一个0的问题
编译的核心模块inc文件不显示在菜单,改为内定模块
新添加模块扩展名修改为c,所有旧源码都会自动调整
2022年11月28日更新
编译器与设计界面完全分离,可支持第三方IDE
原版编辑器使用了开放IDE接口,与测试版合并
CALL调用指令增加了调用数值型地址的支持
测试版Sec1.exe更新为编译器,可独立运行
2022年11月30日更新
代码编辑器换回原版,不再提供开放IDE接口
编辑器增加自动缩进功能,也可以关闭缩进
输入左括号自动补全右括号,置光标于括号内
2022年12月1日更新
更换代码编辑器的小图片框为按钮
编辑器增加了显示数字为高亮红色
增加了程序美化功能,可修改UI效果
补齐了编辑器之前被删除的功能
2022年12月3日更新
修正编辑器里点击鼠标胡乱缩进的问题
修正计算上一级缩进字符数量的错误
增加设置缩进字符数量的功能,9为制表
改进搜索功能,有选中内容直接按下一个
修正字符串的颜色显示和多种关键字处理
控件编号显示在属性列表,禁止修改窗口名
实时显示光标所在行号以及选中文字数
2022年12月4日更新
增加仿列举读数据,可以用#(n)读1字节,#[n]读两字节
增加仿列举写数据,可以用.#(n)写1字节,.#[n]写两字节
增加仿数组在变量名加中括号,如内容[2]是读1字节
内容[2]%读2字节,内容[2]&读4字节,括号内必须是数字
改进了返回语句后面可以加一个空格,不用括号直接写表达式
增加了支持其它文本文档形式的源码进行编译
增加了大写后缀SEC扩展名为源码列表文件,内含源码路径名
增加了在代码中指定程序类型的指定,0=EXE,1=控制台,2=DLL
增加了加数组语句对普通数组和非数组的支持,类似内存复制
增加了循环数组对无变量单个表达式的快速循环写入的支持
2022年12月5日更新
修正返回浮点小数以及混合运算时使用括号优先计算的问题
增加了循环读数组使用`符号跳档读取数据,可加中括号偏移
增加了添加自定义类型资源文件的功能
调整添加图标文件的编号是加上默认程序图标的数量
窗口程序若无图标文件则不添加资源数据
2022年12月6日更新
增加变量或函数名前面加冒号:可自动转换小数类型
修复优化普通运算导致全局变量计算错误的问题
加减数值以及与或异或的数值运算合并为统一函数
增加了代码中自定义程序版本的功能
取消了编程器默认自带的管理员权限
修正设计程序版本信息出错的问题
恢复设计窗体的网格大小固定为5
2022年12月10日更新
修正取反运算数值结果计算错误的问题
增加了对变量进行取负和取绝对值的功能
变量前加-是取负,加!是取反,变量后加!是取绝对值
循环数组的指针取法跟普通数组算法统一
程序版本扩展为可以设置所有版权信息
修正使用CTRL+V粘贴两次的问题
2022年12月17日更新
改进取负和取绝对值对于小数浮点变量的支持
增加cos=余,sin=正,sqr=根,atn=反,tan=切等浮点指令
用法:(a+b)余;(c)正;(a*a+b*b)根;(c)cos;(n)pat;
增加浮点小数的左右移运算,左移是乘以2的N次方,右移是取2的N次根
增加列举时可以使用.++指令跳到下个下标,也可以用.+3的数值增加
2022年12月18日更新
改进取数组指针时切换寄存器等算法
修正循环数组判断写入文本长度的错误
优化数值增加算法兼容更多寄存器
优化加数组指令支持不同数据复制
改进小数数值的数字支持指数写法
2022年12月21日更新
增加变量常量类型起名时检查存在的变量
名,小程序名,API函数名,类型名以及常量名
修正调用函数名写错时不提示错误的问题
增加自定义类型的数组和初始化数据赋值
2022年12月25日更新
修正字节码优化误判导致程序的问题
增加整数运算等优化提升编译优化能力
调整子类变量数据指针的寄存器为EBX
检索指令扩展支持按多条件循环搜索
增加括号后使用abs或者绝,取绝对值
变量后加!取绝对值容易和!=误判故取消
优化列举指针和相对指针取值的比较
2023年1月11日更新
静态数组增加使用大括号数据初始化赋值
改进整数运算优化时和数值运算的处理
优化比较判断的处理,取消支持第二条件表达式
2023年1月12日更新
改进比较判断预判右边是否为表达式
增加了检查重名机制对于标记的检查
小程序代码段兼容大括号起始和结尾
修正包含数组表达式向数组赋值问题
2023年1月13日更新
改进申请静态数组实际赋值数目不够时自动填充剩余数组的长度
改进多层循环跳出标记为集合数组,修正只有最内层有效的问题
改进循环语句不写条件时变成无条件循环,不受循环次数影响
2023年1月15日更新
改进循环数组支持增值或减值循环写入
省略写入变量,括号后可以写等号
等号后面是初始值,不写等于循环次数
加号或减号后面是增量数字
2023年1月18日更新
改进循环数组兼容各种静态数组和读取文本
带参数的小程序段括号后面加0兼容C库约定
2023年2月8日更新
修正反斜杠转义英文字符错误的问题
增加单引号取字符编码值支持中英文
增加扩展名为极的源码列表文件支持
修正源码列表中空行无法编译的问题
修正循环字符串中文字取值两次问题
2023年2月11日更新
增加小程序的参数类型默认为整数
补充字符串中转义字符退格符'\b'
增加中括号取数组及%&取值长度定义
与小括号取数组原理不同,避免寄存器重叠
2023年2月13日更新
改进返回语句后加空格等效于加小括号
修正~`以及中括号取值时入栈两次问题
~`符号默认取4字节,加中括号取1字节
再加%取2字节,加&取4字节
2023年2月24日更新
增加数字算式的预运算处理,前后需加中括号
中括号内支持加减乘除与或异或非八种运算
编辑器增加自动补全,中文标号符号转换等功能
支持首拼五笔英文中文方式,双击列表库名插入语句
2023年7月10日更新
增加变量数组及子类变量运算时机器码的优化。
增大编辑器显示行号宽度,修正显示不全问题。
增加输入中文冒号和分号自动替换成英文符号。
设计器增加五种微软控件,即时显示实际效果。
选中控件要切换到指针,光标变成手形再选取。
调整控件大小更改为按住鼠标中键再拖曳鼠标。
2023年7月11日更新
修正加数组指令选填字段名称时无法编译的问题
修正读取窗体源码保存标题栏变成窗体名的问题
修正窗体设计器标题栏不显示内容的问题
调整控件的顺序结构使之兼容之前的源码
设计窗口默认选中空指针并显示手形光标
示例源码少量扩充并修复无法编译的问题
2023年7月13日更新
设计编辑控件标题名恢复为自动加双引号
恢复创建极语言编程的桌面快捷方式功能
2023年7月18日更新
关键词和函数库注释内容去掉拼音和英文字母显示
检索函数库补全名称时增加括号内参数各项内容
修正检索补全功能时编辑器意外出错导致程序崩溃
2023年7月19日更新
恢复编辑器行号显示,不再设置显示隐藏行号的开关
删除菜单栏下方工具栏所有按钮和单选复选框的设计
相关功能在菜单栏下都可以找到,常用功能有快捷键
输入选项调整至设置界面,并增加此选项保存配置功能
2023年7月20日更新
增加输入中文双引号和单引号自动替换成英文符号。
修复右键添加窗体背景图片以及查看源码显示背景。
增加设置文字默认编码为宽字符以及相应函数切换。
2023年7月21日更新
修正设置默认编码为宽字符后取消勾选出错的问题
代码编辑框的行号文字更改为向右对齐
修正选中控件时,不显示外围黑边框的问题
修正首拼检索重命名重置重绘重设重画等字母z改为c