当前位置:首页 > 嵌入式 > 嵌入式微处理器
[导读]java 的synchronized、try catch、xxx ? yyy: zzz; python 的yyy if xxx else zzz、range; golang 的go、defer、chan; js 的map、sort、`xxx${yyy}zzz`、e=>; 不仅如此,兼容大部分语法包括 Golang、Python、JavaScript和Java; 既可以使用 ; 明确表示一


java 的synchronized、try catch、xxx ? yyy: zzz;
python 的yyy if xxx else zzz、range;
golang 的go、defer、chan;
js 的map、sort、`xxx${yyy}zzz`、e=>;

不仅如此,兼容大部分语法包括 Golang、Python、JavaScript和Java;
既可以使用 明确表示一行语句结束,也支持大多数场景智能自动分行;
可以在语句中适当 增加空格 使得程序更容易阅读;
容易学习的 指针

如果把这些好用的功能都“揉在一起”会如何?日前,笔者便发现了这样一个网站(z1h.org),提供这样的语言的下载。

(图:网站信息截图)

根据作者的介绍,Z1h 是一门跨平台编程语言, 它能轻松开发各种应用程序或服务接口。

Z1h从2019年国庆期间由曾威人开发,并于2020年对外发布了包含Windows、mac OS、Linux、Android、iOS、WebAssembly、树莓派等平台的v1.0.0发行版。

这款语言语法由诸多其他语言发展而来, 包括Go、Java、JavaScript、Python等等。而解释器则由Go实现(Rust版本正在开发中)。

作者强调,对于许多领域而言, Z1h 语言无疑比大多数其它语言有着更高的开发效率. 它提供了灵活的开发语法以及海量并行的支持, 这尤其对于想要快速开发http服务后端的团队和个人而言是再好不过了。

对初级程序员而言, 是一种伟大的语言, 它支持广泛的应用程序开发, 从简单的文字处理到http服务再到游戏。

据作者在知乎上表示,这款语言已经在其公司用在了生产环境。

01
很多人也畅想过这种语言


知乎上有网友提问“如果你们想要自创一个编程语言,你们希望它有什么特色?”,便拥有这样的畅想。


当然,这种问题之前也有人曾经解答过,大概意思就是各个程序在一些功能实现上并不尽相同。

因为其实不同编程语言之间的理念很多是矛盾的,但是又都有它们擅长的场合。简单的举例子,编译型语言在编译期间检查数据类型,因为这样可以生成最优的代码,但是这样会造成不同类型间琐碎的转换问题;解释型语言在执行期根据上下文自动判断类型,这样写代码就简单了,可是效率又不行了。

当然,从上面所举的Z1h语言说起,其实在功能方面,并非一股脑的整合。


有人表示,加入冗余的功能容易产生副作用。不过Z1h的作者对这款语言的评价是,不管稳不稳定,至少在公司上已经实现应用了。


02
还想要什么样的其他编程语言


值得一提的是,还有人表示希望能够有一款语言能够方便使用异构编程,对多核CPU、GPU以及各种SIMD指令,及其所对应的内存显存系统进行抽象,让语言的使用者,不再需要关注(或者至少不需要过度关注)计算机的底层,编译器实现由编程语句到处理器硬件指令的转换。

纵观行业,在摩尔定律放缓,登纳德缩放比例定律和阿姆达尔定律接近瓶颈下,CPU单兵作战并不能满足计算要求,因此出现了CPU+FPGA、CPU+GPU、CPU+ASIC的这种异构计算。而英特尔推出的超算计算机,也是CPU+GPU+FPGA形式。

因此,网友所描述的这种需求,其实是具有着相当实用性的。虽然FPGA厂商们正在努力让程序员们只用一个C就能编好一切,但还缺乏一种语言能够实现这种功能。


还有网友,还奇思妙想“一款AI智能编写语言”。不过,这种大胆的想法并不是什么痴人说梦。

早在之前,谷歌的首席执行官桑达尔·皮查伊(Sundar Pichai)就谈到了“自动编写自己”的软件。根据他的说法,软件1.0时代一切皆由人类码指导计算机,但到了软件2.0时代,拥有深度学习、神经网络的计算机只需命令便可自己编写自己。


当然,懂得中文的AI,或许在后台代码也将变为纯中文。一名Google的高级软件工程师/技术主管便“发明了”一款文言文编程(https://github.com/wenyan-lang/wenyan),万能的define被他玩出了花儿。


03
编程语言都是怎么来的


手工开关阶段

早期的计算机程序员,大多数是女性手工进行开关切换你敢信?


我们都知道计算机内部是二进制的,而那时候便是使用这种简单暴力的方式,用电路的高低电平来代表“0”和“1”的。

计算机有一个很大的操作空间,通过控制横竖排列的开关,就能完成一组对应的运算。计算完成后,通过观察输出设备(就是一些灯泡)的亮(1)和灭(0),再进行一层转化,就是结果啦。

穿孔打卡时代

手工开关要求程序员坐在终端前操作,非常不方便。美国人赫尔曼·霍尔瑞斯(Herman Hollerith)在1880年进行人口普查工作时,发明了基础的利用穿孔卡片收集和整理数据的系统。

其实早在18世纪20年代,法国纺织工人鲁修(Basile Bouchon)使用了一套计算机器能读出的穿孔卡片。1835年,一位名叫查尔斯·巴贝奇(Charles Babbage)的英国人发明了他称作“分析机”(Analytical Engine)的工具,这种“分析机”运行的原理和现代数字计算机是一样的。巴贝奇设想用分析机进行任何可以储存在穿孔卡上指令进行数学运算。分析机会有一定内存,用来存储数据。不幸的是,这样的分析机的大小和火车头差不多,而巴贝奇从未能够从英国政府得到足够的财政支持来制造这样的机器。


将开关需要的状态提前在一张卡纸上描述出来,卡被穿孔或不穿孔就对应开关的开或关状态。

然后用一个机器读取卡纸的指令,再送到计算机。之后还有输出也通过穿孔打卡,程序员拿到输出的卡纸,再进行翻译。这时候的编程虽然已经方便了很多,仍然很繁琐。程序员需要自己做二进制翻译,才能完成跟计算机的对话。

第一个编译器(翻译器)的诞生

早期的程序员主要是女性,暂且认为这事儿太需要精细操作,五大三粗的男性干不来。而这世上从来不缺伟大的女性!

Grace Hopper姐姐被安排为美国的第一台通用计算机马克一号(Mark I)做程序设计,并在二战后加入UNIVAC开发团队。这位姐姐觉得每天去读写机器码太无聊,她开始研究使用接近英文写作的方式来编写程序,并四处寻求经费,终于发明了第一个编译器A-0。编译器本身就是一个用机器语言编写的软件系统,它能够把英文程序翻译成二进制机器代码,这样完美替代了程序员最不爱做的低级部分。

从此以后,编程语言从低级向高级发展的脚步越来越快。随着计算机硬件的飞速发展,一代又一代充满智慧不断追求高效的计算机科学家们开发出各种高级语言,将更为底层的操作标准化封装起来。编程开始普及,因为高级语言非常接近人类的自然语言,甚至不需要了解计算机的底层原理就可以去完成自己想要的程序。于是乎,还出现了各种图形化编程,比如Scratch和AppInventor。




编程语言都是互相借鉴的

不同的编程语言有不同的语法和特性,但它们都是图灵完备的。通俗地说就是:所有的编程语言都可以用来实现任意一种算法。

任何语言都是各种语言特征的集合。例如,编程语言就像一台计算机。其品牌可能是IBM、戴尔或苹果。但是,你能说苹果的电脑就一定比IBM好吗?不能。首先你必须了解计算机的配置,例如处理器型号、内核数量、CPU的时钟频率、一级缓存、二级缓存……,内存和硬盘,显示分辨率,还有显卡、网卡等等。有时你还需了解每个硬件的兼容性。

几乎所有的编程语言都包含了几类元素,它们都与“抽象”有关:

数据类型和数据抽象;
控制流程和控制抽象;
底层抽象;

对特定领域的补充和抽象。

编程语言有很多公共特性,因此,我们能够学会所有编程语言的主要原因是:编程语言的概念其实是很有限的。常用的编程语言概念不会超过 15 个:

过程;
递归;
静态类型;
动态类型;
类型推断;
lambda 表达式;
面向对象;
垃圾回收;
指针;
连续性;
元编程;
宏;
异常。

编程语言的概念基本上是不怎么变的,就像设计原则一样。

编程语言的作者们相互借鉴想法,只是实现不一样罢了。有时候,我们可以说语言 C 是语言 A 和 B 的儿子,那么整个编程语言的家谱可能像这样:


当然,在《 48岁的C语言,你知道它背后的历史吗? 》中,嵌入式ARM曾经深入讲解了C语言是如何从B语言中衍生出来的。

早期的C语言编译器采取了一个取巧的办法:先用汇编语言编写一个C语言的一个子集的编译器,再通过这个子集去递推完成完整的C语言编译器。

到现在,有着无数的编程语言,当然上文所介绍的这款语言,应该是作者理想中的完美语言。

每一门编程语言仍然还是有自己的优点和不足。适合用来处理所有任务的编程语言是不存在的。不过这款工具在实际生产和应用中,或许也是一个不错的选择。

你怎么看待这款语言呢?

-END-




推荐阅读



【01】C语言为何不会过时?你需要掌握多少种语言?
【02】C语言最大难点揭秘:编程的祸根!
【03】经典:C语言在嵌入式系统编程时的注意事项
【04】从1985年到2020年,编程语言排行有哪些变化?
【05】工程师精华帖:C 语言表驱动法编程实践



免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭