编译器,谈.NET,由编译器开始谈起

(这系列文章主要以我的读书笔记为基础写成的,因此可能跳跃性比较大。我想写的东西不只是包含一些结论,还包括了自己在学习时的所思所想。其中肯定有不妥之处,希望能得到指正。) 编译器是什么?这个问题在我自学的开始阶段的确困扰了我很久。简单的说,就是把高级语言翻译成低级语言的东西。高级语言我喜欢叫“源代码”。就如同一般的翻译一样,翻译的东西可能会夹带写译者的想法,所以你写的东西和... [阅读全文]

编译器开发,自己动手开发编译器(零)序言

好久没写博客了,一来是自己懒,二来是最近一段时间都没有做什么自己认为可以分享的东西。这几天刚好重拾了一个一直打算做但没做的编译器类库,算是积累了一点小小的经验吧。本来我已经发到了Github上,也在微博上零星介绍了一些,但是我最终意识到,如果不写一个详细的文档,别人就不能容易地学习、了解和使用它。甚至于我自己也可能会把这次研究出来的小小成果给忘了。所以,必须下决心动一动笔头,也算是对老长时间不些博... [阅读全文]

编译器,编译器历史简要

http://blog.sina.com.cn/s/blog_4d39706b0100dhpt.html 一。历史背景 上世纪50年代,IBM的John Backus带领一个研究小组对FORTRAN语言及其编译器进行开发。但由于当时人们对编译理论了解不多,开发工作变得既复杂又艰苦。与此同时,Noam Chomsky开始了他对自然语言结构的研究。他的发现最终使得编译器的结构异常简单,甚至还带有... [阅读全文]

编译器,编译器处理while,for结构的小发现

在做一个日报自动报表发送项目时,因为项目是Windows服务,而且报表是每天自动发送,所以里面有这么一个函数 public void AutoReportSend() { while (true) { try { //采集时间没到,则结束。直到采集时间才开始采集作业 if (DateTime.Now 偶然情况下让我发现了一个让我觉得比较有趣的问题:我用.NET Reflector工具查看项目的e... [阅读全文]

编译器优化,记录一个问题,积累一点经验(1) —— 编译器优化

最近项目很紧,活很多,今天加班加到现在才回家。 废话不说了,前几天调程序遇到一个怪异的问题,程序运行总是会crash掉。根据打log,问题定位在这个语句上面: if(condition){ statement;}... [阅读全文]

javastring对象:Java编译器中对String对象的优化

Java编译器中对String对象的优化 首先把问题摆出来,先看这个代码: String a = "ab"; String b = "a" + "b"; System.out.println((a == b)); 打印结果会是什么?类似这样的问题,有人考过我,我也拿来考过别人(蛮好玩的,大家也可以拿来问人玩),一般答案会是以下几种: 1、true "a" + "b" ... [阅读全文]

java编译器:Java混淆编译器

近发现大家很多问题都涉及到了混淆器概念特发此贴希望在大家学习过程中有所借鉴 JAVA中文站社区门户ZH&a?;NAzw1n/ilD\YY最近试用了几个Java混淆器(Java Obfuscator)感觉没有个完全另人满意 于是想干脆自己写个得了翻了几页Java虚拟机规范标准的后突发奇想别混淆器都是在编译好 code上做文章能不能从源码直接编译成经过混淆文件呢?就这样花了个多星... [阅读全文]

gnu编译器:介绍FreeBSD中的GNU C编译器

最基本开发环境必须具备 C语言支持能力C作为种编译型高级语言这就是说运行C的前要将其先编译成可执行由机器指令构成执行因此就需要使用个编译器来对C源代码进行处理FreeBSD使用是GNUC编译器   GCC作为当前最流行、支持平台数量最多编译器其性能和效率也非常的好  按照 C语言习惯第个通常为hello.c:$ cat hello.c{prf( “ Hello, world!n &rd... [阅读全文]

c51智能反编译器:C51编译器使用心得

由于 Intel 公司 51 系列单片机广泛使用也出现了许多高级 Bepfbaiducuk9K8Bepfbaiducuk9K8 编程语言如 PL/M51 C51它们早期版本据说不够完善但现在看来 Bepfbaiducuk9K8Bepfbaiducuk9K8 是有了很大改善对于 C51我现在用了好几个月感觉很不错 Bepfbaiducuk9K8Bepfbaiducuk9K8 效率... [阅读全文]

linux2005:共创linux2005版 装完系统还要装编译器

  下个down(断点续传工具)为了方便在下文件总不能下半半文件吧!文件名: linuxdown-1.2.0.tar.gz    下完 打开 图形方式不说了在终端执行 #tar -xzvf linuxdown-1.2.0.tar.gz    是源文件装不了好象没有编译器什么cc..(装系统时也没提示不知道如何没装编译软件Software)    又下了个 gcc... [阅读全文]

gnu编译器:介绍FreeBSD中的GNU C编译器

最基本开发环境必须具备 C语言支持能力C作为种编译型高级语言这就是说运行C的前要将其先编译成可执行由机器指令构成执行因此就需要使用个编译器来对C源代码进行处理FreeBSD使用是GNUC编译器GCC作为当前最流行、支持平台数量最多编译器其性能和效率也非常的好 按照 C语言习惯第个通常为hello.c: $ cat hello.c { prf( “ Hello,... [阅读全文]

编译器:几种编译器的内存管理和LX管道的内部实现

天闛/xy忏 n 关于某个作业的地址空间大小为3K ,在内存中占4K的疑问....... 今天看软设的书,突然看到这个问题........ 在内存中,确实存在碎片的问题,一般可以采用"紧缩"的方式(搜索内存找到连续的一片3K大小的空闲内存),还有种方式就是 "分页存储管理".. 如内存有2个为2K的空闲内存,把作业划分为2K和1K 分别存储与内存那2个2K空闲区内. 所以分页的目的就是... [阅读全文]

java编译器:Java没有#ifdef的条件编译

所谓条件编译,就是程序中的某部分是否被编译,取决于某个条件成立与否。一种常见的方法是排除调试输出语句。一旦程序正常运行,开发人员就会删除这些语句,以使程序更为简洁或运行效率更高。虽然java缺乏显示的条件编译,但它有一种隐式的条件编译。 所有的java编译器都必须进行流程分析,以确保:变量必须先赋值,才能被引用;所有带返回值的函数必须提供返回值等。如果编译器发现了某个值为false的语句,编译器将... [阅读全文]

编译器:让我们和编译器一起做游戏吧

搞挂编译器是件很有趣事情编译死循环便是其中的让我们和编译器起做游戏吧~ 1、Preprocess a、Self Include(GCC _disibledevent=}; 不过利用VC某个bug(或者说特性)可以很容易写出O(na)编译时间模版: # cstddef # INNER(A3,N3,A2,N2) \ templatesize_t N3\ struct... [阅读全文]

c语言编译器:C编译器对结构空间的分配及其应用

c编译器对结构空间缺省的分配    在c语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间;各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。在缺省情况下,c编译器为每一... [阅读全文]

编译原理:加速编译

利用c++builder编译一个大的项目需要冗长的过程但是,如果你有已经调试好的forms, 你可以把他们包含到一个库中,这个库连接到项目中。这将极大的减少编译时间。具体步骤如下: 1. 建立一个新的库工程(library project). 2. 在库工程的主cpp文件中添加一行:include vcl.h 3. 按[ctrl][shift][f11]激活工程选项,确认清除了在directori... [阅读全文]

c语言编译器:中间语言(IL)和即时编译器(JIT)

对于.NET的初学者来,一个很令人困惑的问题是:从高级语言(如C#和VisualBasic)到托管语言再到机器语言究竟是一个怎样的过程。掌握这个过程也是理解.NET语言互操作性(也就是语言独立性的核心原则)的关键,并且也关系到二进制兼容性的问题。尽管本书一直尝试不探讨这些的底层细节实现而主要集中讲述如何最好地应用.NET,然而对CLR产生代码过程有一个概览对理解她的内部机理还是大有益处的。不仅如此... [阅读全文]

java模拟器:4.2.4 JAVA默认构建器

正如早先指出的那样,默认构建器是没有自变量的。它们的作用是创建一个“空对象”。若创建一个没有构建器的类,则编译程序会帮我们自动创建一个默认构建器。例如://: DefaultConstructor.javaclass Bird { int i;}public class DefaultConstructor { public static void main(Strin... [阅读全文]

ant编译:jakarta-ant的使用(java编译工具)

:介绍: ant 是jakarta个编译工具如果你了解linux/Unix下makefile你就很容易 理解ant用途了ant最适合你使用UltraEdit(EditPlus)写java然后你使用ant去编译同时javadoc ,生成个jar,war实现文件copy都可以在build.xm... [阅读全文]

java编译器:JAVA编译和运行时的类定位机制

运行JAVA时经常碰到些莫名其妙问题运行结果和预期不致这类问题定位非常麻烦很多情况下是由于在区别路径下存在同名文件那么在JAVA运行时是如何定位类文件呢?如何解决同名类问题?首先我们从JAVA编译说起JAVA运行时类查找机制同编译时只不过是运行时所有源文件已经被编译成了类文件 对JAVA源代码进行编译时分分成 3个步骤: 第:形成 3个表分别是类路径参考表表、完整限定类参考表、和通配类参考表 第 ... [阅读全文]

java反编译: 教你如何妙用EditPlus 配置Java编译环境

【-IT技术报道】初学者更适合使用文本编辑软件来学习Java,对Java有一定认识后推荐使用Eclipse,对那些要求开发效率的程序员当然首选就是JBuilder。 对于文本编辑软件我推荐EditPlus,EditPlus是很多程序员非常熟悉的编辑工具,它以占用系统资源小、操作简便灵活、支持文件类型丰富(还能自定义文件类型)等优点而被广泛使用。EditPlus除了具有编辑程序的功能,还有灵活的编... [阅读全文]

netbeans:NetBeans 6.5 对JAVA实现保存即编译

NetBeans是一个集多种编译语言和脚本语言的程序平台,我们在写java代码时每每修改都得build class觉得很烦,最新的netbeans 6.5 daily版已经让我们可以用save 来替代 build 对class文件进行更新,相信很多喜爱netBeans的程序员都很开心。顺便提一下,netBeans对python、PHP、groove、 scala支持得也越来越好,现在很希望netB... [阅读全文]
1 共1条 分1页