当前位置:首页 » 编程软件 » 前端编译器鼻祖

前端编译器鼻祖

发布时间: 2022-12-20 18:21:46

编译器前端开发

编译器粗略分为词法分析,语法分析,类型检查,中间代码生成,代码优化,目标代码生成,目标代码优化。把中间代码生成及之前阶段划分问编译器的前端,那么后端与前端是独立的。后端只需要一种中间代码表示,可以是三地址代码或四元式等,而这些都与前端生成的方式无关。也就是不论你前端是用fortran还是c/c++,只要生成了中间代码表示就可以了,后端是不管你是用哪种语言生成的。

⑵ 现在比较好用的前端开发工具有哪些啊

1. node.js + npm, 这个是前端工具的一个平台,没有他们就没有以下的工具,建立开发环境,下载开发工具,运行开发工具的利器
2. bower, 库依赖管理器,类似于npm,但针对浏览器JavaScript的依赖管理,减少寻找库,下载库和升级库的烦恼
3.grunt,流程自动化管理工具,将你非编程的开发步骤减到最小,grunt watch+liveReload或者grunt connect,可以使得免除你F5无尽地狱,发布和开发各种无压力。以下大部分开发工具,都有grunt的相对应的插件,也就是说他们都能利用grunt进行自动化运行
5. 本人用less比较多,因为基本无缝兼容历史遗留系统中的css,(而Sass语法比较特殊,还没有专门用过,应该开发新系统的css比较好),一套css预编译语言,可以把less语法转成css语法,lessc是less语言编译器,配合grunt less,编写大型css文档毫无压力。

6.Phantomjs,没有界面的浏览器,用js脚本控制其操作网页。测试,抓图,网页流程自动化利器。配合casperjs的语法简化功能真强库后,控制Phantomjs就更加容易了
7. grunt PhotoBox, 利用phantomjs抓图功能和ImageMagick图片比较功能,在利用live-reload即时刷新功能,可以让你开发css的时候,快速对n多个页面进行观察,看其前后变化。不过缺点也比较明显,就是速度慢。但比起手动对比来看,还是非常快的。值得css开发时拥有
8. phantomCSS,这个和grunt photobox类似,都用于css开发的,差别是photobox是全局观察差别,而这个是单元组件观察差别,它方便你就抓页面中某一块元素然后进行前后比较,更加注重细节上的差异,这个比较合适组件开发时候使用。
9. jshint,帮助你快速定位JavaScript的语法错误和潜在的跨浏览器兼容性问题。在部署你JS前,用jshint检查一下是没错的 。
10.UglifyJS,压缩JavaScript代码,使你的JS代码可以更加快速的加载。有grunt的插件
11. browserify允许你在浏览器里面使用CMD标准模块,但本人认为它的另外一个优势是合并代码,开发时候可以把代码模块化,分成很多很多小文件,然后有调理的放到相对应文件夹下,然后最后合成单一文件。本人曾经利用browserify开发greasemonkey代码,大大简化了greasemonkey的开发难度和增强了greasemonkey代码的质量。browserify有grunt插件,这样又减少的开发步骤。
12. Karma, google开发的一个单元测试运行器,这个自己本身不是一个单元测试框架,而是配合测试单元框架的一个工具。由于前端浏览器众多,就算你有live-reload这样自动化工具,但是还是要手动打开各种浏览器,手动把你的单元测试在各个浏览器都运行一遍。这个工具目的是目的就是让电脑能自动化打开各种浏览器,然后把单元测试在各个浏览器中自动运行一遍,让这个步骤也能自动化了。
13.clean-css (grunt cssmin), 我用的是grunt cssmin,但是grunt cssmin实际上背后使用的是clean-css工具,这个工具就是用来压缩精简css的,让css文件大小更小。

⑶ 前端开发常用哪些工具软件

前端开发的编译器在选择上还是很多的。在学校里,老师主要讲三个前端开发软件:

1、WebStorm

帮助编写HTML、CSS、Less、Sass和Stylus代码,并且支持Node.js和主流框架,如React、Angular、Vue.js、Meteor等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。但是付费软件。

2、IntelliJ idea

页面很简单,乍一看像是一个记事本,它也确实可以当记事本用。有很多特色插件可以使用,支持多种编程语言的语法高亮显示,具有代码折叠功能。

2、HBuilderX

HBuilderX是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。HBuilder的编写用到了Java、C、Web和Ruby。HBuilder本身主体是由Java编写。是HBuilder下一代版本,具有轻便、适合vue框架的特点。

⑷ 比较厉害的外国前端程序员有哪些

1. Jon Skeet

个人名望:程序技术问答网站Stack Overflow总排名第一的大神,每月的问答量保持在425个左右。

个人简介/主要荣誉:谷歌软件工程师,代表作有《深入理解C#(C# In Depth)》。

网络上对Jon Skeet的评价:

“他根本不需要调试器,只要他盯一下代码,错误之处自会原形毕露。”
“如果他的代码没有通过编译的时候,编译器就会道歉。”
“他根本不需要什么编程规范,他的代码就是编程规范。”

2. Gennady Korotkevich

个人声望:编程大赛神童

个人简介/主要荣誉:年仅11岁时便参加国际信息学奥林比克竞赛,创造了最年轻选手的记录。在2007-2012年间,总共取得6枚奥赛金牌;2013年美国计算机协会编程比赛冠军队成员;2014年Facebook黑客杯冠军得主。截止目前,稳居俄编程网站Codeforces声望第一的宝座,在TopCoder算法竞赛中暂列榜眼位置。

网络上对Gennady Korotkevich的评价:

“一个编程神童。”
“他太令人惊讶了,他相当于我在白俄罗斯建立了一支强大的编程队伍”
“彻底的编程天才”

3. Linus Torvalds

个人名望:linux之父

个人简介/主要荣誉:

Linux和Git之父,一个开源的操作系统;
1998年EFF(电子前沿基金会)先锋奖得主;
2000年英国计算机学会Lovelace奖章得主;
2012年千禧技术奖得主;
2014年IEEE(电气和电子工程师协会)计算机学会先锋奖得主;
2008年入选计算机历史博物馆名人堂;
2012年入选互联网名人堂。

网络上对Linus Torvalds的评价:

“他简直优秀得无与伦比。”

4. Jeff Dean

个人名望:谷歌搜索索引技术的幕后大脑。

个人简介/主要荣誉:谷歌大规模分布式计算系统的设计师,例如:站点爬行,索引与搜索,在线广告,MapRece,BigTable以及Spanner(分布式数据库)。2009年进入美国国家工程院;2012年美国计算机协会SIGOPS Mark Weiser Award以及Infosys Foundation Award奖项得主。
网络上对Jeff Dean的评价:

“使数据挖掘取得了突破性发展。”
“能够在各项工作都已安排得满满的情况下,仍能构思、创作、发布出MapRece以及BigTable这些令人赞叹不已的工具。”

5. John Carmack

个人名望:第一人称射击游戏经典师祖《Doom》(毁灭战士)之父

个人简介/主要荣誉:id Software公司联合创始人,制作了很多脍炙人口的游戏,如:《德军司令部》(Wolfenstein 3D,又名《刺杀希特勒》)、《Doom》(毁灭战士)、《Quake》(雷神之锤)。引领了很多计算机显示领域的新技术,包括:adaptive tile refresh(切片适配更新)、binary space partitioning(二元空间分割)、surface caching(平面缓存);2001年进入互动艺术与科学学院名人堂;2010年收获游戏开发者精选奖终身成就奖殊荣。

网络上对John Carmack的评价:

“制作了很多革命性的第一人称射击游戏,影响了一代又一代的游戏设计者。”
“他能在一周内就完成任何的基础设计工作。”
“他是会编程的莫扎特。”

⑸ web前端和C++哪个更好

对大多数互联网产品项目来说,仅仅是因为其它语言在开发成本和运行速度间平衡地更好。然鹅,C/C++并不是绝对的不适合Web开发。对计算量大又想高效的前后端应用,C/C++可能更合适。
从后端来看,完全可以用C/C++来开发。Google的很多后端业务仍然用的C++。C++的web开发工具和框架虽没有PHP、Node.js、Ruby on Rail等丰富,但也有Wt(webtoolkit.eu),CppCMS等框架可供选择。如果C++玩了几十年,炉火纯青,使用C++和各种库可能比上手一个新的语言生态更高效。也可以仅使用C++写一个模块通过Node.js调用。总之,在Web后端上C/C++相对其它语言并没什么劣势,只是其它语言的学习成本有时低一些罢了。从前端来看,由于浏览器使用JavaScript作为脚本语言,C/C++无法直接在浏览器里运行。并且,经过20多年的积攒,JS已经形成了一个完整的生态环境和开源社区。各种JS框架给苦逼的码农们省下了不少头发和把妹撩汉的时间,如果有对象的话
先别急着怼我,等我说完这段再怼。今年Web Assembly已经全面落户最新的Chrome、Firefox、Edge、Safari等主流浏览器。可以将C/C++源码编译成wasm二进制文件直接在浏览器里高速运行(使用Emscripten编译更加便捷)。对很多前端应用来说,使用C/C++加速可能并没有必要。但是如果想要在前端产品中加入机器视觉,自然语言处理,机器学习等模块,WebAssembly将成为一个极好的选择。
十年前,各大浏览器优化加速JS引擎促进了JS前端直到全栈开发的发展。相信Web Assembly将强大的C/C++性能和几十年历史积淀的生态带入Web,会在之后的几年里掀起又一轮Web应用的创新浪潮

⑹ Dev-C++的历史发展

C++是从C语言中发展而来的。C语言是1972年由美国贝尔实验室(AT&TBell)的D.M.Ritchie研制成功的。它不是为了初学者设计的,而是为计算机专业人员设计的。最初它是作为写UNIX操作系统的一种工具,在贝尔实验室内部使用。后来C语言不断改进,人们发现它功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多优点,特别适合于写系统软件,因此C语言从实验室走向美国,从美国走向世界。到20世纪70年代,它已风靡全世界。无论是在中国还是在外国,C语言都成为了计算机开发人员的基本功。
但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。C语言是结构化和模块化的语言,它是面向过程的。在处理较小规模的程序时,程序员用C语言还是比较得心应手。但是当问题比较复杂、程序的规模比较大时,结构化程序的设计方法就显出它的不足。
为了解决软件设计的危机,在20世纪80年代,人们提出了面向对象的程序设计(object oriented programming,OOP),需要设计出能支持面向对象的程序设计方法的新的语言。在实践中,人们发现由于C语言是如此的深入人心,使用如此广泛,面对程序设计方法的革命,最好的办法不是另外发明一种语言去代替它,而是在它原有的基础上加以发展。在这种形式下,C++应运而生。C++是由贝尔实验室(AT&TBell)的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。
AT&TBell发布的第一个Dev-C++编译系统实际上是一个预编译器(前端编译器),真正的Dev-C++程序是在1988年诞生的。
C++中提供丰富的STL模板库,不仅适合算法竞赛,同样适合软件开发。

⑺ 编译器的发展史

编译器
编译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能识别,运行的低级机器语言的程序。编译器将源程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源程序一般为高级语言(High-level language),如Pascal,C++等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。

一个现代编译器的主要工作流程如下:

源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables)
目录 [隐藏]
1 工作原理
2 编译器种类
3 预处理器(preprocessor)
4 编译器前端(frontend)
5 编译器后端(backend)
6 编译语言与解释语言对比
7 历史
8 参见

工作原理
翻译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器言)。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。

典型的编译器输出是由包含入口点的名字和地址以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序。

编译器种类
编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。“源码到源码编译器”是指用一种高级语言作为输入,输出也是高级语言的编译器。例如: 自动并行化编译器经常采用一种高级语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语言构造进行注释(如FORTRAN的DOALL指令)。

预处理器(preprocessor)
作用是通过代入预定义等程序段将源程序补充完整。

编译器前端(frontend)
前端主要负责解析(parse)输入的源程序,由词法分析器和语法分析器协同工作。词法分析器负责把源程序中的‘单词’(Token)找出来,语法分析器把这些分散的单词按预先定义好的语法组装成有意义的表达式,语句 ,函数等等。 例如“a = b + c;”前端词法分析器看到的是“a, =, b , +, c;”,语法分析器按定义的语法,先把他们组装成表达式“b + c”,再组装成“a = b + c”的语句。 前端还负责语义(semantic checking)的检查,例如检测参与运算的变量是否是同一类型的,简单的错误处理。最终的结果常常是一个抽象的语法树(abstract syntax tree,或 AST),这样后端可以在此基础上进一步优化,处理。

编译器后端(backend)
编译器后端主要负责分析,优化中间代码(Intermediate representation)以及生成机器代码(Code Generation)。

一般说来所有的编译器分析,优化,变型都可以分成两大类: 函数内(intraproceral)还是函数之间(interproceral)进行。很明显,函数间的分析,优化更准确,但需要更长的时间来完成。

编译器分析(compiler analysis)的对象是前端生成并传递过来的中间代码,现代的优化型编译器(optimizing compiler)常常用好几种层次的中间代码来表示程序,高层的中间代码(high level IR)接近输入的源程序的格式,与输入语言相关(language dependent),包含更多的全局性的信息,和源程序的结构;中层的中间代码(middle level IR)与输入语言无关,低层的中间代码(Low level IR)与机器语言类似。 不同的分析,优化发生在最适合的那一层中间代码上。

常见的编译分析有函数调用树(call tree),控制流程图(Control flow graph),以及在此基础上的 变量定义-使用,使用-定义链(define-use/use-define or u-d/d-u chain),变量别名分析(alias analysis),指针分析(pointer analysis),数据依赖分析(data dependence analysis)等等。

上述的程序分析结果是编译器优化(compiler optimization)和程序变形(compiler transformation)的前提条件。常见的优化和变新有:函数内嵌(inlining),无用代码删除(Dead code elimination),标准化循环结构(loop normalization),循环体展开(loop unrolling),循环体合并,分裂(loop fusion,loop fission),数组填充(array padding),等等。 优化和变形的目的是减少代码的长度,提高内存(memory),缓存(cache)的使用率,减少读写磁盘,访问网络数据的频率。更高级的优化甚至可以把序列化的代码(serial code)变成并行运算,多线程的代码(parallelized,multi-threaded code)。

机器代码的生成是优化变型后的中间代码转换成机器指令的过程。现代编译器主要采用生成汇编代码(assembly code)的策略,而不直接生成二进制的目标代码(binary object code)。即使在代码生成阶段,高级编译器仍然要做很多分析,优化,变形的工作。例如如何分配寄存器(register allocatioin),如何选择合适的机器指令(instruction selection),如何合并几句代码成一句等等。

编译语言与解释语言对比
许多人将高级程序语言分为两类: 编译型语言 和 解释型语言 。然而,实际上,这些语言中的大多数既可用编译型实现也可用解释型实现,分类实际上反映的是那种语言常见的实现方式。(但是,某些解释型语言,很难用编译型实现。比如那些允许 在线代码更改 的解释型语言。)

历史
上世纪50年代,IBM的John Backus带领一个研究小组对FORTRAN语言及其编译器进行开发。但由于当时人们对编译理论了解不多,开发工作变得既复杂又艰苦。与此同时,Noam Chomsky开始了他对自然语言结构的研究。他的发现最终使得编译器的结构异常简单,甚至还带有了一些自动化。Chomsky的研究导致了根据语言文法的难易程度以及识别它们所需要的算法来对语言分类。正如现在所称的Chomsky架构(Chomsky Hierarchy),它包括了文法的四个层次:0型文法、1型文法、2型文法和3型文法,且其中的每一个都是其前者的特殊情况。2型文法(或上下文无关文法)被证明是程序设计语言中最有用的,而且今天它已代表着程序设计语言结构的标准方式。分析问题(parsing problem,用于上下文无关文法识别的有效算法)的研究是在60年代和70年代,它相当完善的解决了这个问题。现在它已是编译原理中的一个标准部分。

有限状态自动机(Finite Automaton)和正则表达式(Regular Expression)同上下文无关文法紧密相关,它们与Chomsky的3型文法相对应。对它们的研究与Chomsky的研究几乎同时开始,并且引出了表示程序设计语言的单词的符号方式。

人们接着又深化了生成有效目标代码的方法,这就是最初的编译器,它们被一直使用至今。人们通常将其称为优化技术(Optimization Technique),但因其从未真正地得到过被优化了的目标代码而仅仅改进了它的有效性,因此实际上应称作代码改进技术(Code Improvement Technique)。

当分析问题变得好懂起来时,人们就在开发程序上花费了很大的功夫来研究这一部分的编译器自动构造。这些程序最初被称为编译器的编译器(Compiler-compiler),但更确切地应称为分析程序生成器(Parser Generator),这是因为它们仅仅能够自动处理编译的一部分。这些程序中最着名的是Yacc(Yet Another Compiler-compiler),它是由Steve Johnson在1975年为Unix系统编写的。类似的,有限状态自动机的研究也发展了一种称为扫描程序生成器(Scanner Generator)的工具,Lex(与Yacc同时,由Mike Lesk为Unix系统开发)是这其中的佼佼者。

在70年代后期和80年代早期,大量的项目都贯注于编译器其它部分的生成自动化,这其中就包括了代码生成。这些尝试并未取得多少成功,这大概是因为操作太复杂而人们又对其不甚了解。

编译器设计最近的发展包括:首先,编译器包括了更加复杂算法的应用程序它用于推断或简化程序中的信息;这又与更为复杂的程序设计语言的发展结合在一起。其中典型的有用于函数语言编译的Hindley-Milner类型检查的统一算法。其次,编译器已越来越成为基于窗口的交互开发环境(Interactive Development Environment,IDE)的一部分,它包括了编辑器、连接程序、调试程序以及项目管理程序。这样的IDE标准并没有多少,但是对标准的窗口环境进行开发已成为方向。另一方面,尽管近年来在编译原理领域进行了大量的研究,但是基本的编译器设计原理在近20年中都没有多大的改变,它现在正迅速地成为计算机科学课程中的中心环节。

在九十年代,作为GNU项目或其它开放源代码项目的一部分,许多免费编译器和编译器开发工具被开发出来。这些工具可用来编译所有的计算机程序语言。它们中的一些项目被认为是高质量的,而且对现代编译理论感性趣的人可以很容易的得到它们的免费源代码。

大约在1999年,SGI公布了他们的一个工业化的并行化优化编译器Pro64的源代码,后被全世界多个编译器研究小组用来做研究平台,并命名为Open64。Open64的设计结构好,分析优化全面,是编译器高级研究的理想平台。

编译器是一种特殊的程序,它可以把以特定编程语言写成的程序变为机器可以运行的机器码。我们把一个程序写好,这时我们利用的环境是文本编辑器。这时我程序把程序称为源程序。在此以后程序员可以运行相应的编译器,通过指定需要编译的文件的名称就可以把相应的源文件(通过一个复杂的过程)转化为机器码了。

编译器工作方法
首先编译器进行语法分析,也就是要把那些字符串分离出来。然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。最后生成的是目标文件,我们也称为obj文件。再经过链接器的链接就可以生成最后的可执行代码了。有些时候我们需要把多个文件产生的目标文件进行链接,产生最后的代码。我们把一过程称为交叉链接。

⑻ 开篇:XLA是什么

XLA (Accelerated Linear Algebra)是专用于机器学习的编译器,机器学习的运算中99%都是向量乘以矩阵、矩阵乘以矩阵的计算,XLA是专门用来优化这些计算的。

举个例子,运行在GPU上的 model_fn 函数会顺序调用 multiply 、 add 和 rece_sum 这三个op,而且 multiply ,也就是 y * z 的计算结果会先从GPU拷贝回host,再拷贝到device作为 add 的input,同样的,add的计算结果也会以相同的方式传递给下一个op。

显然,对于整个函数来说,将中间变量在host和device间来回倒腾是没有意义的。因此,如果把函数看作一个op,那在计算中产生的中间结果就不必返回到host,少了数据传输的时间开销,就可以大幅提升运算效率。

这种将多个op融合成一个op的方法就称为 fuse ,当前fuse的技术路线有:

XLA的优化当然不只是fuse,还有对计算图的优化,包括删除无效指令、减少内存占用、替换复杂指令等优化。下图是官方提供的性能报告,经XLA优化过后,Tensorflow BERT MLPerf的训练性能提升了~7倍。除了Tensorflow外,XLA还支持 JAX 、 Julia 、 PyTorch 和 Nx 等前端。

jit 是指在首次运行时将函数编译成二进制程序,后续再调用该函数时直接运行先前编译好的程序而非python code。 @tf.funciton 修饰的函数(包括它的子函数)会做 jit 。除非signature发生了变化,也就是input的shape或dtype和编译时不同,否则 get_MSE 是不需要重复编译的。

@tf.function 将函数内的ops替换成一组( XlaCompile , XlaRun ) ops,在运行时前者负责编译,并将编译结果-- executable 保存到cache,后者负责运行executable。如果cache里已经有编译好的程序就不需要编译了,例如 get_MSE(tf.constant(3.0), tf.constant(4.0)) 。

XLA编译器支持的语言(IR)是HLO(High Level Operations),顾名思义这些语言是由一个个op组成,因此,我们在编译前需要先从python code中提取出所有ops,再将它们转换成HLO。

JAX通过tracing的方式,从 @jax.jit 修饰的函数中提取ops,这些ops通过 jaxpr 来表示。然后再通过XLA client提供的API为ops生成相应的HLO。PyTorch/XLA也是采用类似的方法来生成HLO。

Tensorflow的 tf2xla 为每个 Op 创建了一个同名的 XlaOp 用于生成HLO, XlaOp 派生于 Op ,使用相同的注册机制,因此,只要把要编译的子图根据拓扑排序运行一遍就能生成它的HLO。

HLO先经过一系列 pass 优化后再将HLO lowering成ISA,最后将编译好的二进制封装到 executable 。

除了二进制程序,它还包含运行该程序所需要的infos和options。调用 executable.run() 就可以执行计算图。

⑼ 目前主流的C语言编译软件是什么

C语言相比其他很多新兴的、复杂的语言,语法还是简单一些,较好实现的。

所以在C语言几十年的发展中出现了各式各样的编译器,还有一些容易被误解为编译器的IDE。


这里列举几个主流的:

  1. GCC

    毫无疑问,GCC几乎是unix及linux系统中最通用的编译器套件,几乎所有的linux发行版都预装了GCC作为C语言的默认编译器。除了对C语言的支持,GCC还支持C++、Objective-C等多种语言。GCC早在1987就由Richard Stallman作为GNU计划的一部分发布。

  2. Clang

    Clang是近几年新兴的C/C++以及Objective-C的编译器,Apple是其主要投资者,其最初的开发者已加盟Apple。虽说是新兴,但其对C/C++标准的支持不亚于GCC等老牌编译器,并且外部接口和GCC完全兼容,并且因其模块化、错误提示完善等优点已经越来越受到重视。一些如FreeBSD等项目已将clang作为默认编译器。

    其实Clang并不是一个完整的编译器,而是作为同一批开发者开发的另一个备受关注的虚拟机(类似于JVM)的llvm的一个前端开发,只是负责将C语言源码编译为llvm IR的中间语言,再由llvm编译为目标代码,这样做可以让其可移植性更好。

  3. Microsoft Visual C++

    作为拥有可视化集成编程系统的编译器,VC被很多使用Windows作为开发环境的初学者使用。详见网络的介绍

    http://ke..com/view/2070966.htm?fromtitle=vc&fromid=7792954&type=syn#viewPageContent


⑽ 程序猿专用十大在线编译器(IDE)整理

1. CodeSandbox(基于 React 的在线代码沙盒平台) 我常用的

① 主流的脚手架都支持,比如在线create-react-app,vue-cli等(在线 fork 修改),支持 github 登录(项目导入),也支持 cli 上传例子,例子可以在线访问和下载,当然也支持内嵌到其他博客等网页中。

② 地址:https://codesandbox.io/

③ 图示

2. CodePen(前端代码编辑运行的网站)

① CodePen 是一个完全免费的前端代码托管服务,主要功能有:

② 地址:https://codepen.io/

③ 图示

3. JSRUN(支持手机端的在线JS编辑器)

① jsrun是一款支持手机端的在线JS编辑器, HTML/CSS/Javascript在线代码运行工具,js代码在线测试调试,是runjs的升级版支持vue.js/angular.js的在线编辑器

② 地址:http://jsrun.net/

③ 图示

4. jsFiddle(前端代码编辑运行的网站)

① jsFiddle 是一个Web开发人员的练习场,可在线编辑和测试 HTML、CSS、JavaScript代码片段。在 jsFiddle 编辑的代码,可以保存,也可分享给其他人,还可嵌入到其他网页

② 地址:https://jsfiddle.net/

③ 图示

5. Ideone(C和C++的在线编译和调试工具,支持其他的60种语言) 我常用

① Ideone是C和C++的在线编译和调试工具,支持其他的60种语言。这个工具提供许多强大的功能,允许程序员快速高效的编译源代码

② 地址:https://www.ideone.com/

③ 图示

6. Codechef(C,C ++和Java的在线编译工具)

① 它支持C,C ++和Java,非常接近真正的桌面IDE。这是超快速和易于使用。适合于课堂和作业的学生,练习面试问题。

② 地址:https://www.codechef.com/ide

③ 图示

7. JDoodle (C,C ++和Java的在线IDE)

① 支持协作代码。它只是从一个简单的文本区域开始,您可以粘贴代码,然后单击运行。您可以更改命令行参数并在运行该程序之前设置stdin。最适合新的在线编辑器不支持的许多旧语言。

② 地址:https://www.codechef.com/ide

③ 图示

8. OnlineGDB (在线C,C ++,Java,PHP编译器) 我常用

① 它支持C,C ++,PHP和Java编译器。OnlineGDB的独特功能是,您可以逐步调试您的代码。一旦代码被写入,它可以很容易地格式化,使其看起来不错。

② 地址:https://www.onlinegdb.com/

③ 图示

9. GCC资源管理器

① GCC编译器资源管理器是一个交互式在线编译器,它显示编译后的C++、RISE、GO(以及更多)代码的汇编输出。

② 地址:https://gcc.godbolt.org/

③ 图示

10. plnkr edit在线编辑器

① js的在线编辑器。

② 地址:http://plnkr.co/edit/

③ 图示

热点内容
数据解锁密码有什么用 发布:2025-07-15 03:35:27 浏览:195
腾讯公认的密码是多少 发布:2025-07-15 03:34:44 浏览:625
代码txt怎么改脚本 发布:2025-07-15 03:30:20 浏览:288
声道数增加存储容量也相应 发布:2025-07-15 03:16:19 浏览:271
夸克缓存在哪里 发布:2025-07-15 03:16:11 浏览:708
座机查通话记录服务密码是多少 发布:2025-07-15 03:14:46 浏览:342
大学gpa算法 发布:2025-07-15 03:14:45 浏览:922
mx5是安卓哪个版本 发布:2025-07-15 03:05:07 浏览:59
linux文件夹剩余空间 发布:2025-07-15 03:04:24 浏览:917
苹果id密码如何输入 发布:2025-07-15 03:01:09 浏览:955