linkboy软件学习心得体会
我应该是对linkboy阶段的学习有一个初步的认知了,目前linkboy已具有较为完备的生态体系。除了用于工控、IoT物联网、边缘计算等专业领域外,在国家推进科技创新的大环境下,近年来linkboy也逐渐应用在中小学的信息技术和编程教育中。
2xxx年x月,开始接触编写程序构建linkboy。那时候是大二即将结束要放暑假,关于语言的构想已经成熟,在学校实验室里正式着手开发这门编程语言。而之前很长一段时期,则一直是比较零散的,模糊的想法。有一些想法其实可以追溯到更早的大一时候。
大一是学习的起点,借助网络有无穷无尽的学习资料和软件,对于刚从高中苦海解脱的我来说,确实是大开眼界。记得有一次跟同学去网吧,我下载装好两个软件8051IDE和GBD8051,然后敲几行程序后,在GBD8051上运行,一个红的端口就不断地闪烁。我兴奋地演示给同学看,他一脸茫然,说:“老大,这个有啥用?”
但我知道这个意义非凡,就像是开启了一扇大门通往新奇的计算机世界。使用汇编语言编程,大一做了一个俄罗斯方块游戏机,通过家用小霸王的手柄操纵并在128*64液晶上显示游戏画面。51芯片内存有限,外扩了一个6264RAM存储器。
这个游戏机当时几乎被同班同学们玩遍了。后续我又开发了坦克大战等程序,每次去网吧先把程序从邮箱里下载,然后修改,调试,增加功能;下机时候再把程序发回邮箱里,就这样总共编写近一万行汇编代码。从这些项目的开发中也总结了不少的经验,如规范形参传递、全局变量的使用、手工方式计算寄存器的占用等。实际上这里边已经包含了后来设计编程语言的萌芽,编译器无非就是把这些过程自动化。
到了大二开始从汇编转向C语言编程,使用Keil这个国外编程软件。根据老师和学习资料的指引,需要在网上寻并下载破解版本,也就是盗版;正版是需要一笔钱的,而且国内没什么购买渠道(当时)。另外到一些工程师论坛上一看,很多公司的开发人员都在用这个盗版,不乏一些大型的正规科技公司。
经过调研,国内还没有自己的面向嵌入式和工控领域的编程语言,普遍在使用国外的编程工具。此外,电路仿真、EDA软件等这类基础、核心的开发工具,基本也都是掌握在国外厂商的手中,导致国内的技术研发人员只能被挤到产业链下游,做做应用。
大二使用Keil做了几个项目,又发现了C语言的一些弊端(也可能是自己过于吹毛求疵了吧)。最明显的是,C语言移植性比较差,你需要严格遵守MISRAC规范才会尽可能保证移
植性。两者经常是矛盾的,比如C语言提供了三元运算符(?:),MISRAC规范中又禁止使用这个运算;C语言允许任意位运算,而MISRAC规定:不得对有符号数施加位操作。而且这样的规则一共有127条,即使稍微不注意,编程语言也不会给你报错,但是开发出来的工程却可能存在安全隐患,产生数据溢出等严重问题。
经过一些模糊想法逐渐清晰和成型,大二下学期快结束了时候,决定设计一门全新的面向工业编程语言,来在语言层面上做重新设计,也就是说使用这个语言的工程师,不需要再刻意遵守那127条规则,已全部融合到语言的层面,如有违规将给出明确的报错提示,这样在程序开发阶段就能避免很多潜在的隐患。
期末考试结束后,我给家里打电话说这个暑假不回去了,要在学校做些事(因为家里没有电脑)。根据计划原定暑假一两个月就能完成编程语言的原型开发并测试完成,这样大三开学就可以准备外出实习和工作了。花点时间做完这个项目,以后作为毕设也是可以的,不算白忙活。
二.启程
为了在电脑上开发编译器软件,还需要同时学习C#。整个暑假,用一个正在学的语言开发一门新语言的编译器,主要是各种字符串处理。这样磕磕绊绊,边学边做,总算基本完成一个语言内核,参考C语言的语法实现了一个子集,而且支持指针。之后做了一些测试,用这套语言重新编写了之前的俄罗斯方块游戏,运行良好。于是信心满满地在一些专业工程师论坛上推销这个编程语言。发了两个帖子,不过反响平平,工程师们觉得这个东西没什么前途。还有人表示,先能编译通过UCOS-II那样的嵌入式操作系统再说吧。
想了想,可能目前的成果确实不太成熟。仅仅是编译器内核有了,而配套的库,调试环境等都不完善。做个原型是可以的,可是要想做完整,能应用在工业领域,两三个月的开发周期实在是太短。还有不少的工作量要做,这样感觉到大三毕业可能都做不完。那么,要不要继续做下去??
真是“无知者无畏”,决定不去实习工作了,先考本校的专接本,这样就又有两年的充足时间来完善这个项目。
大一在西校区上课,是挨着农村的很偏僻的地方,大二开始在校本部上课。师范学院的实验室资源相对有限,不过在学院甄老师等安排下,办公楼里有一个小储物间收拾干净,给
我当实验室。还给配了一个台式机,不用像大一那样每次去网吧编程了。很感谢学校能提供这样一个学习环境,大学近四年的时间基本都在这个小实验室里度过,并完成了linkboy最内核的编译器和语言框架。
在探索的道路上越走越远,总是能发现更多激动人心的方向。研究编程语言就像是奇妙的山泉,如果持续深挖,那么各种想法和创意能不断地涌出来,可做的事情实在是很多。现在依托目前的成果,一方面可以向应用层上扩展,结合国家产业政策,适合面向青少年做人工智能、军民融合(北斗等)科普编程平台;另一方面可向底层继续扎根,支持龙芯嵌入式CPU、兆易等各类国产处理器。尤其近两年RISC-V开源指令集在物联网领域开始大展身手,华为、阿里都在基于RISC-V研发更自主可控的芯片,那么做一些配套的编程语言移植工作,比如面向中小学提供基于开源指令集的编程仿真工具,也是比较有意义的事情。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。