BrainFuck语言 极简的一种图灵完备的语言,由Urban Müller在1993年创造,由八个指令组成(如下表).工作机制与图灵机非常相似,有一条足够长的纸带,初始时纸带上的每一格都是0,有一个数据读写头指向纸带的初始位置,读写头的行为由指令指示. 指令 含义 > 指针向右移动一位 < 指针向左移动一位 + 指针所指位置的值增加1字节 - 指针所指位置的值减少1字节 . 将指针所指位置的值按ASCII表输出 , 接受1字节的输入,存储在当前指针所指位置 [ 当指针当前处的值为0时,跳转到…
当今几乎所有的实用的编译器/解释器(以下统称编译器)都是用 C 语言编写的,有一些语言比如 Clojure,Jython 等是基于 JVM 或者说是用 Java 实现的,IronPython 等是基于 .NET 实现的,但是 Java 和 C# 等本身也要依靠 C/C++ 来实现,等于是间接调用了 C.所以衡量某种高级语言的可移植性其实就是在讨论 ANSI/ISO C 的移植性. C 语言是很低级的语言,很多方面都近似于汇编语言,在<Intel 32 位汇编语言程序设计>一书中,甚至介绍了手工…
前言 先来啰嗦几句,身边的朋友,同事都喜欢在博客上记录自己在学习计算机编程技术路程上的一些问题和心得.就我个人而言,这是个好习惯,特别是在计算机编程领域,技术方向种类繁多,永无止境.所以,我也开始我人生中第一份博客,希望看到的朋友多多鼓励和讨论,在此谢过.对于计算技术,越是深入越越数学挂钩,想达到大神级别,嗯,我是有自知之明的.计算机技术虽然之多,并不需要我们每一个领域每一项技术都特别的精通.当然,能做到,我由衷的佩服和羡慕,只要我们专注于某些技术领域并能达到“精通”两个字就已经很不容易,毕竟精…
现在使用Java语言的人很多,但是了解Java语言实现的人非常少.如果要研究Java语言的实现,推荐研究Javac和虚拟机HotSpot的源代码实现,其中Javac相当于Java编译的前端,HotSpot是Java语言运行的基础.弄懂了Javac与HotSpot,对Java语言也就达到了“精通”的地步了. 下面我结合自己的研究过程总结一下,如果要研究Javac与HotSpot,目前可参考的一些资料.论文. 1.如何研究Javac Java为了实现跨平台,首先会将Java源代码翻译为Java字节码…
本文章适合那些想入门Go语言,却又不知道如何搭建自己的第一个HelloWorld的同学. 推荐几个Go语言相关学习网站: C语言中文网: http://c.biancheng.net/golang/ Go语言中文网(上面有官方中文参考文档):https://studygolang.com/ 本文章使用的编译器为GoLand,不使用此编译器的可以划过(虽然还有其他免费IDE,但是个人感觉GoLand较为好用). 一:Go语言背景 首先介绍一些关于Go语言的背景知识,内容大多百度来的,已经了解的同学…
还要求生成的代码比较快和短. 当然stackexchange上面给出了实现,java的 http://codegolf.stackexchange.com/questions/5418/brainfuck-golfer/5440#5440…
看到标题,不出意外的话,你肯定开始骂我了:**标题党,什么编程语言五分钟就能学会? 其实我本来也是不相信的,但是学过了才知道这是真的. 1.Brainfuck 看到这个小标题,不要误会,我没有骂人. 这就是今天文章的主人公,也就是让你们五分钟能够学会的一门编程语言--Brainfuck. Brainfuck,简称BF,是一种极小化的编程语言,由Urban Müller在1993年创造. 目标是创建一种简单的.可以用最小的编译器来实现的.符合图灵完全思想的编程语言. PS:不得不佩服大佬命名方式,…
首先向C语言之父Dennis MacAlistair Ritchie致敬! 当今几乎所有的实用的编译器/解释器(以下统称编译器)都是用C语言编写的,有一些语言比如Clojure,Jython等是基于JVM或者说是用Java实现的,IronPython等是基于.NET实现的,但是Java和C#等本身也要依靠C/C++来实现,等于是间接调用了调用了C.所以衡量某种高级语言的可移植性其实就是在讨论ANSI/ISO C的移植性. C语言是很低级的语言,很多方面都近似于汇编语言,在<Intel32位汇编语…
自序 编译原理与技术的一整套理论在整个计算机科学领域占有相当重要的地位,学习它对程序设计人员有很大的帮助.我们考究历史会发现那些人人称颂的程序设 计大师都是编译领域的高手,像写出BASIC语言的BILL GATES,SUN的JAVA之父等等,在编译上都有很深的造诣.曾经在世界首富宝座上稳坐多年的比尔.盖茨也就是从给微机编写Basic语言编译器起家 的,也正是这个BASIC编译器为比尔·盖茨和保罗·艾伦的微软帝国奠定了基础.正是这个编写Basic语言编译器的经历,开启盖茨的辉煌职业生涯. 编译器是…
GCC简介    Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作品之一.gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%.gcc编译器能将C.C++语言源程序.汇程式化序和目标程序编译.连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件. 在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行…