找回密码
 立即注册
楼主: 杨为民

F351(5):谁才是真正的高级计算机语言?C语言还是Forth语言?

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-11-26 12:32:20 | 显示全部楼层
从 SDCC-51 到 SDCC-Ai8051U-32Bit,可能是最快的一条路

点评

(1)据我好几年前的了解,SDCC-51的Windows版本使用了一个非开源的需要授权的模块,因此SDCC-51 For Window提供的EXE的Setup程序是可以运行的,供用户免费使用的。但是SDCC-51 For Window官方的开源版本程序正好就  详情 回复 发表于 2024-11-26 15:17
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-11-26 15:17:54 | 显示全部楼层
神*** 发表于 2024-11-26 12:32
从 SDCC-51 到 SDCC-Ai8051U-32Bit,可能是最快的一条路

(1)据我好几年前的了解,SDCC-51的Windows版本使用了一个非开源的需要授权的模块,因此SDCC-51 For Window提供的EXE的Setup程序是可以运行的,供用户免费使用的。但是SDCC-51 For Window官方的开源版本程序正好就缺少了这个授权模块,无法编译成功。因此要将Windws下的SDCC-51升级为SDCC-251,可能需要先去获得该模块的授权。
(2)不过将Linux下的SDCC-51升级为Linux下的SDCC-251就没有这个限制,我猜该模块的Linux版本是开源免费的,SDCC-51 for Linux开源版本是可以编译成功的。
(3)我当初看了SDCC-51的源代码,觉得其架构很难升级为80251指令集架构,因此就反思:为什么SDCC自己团队不将其升级为SDCC-251?是它们没有那个能力吗?我觉得不是,肯定是基础框架方面的问题。
(4)另外SDCC-51 for Linux开源并维护了好多个版本,为什么那么多年没有厂家、团队或者个人将其升级为SDCC-251 for Linux?是全世界的有时间和有需求做这个事的人都没有我 聪明?肯定不是,一定是已经试过了不成功。
(5)所以好几年前我就放弃了对SDCC的移植,专心研究自己的8051/80251指令集C语言编译器。

点评

杨老师,请教您当时考虑移植SDCC是否考虑过GCC或者LLVM?LLVM编译器是完全开源的,如果能适配LLVM,C++也可以用了。  详情 回复 发表于 2025-3-16 20:54
看到您之前有提到的 难度在哪 的文章  详情 回复 发表于 2024-11-26 16:42
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-04-29 13:02:20
已绑定手机

0

主题

130

回帖

174

积分

注册会员

积分
174
发表于 2024-11-26 16:20:48 来自手机 | 显示全部楼层
学习
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-11-26 16:42:26 | 显示全部楼层
杨*** 发表于 2024-11-26 15:17
(1)据我好几年前的了解,SDCC-51的Windows版本使用了一个非开源的需要授权的模块,因此SDCC-51 For Win ...

看到您之前有提到的 难度在哪 的文章

点评

业余爱好,没有发表  详情 回复 发表于 2024-11-26 17:06
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-11-26 17:06:38 | 显示全部楼层
神*** 发表于 2024-11-26 16:42
看到您之前有提到的 难度在哪 的文章

业余爱好,没有发表

点评

[attachimg]65601[/attachimg] 【新提醒】软件C语言编译器与人类程序员使用8051汇编语言编程的方法对比(上) - AI8051U体系结构,高峰论坛,芯起点,芯高度 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)  详情 回复 发表于 2024-11-26 17:17
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-11-26 17:17:44 | 显示全部楼层

点评

(1)这就是根据当时的阅读得到的结果,比如80251的32位寄存器DR0,WR0,WR2与R0R1R2R3对应的关系就是大端格式的,而80251一条指令“MOV Dir8, DR0”就把32位数据按大端格式存到DATA空间中了。所以SDCC-51要升级要改的  详情 回复 发表于 2024-11-26 17:40
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-11-26 17:40:55 | 显示全部楼层
神*** 发表于 2024-11-26 17:17
【新提醒】软件C语言编译器与人类程序员使用8051汇编语言编程的方法对比(上) - AI8051U体系结构,高 ...

(1)这就是根据当时的阅读得到的结果,比如80251的32位寄存器DR0,WR0,WR2与R0R1R2R3对应的关系就是大端格式的,而80251一条指令“MOV Dir8, DR0”就把32位数据按大端格式存到DATA空间中了。所以SDCC-51要升级要改的太多了。
(2)我的印象还有SDCC-51的重定位连接器LINK部分支持的重定位地址限定了16位,很难改到支持24位的重定位地址,这时编译器架构问题,很难改。
(3)另外好像还有其内部有关地址的程序变量很多是16位的整数,要想一一改成32位整数变量,难免挂一漏万,如果隐含BUG,后续改错就很难了。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:80
  • 最近打卡:2025-05-01 08:54:26
已绑定手机

0

主题

36

回帖

238

积分

中级会员

积分
238
发表于 2025-3-5 14:12:04 | 显示全部楼层
不管人还是工具或者事物被淘汰就说明它已经不适应时代了,更何况就没有成为主流过的东西
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 2025-3-16 20:54:45 | 显示全部楼层
杨*** 发表于 2024-11-26 15:17
(1)据我好几年前的了解,SDCC-51的Windows版本使用了一个非开源的需要授权的模块,因此SDCC-51 For Win ...

杨老师,请教您当时考虑移植SDCC是否考虑过GCC或者LLVM?LLVM编译器是完全开源的,如果能适配LLVM,C++也可以用了。

点评

(1)对于8051单片机,为什么要移植SDCC?它本来就是开发8051的编译器,支持现在和未来的所以STC/AI的基于8015指令集的单片机。 (2)对于80251指令集单片机,直接为GCC写一个“AS80251”汇编语言编译器就行了呀,  详情 回复 发表于 2025-3-17 03:53
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2025-3-17 03:53:05 | 显示全部楼层
erci*** 发表于 2025-3-16 20:54
杨老师,请教您当时考虑移植SDCC是否考虑过GCC或者LLVM?LLVM编译器是完全开源的,如果能适配LLVM,C++也 ...

(1)对于8051单片机,为什么要移植SDCC?它本来就是开发8051的编译器,支持现在和未来的所以STC/AI的基于8015指令集的单片机。

(2)对于80251指令集单片机,直接为GCC写一个“AS80251”汇编语言编译器就行了呀,谈不上移植,是很正常的扩充呀。
(3)使用LLVM当然可以支持80251指令集。但是其生态环境远不如GCC。
(4)所以对于AI8052U,直接写“AS8052U”汇编语言编译器就行了.

点评

感谢回复  详情 回复 发表于 2025-3-17 08:38
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 07:06 , Processed in 0.134676 second(s), 125 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表