登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: [通用语言设计]freepascal/lazarus/delphi 的 js 引擎 BESEN 的一个 bug 说起     [回主站]     [分站链接]
标题
[通用语言设计]freepascal/lazarus/delphi 的 js 引擎 BESEN 的一个 bug 说起
clq
浏览(12) + 2024-10-31 21:36:15 发表 编辑

关键字:

[2024-10-31 21:58:50 最后更新]
[通用语言设计]freepascal/lazarus/delphi 的 js 引擎 BESEN 的一个 bug 说起

这已经是最好的 freepascal/lazarus/delphi 原生 js 引擎了。但仍然有问题。出在编译一个 webpack 之后的合成单个超大 5m 多的代码。
本体为 ANTLR4 的运行库。

其实 ast 已经生成,是在依据 ast 生成 bytecode 的时候。原因是在一个 a=b=c=d=e=f .... 的超长连续赋值语句中死循环了。

说实在的,我对 c 系的这种方便性的赋值语句很不以为然,为了开发效率做得太过了,完全破坏了代码可读性。没想到它还会引起编译器的错误。所以说代码还是应该老老实实地写,少卖弄点技巧 -- 人看不懂的,有时候机器也看不懂 -- 机器给你来个不懂装懂那就麻烦了。

其实本身程序流程是非常简单的,现在出那些花得不得了的东西,很多真的没那个必要。其实代码最后放到 cpu 哪里不过是指令地址跳来跳去,不停读写各个内存/io而已,简单到不得了。
如果大家自己设计过指令集就明白了,intel 那么多几千条指令其实很多都不过是多个指令的合并而已,不明白的网友可以去看下 riscv 设计手册。还有那个最高学历不过本科的 cpu 设计天才也说过,大多数程序其实只用到很少几条指令,
在将高级语言转换成汇编时就算是有对应的一条汇编一般也是换成几条普通汇编的。

太过复杂的语句可以考虑禁止使用,或从语言特性中去掉。还有些语言特性完全是评语实现时的附带产生的,最好是不要使用的好。





总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录
通用语言设计 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1