有没有人知道有一个工作的BCPL编译器,为当前的操作系统(我有Windows 7和Ubuntu随时可用)和x64架构编写?在Dennis Ritchie最近去世后,我第一次听说过BCPL,我对我读到的关于这种语言的一点点感到奇怪.
我之前只玩过现代的高级语言,但我认为潜入这一点计算历史是很好的.但是,我对编译器几乎一无所知,所以我不打算自己写一个.有什么建议?
在编译语言中,源代码由编译器转换为目标代码,并且不同的目标文件(如果有多个文件)由链接器链接并由加载器加载到存储器中以供执行.
如果我有一个使用解释语言编写的应用程序(例如,ruby或python),并且如果源代码是跨文件分割的,那么文件恰好是在一起的时候.换句话说,链接什么时候完成?解释语言首先是否具有连接器和装载器,还是解释器可以完成所有操作?
我对此感到困惑,无法理解它!任何人都可以对此有所启发吗?!
有prolog的编译器,但其他网站说语言本身是一种解释语言.如果prolog真的是一种解释性语言,我很困惑.有人可以澄清一下该语言究竟是什么吗?编译语言或口译语言?
据我所知,JavaScript是从服务器检索HTML文件后将在客户端执行的唯一语言.据我所知,JavaScript绝不是以任何方式编译的,因此它是一种解释性语言.
随着Web变得越来越流行,有些人说移动和桌面应用程序很快就会不复存在.
我们看到像WebGL这样的新技术,它们使用了JS.
当我为WebGL开发时,我必须进行更多优化以获得合理的性能基准,然后我需要为PC或控制台做些什么.
那么为什么我们仍然使用解释的客户端语言呢?这是一个安全问题,硬件(跨平台)问题还是因为很难在Web架构中引入如此大的变化?我知道Web开发人员对即使是最小和最简单的更改也很头疼,比如使用CSS 3,因为不是每个人都有他们的浏览器是最新的.
我是否认为混合语言比编译语言慢?我有意义还是我的假设完全错误?我绝不是JS /网络专家,请教育我.
javascript optimization interpreted-language compiled-language web
如果那里有任何语言设计师(或者只是知道的人),我很好奇为解释语言创建标准库背后的方法.具体来说,什么似乎是最好的方法?在解释语言中定义标准函数/方法,或者以编写解释器的编译语言执行这些调用的处理?
让我思考这个问题的是关于striplashes()的问题 - 就像Python中的函数一样.我的第一个想法是"为什么不定义自己的,只需在需要时调用它",但它提出了一个问题:对于这样的函数来说,让解释的语言处理这种开销是不是更好,或者它会更好编写扩展并利用解释器后面的编译语言?
language-agnostic performance language-features interpreted-language
在我所知的解释语言(Python,Perl,R,bash)中,多行注释似乎通常涉及对该语言的另一个特征的滥用(例如多行字符串).
是否存在解析类型固有的内容,解释器会使多行注释变得困难?它似乎不应该与多行字符串有很大不同.
Befunge 的设计目标之一是难以编译。然而,它很容易解释。可以用传统语言编写解释器,比如 C。要将 Befunge 程序翻译成等效的机器代码,可以将 Befunge 代码硬编码到 C 解释器中,并将生成的 C 程序编译为机器代码。或者“编译”是否意味着排除这种翻译的更受限制的东西?
为了清楚起见,通过可执行文件我并不意味着为处理器准备好字面字节.例如,当一个shebang被添加到顶部时,一个被解释且不可执行的bash脚本变得可执行,该脚本指定应该由/bin/bash
或/bin/sh
将要解释它的任何程序运行脚本.
我想知道是否可以使用Java,这在技术上不是脚本语言,但绝对不可执行.看起来Java很难,因为用户实际上没有机会在编译文件中添加shebang,而编译的java也不能来自stdin.
我对APL的工作效率如此之高,甚至有时被基准为优于C的性能感兴趣。因此,我很好奇,APL编译器为使语言如此高效而进行了哪些优化?
interpreter ×2
performance ×2
apl ×1
bcpl ×1
befunge ×1
bin ×1
comments ×1
compilation ×1
compiled ×1
executable ×1
java ×1
javascript ×1
linker ×1
optimization ×1
parsing ×1
prolog ×1
python ×1
ruby ×1
shebang ×1
web ×1