{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

开发一套编程语言有多难?

CollinPengCollinPeng 回答9 收藏1
收藏问题

9条回答

godruoyi

godruoyi

回答于2022-06-22 18:52

开发一套编程语言的难度对于任何团队来说都是难度系数极高的,个人基本上不可能开发完整一套。



编程语言现状

目前优秀的编程语言以C语言,Java语言,Python语言三大语言比较有代表性,也是目前的主流语言。

任何一门编程语言都是一种工具,那么这个工具需要用来做什么,这是首先需要考虑的。因为目前编程语言这么多,你要开发一套语言用来做什么别人做不到的,或者比别人做的更好的。就别说超越Java或者C语言,先开发一套可以替代这两种的语言就非常优秀了。



编程语言开发大致思路

首先要定下一个体系,是面向对象还是面向过程,还是另辟蹊径。这需要你对计算机底层有足够的了解,对编译原理非常精通。

然后你要给语言定一套规则,会用怎么样的语法,会有什么样的特性。一点非常重要,会决定这套语言的受众面和推广程度。

接下来你可以选择去设计这套语言,是基于C语言的库,还是借用点Java的类库,还是自己设计一套与汇编语言有密切关系的语言。



设计出语言后,你还要考虑它的生态圈怎么扩大,是闭源还是开源,开源后会面临什么,这套语言要向什么技术领域进行推进,要提供怎么样的框架或者其他方面的技术支持。

最大的难点是资金和人力,你去开发一套编程语言需要的团队力量很大,他们不仅是编程届的精英,更需要年薪百万的薪水,这意味着是烧钱和烧脑。



其实说这些笔者也是云里雾里,开发一套编程语言,目前没有中国团队会干这种事情,因为这属于“吃力不讨好”,盈利效益远不如“996”接项目来的快。

关注“极客宇文氏”,一名热心有料的软件工程师。

评论0 赞同0
  •  加载中...
jeffrey_up

jeffrey_up

回答于2022-06-22 18:52

谢谢邀请,

开发一套编程语言,主要存在两个障碍,其一:任何一种编程语言都有其存在的必要性,所以要搞明白为什么要弄一套新的编程语言,首先一定要有市场需求所在,编程语言如同一个产品,一定有强烈的市场需求,编程语言存在的价值在于生态链,只有具备完善的生态链才能存活的有意义,现在全球有600多种编程语言,主流的编程语言也就是几十种,而这些编程语言中,都有强大的社区依托,也就是强大的生态链支撑,生命力才会如此的强大。

其二 本身的技术实现框架,有些编程语言在诞生之处就能感受到其强大的支配力,可扩展性等等特性,在设计之处越是想的明白,越是框架清晰,后期越容易维护,编程语言底层实现基本上靠的都是C语言,所以社会上很多对于内在不是很了解到人,说到C语言已经是过时的语言了,现在学习意义已经不大的论调,只不过在就业岗位绝对数量上,和java,python等高级编程语言无法比拟,但在一些关键岗位上离开了C语言还真不行,编写编程语言就属于这类的工作,一定需要强大的C语言做支撑。

现在国内很多人喊着什么时候有一套属于自己的编程语言,现在的易语言就是迎着这种势头发展起来的,虽然很多内行程序员不是很认可这种编程语言,觉得只是包了一层语言了而已,但毕竟有了中文编程的模式,按照这个道理应该这种编程语言,在国内会有一个非常大的发展前景,经过这些年的发展,还是没有登上主流编程语言的舞台,倒是现在很多游戏辅助软件都在用这种编程语言去搞,很多学习易语言的人就是为了做个游戏外挂或者辅助梦想着一天能够赚大钱,在08年之前制作游戏外挂的人基本上赚了大钱,主要当初针对游戏外挂的法律还不完善,让很多人钻了空子,在08年之后基本上从事这方面的人,从台前转到了幕后,专心做dll库文件,从中继续谋取暴利,所以编程语言的最难的在于如何普及,如何被大众认可,要成为主流的编程语言首先具备广泛性,从这点来讲英语编程相对来讲是比汉语更加有优势,在传播性更加容易被接收,从各个层面讲,一种编程语言要具备,通用性,兼容性,稳定性等特点。

编程语言的设计不是为了编写而编写,首先要迎合科技发展的需要,如同C语言的诞生让程序员摆脱了用汇编编写程序的痛苦,java等高级语言的诞生又让程序员不在用面向过程中的语言,去写复杂的功能,只需要调用成熟的类库就可以轻松完成很强大的功能,主要在于编程语言在向高度集成化的方向发展,所以好的编程语言一定顺应科技发展大趋势,只有这样才能圈更多粉丝,建设更全面的生态链。

评论0 赞同0
  •  加载中...
beita

beita

回答于2022-06-22 18:52

谢邀。我从事嵌入式软件开发十多年,欢迎关注和交流。



编程语言是用来定义计算机程序的形式语言,是人和计算机打交道的语言。编程语言通常描述分为语法和语义。语法是指符号或文字,及其组合。语义是指编程解释。编程语言一般分为机器语言,汇编语言,高级语言三大类。

开发一套编程语言,从技术上讲不难,难的是推广和生态。当今世界,编程语言已有成千上万种,但被使用得最多的,来来去去,都是那常见的几十种,甚至十来种。如果没有得到有效推广,编译器厂商,库商,程序员就闻所未闻,闻而不见,视而不理,就无法形成生态圈,更谈不起流行。



网上有不少声音,总是想开发一种中文编程语言,为国人所用,甚至推广至全世界。我认为,国人有开发编程语言的能力,但没有必要专门去开发中文编程语言。一来我国程序员,使用英文编程的能力还是足够的。二来尽管全球都在学中文,而不是学猫叫,但是全球并没有放弃英文的趋势。最重要的是,语言是用来交流的,编程语言也不例外。



谢谢大家。

评论0 赞同0
  •  加载中...
Alan

Alan

回答于2022-06-22 18:52

简单的不那么难,学一下AST,能解释就算了。但是要做的运行效率高,安全,高并行,编译效率高,多平台支持等等是计算机科学里最深奥的领域,关垃圾收集器就可以研究整个职业生涯了

评论0 赞同0
  •  加载中...
ixlei

ixlei

回答于2022-06-22 18:52

考虑一下用Yacc/Lex创造一个?

评论0 赞同0
  •  加载中...
Enlightenment

Enlightenment

回答于2022-06-22 18:52

我觉得人家问的更多是技术性的,这么多人扯什么市场,什么必要性,这谁不知道,净装大尾巴狼。

评论0 赞同0
  •  加载中...
wudengzan

wudengzan

回答于2022-06-22 18:52

你要懂的东西很多,首先是计算机方面的,计算机原理,汇编,编译原理;然后是一整套的语言逻辑;再者,还要懂数学方面的知识,比如离散数学等等。一个人很难完成,需要团队合作。还有个前提就是,你本身就是一个资深的编程者。

评论0 赞同0
  •  加载中...
DDreach

DDreach

回答于2022-06-22 18:52

开发一套语言应该一个人是完成不了,对于中国人来说就是汉语,就相当于你要给计算机开发一套他能读懂的语言,并且可以指定他去干嘛的语言,其中的难度不言而喻

评论0 赞同0
  •  加载中...
Lsnsh

Lsnsh

回答于2022-06-22 18:52

说难吧,现在有几千种语言,其中很多都是个人完成的,例如我最近比较喜欢的elixir,是个巴西人写的。说不难吧,国内确实没一个像样的语言项目,至于易语言,这个可能9成的程序员没把它当个语言。所以难还是不难?其实从技术角度来看,并不难。但从时间,精力的耗费上,以及后期推广及社区维护上来看,就吓跑了一堆人。对国内程序员包括我来说,有那时间,不如挣点奶粉钱

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<