`
andyhu1007
  • 浏览: 193927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
     编译的过程大多是词法分析、语法分析和语义分析的过程。当然还包括代码优化和生成的过程,如图1所示。        词法分析 :lexical analysis is the process of converting a sequence of characters into a sequence of tokens。比如,通过词法分析,此程序语言:net_worth_future = (assets - liabilities);将转成 lexical token stream:   NAME "net_worth_future" EQUALS OPEN_PA ...
    项目中有一个csv文件因为是latin1 encoded,所以解析就会出现错误。       解决方案:可以通过Iconv.iconv("UTF-8", "latin1", file.read)把stream转化成UTF-8格式(rails的默认编码是UTF-8)。       局限:当然此种方法的局限是限定了文件的编码只能是latin1的时候才能解析正确。当然,如果没有特殊字符,其他的一些ASCII字符(single byte character)在两种编码之间会转换正确。但一当文件中有其它编码的特殊字符,那就歇菜了。       更进一步:使用 ...
    <script src="/javascripts/jquery.js?1212761793 " type="text/javascript"></script>         "What are those numbers Rails puts after my image, css, and javascript files?"                                                                               — Som ...
       Composed Method mandates that all public methods read like an outline of the steps to perform. The actual steps are implemented as private methods. Composed method is a way of factoring your code to keep it cohesive and make it easier to spot candidates for code reuse. And TDD predisposes ...
1. 每个tab都是一个单独的进程。好处是一个tab的任何问题,都不会导致关闭整个浏览器此类问题。同时,可以有效控制内存碎片。   2. v8,强劲的javascript引擎。
  Cache?首先记住什么应该cache,什么不应该cache。当你的页面经常变化时,还需cache么?     Cache?还得关心使用什么cache机制。Time Based or Change Based?对于新浪此类的首页,访问量巨大,而且几分钟内不会关心变化,当然用time based。     Cache? 最后,使用什么cache技术?FileCache还是MemoryCache?     现在starwood系统里使用的是FileCache。     FileCache如何定义key(文件名)?key只由页面的元素(变化的元素)组成,它的命名方式决定了cache的粒度。     ...
一个数据库操作需要半个小时,并且在一个transaction 内,导致其它的操作因为lock 而timeout 。   为了解决这个问题,找了DBA 了解了数据锁的知识:   1. 两种类型的锁: locks:      共享的(S) 锁允许一个事务去读一行(tuple )。      独占的锁(X) 允许一个事务更新或删除一行。   2. 表锁定,页锁定,行锁定?   看看mysql 使用的是什么存储引擎,以区分对锁定的支持:SHOW TABLE STATUS FROM database_name 。ok ,是InnoDB ,它实现标准行级锁定。 ...
    经常遇到这样的问题:ssh连接到远端,执行一个需要很长时间的任务,等吧。不管你是用&让它跑到后台去运行也好,怎么也好,你都得等着,直到运行完,才能关闭你的窗口。为什么?因为如果一旦你的控制终端关闭了,任务就停止了。原因?原因是因为linux有进程组的概念,一个会话终端开启的所有进程都是此会话终端进程组长的子进程。       解决?用nohup,但是只能应付简单的命令。放心,我们还有强大的screen,到这里 好好学学吧:)       谢谢大熊推荐,学到一点好东西。
   C++语言的运行时多态性的基础是虚函数机制,指向基类的指针可以指向它的任何派生类,在实现设计模式时充分利用了C++这一特性,结合继承机制,建立类和对象的层次关系,使C++最大程度的具有动态特性,将绑定关系尽可能推迟到运行时确定。      在GoF的23种模式中,部分设计模式是专门为静态语言提出的,有些模式在动态语言中语言一级就提供直接的支持,如Command模式,动态语言提供的函数式编程将函数本身看作是类对象。      1. 工厂模式      用C++语言实现的工厂方法仍然存在局限性,这种局限性不利于构建可复用的软件。因为创建所有的产品类型都是通过Make接口的,为了保持Make接口 ...
   普遍认为Python的开发效率要比Java高出5-10倍。那么动态语言为什么会在开发效率方面具有天独厚的优势?      1. 易学易用,编程人员可快速上手      Python、Perl、Ruby等动态语言具有简洁的语法规则,交互式的编程环境, ...
1. 在静态语言中,声明的目的是为了告诉编译器所使用的变量“是什么”,使类型检查可以在编译阶段静态地进行,尽量减少执行时的类型检查,提高执行效率,但缺乏灵活性。   2. 而在动态语言中,变量被设计成无类型的,变量的类型可以按需改变,同一个变量既可作为整型的,也可作为字符串,还可用来定义函数。那么如何保证所执行的操作是否接收到类型正确的参数呢?在运行时进行动态类型检查机制解决了类型安全这一问题。动态类型检 查通过在每个数据对象中保存一个类型标签表明该数据对象的类型,比如在表达式C=A+B中,A和B的类型在程序运行时确定,也可以在运行时改变,所以每次 执行 + 操作时都要根据类型标签对A和B的类型 ...
1. 语言的动态特性表示语言具有在运行时确定绑定关系的性质。   2. “静态”是一个相对的概念,任何程序设计语言都可以看作具有某种程度的动态特性。一个变量能够在运行时改变自身的值,可以说它具有动态特性,比如最简单的赋值语句: char ch; int  m; ch = cin.get();//从输入流中接收一个字符 m  =  func();  //将func的返回结果赋给m 对字符型变量ch与值的绑定关系要推迟到程序运行时检测到标准I/O流的输入数据才能确定下来,整型变量m的值也要到程序运行时执行了函数func后才能确定。   3. 以下都是一些动态特性:       a. 在运行时进行的 ...
1. 绑定和绑定时间是程序设计语言中的十分重要的概念。在设计一门新的语言时,首先要确定的就是这种语言的绑定以及绑定发生的时间,为语言的特性和实现定下了一个基调。   2. 一段程序实际上是由不同元素组成的,这些元 ...
1. 在具体计算机上实现一种语言,首先要确定的是表示该语言语义解释的虚拟计算机,一个关键的问题是程序执行时的基本表示是实际计算机上的机器语言还是虚拟机 的机器语言。这个问题决定了语言的实现。根据这个问题的回答,可以将程序设计语言划分为两大类:编译型语言和解释型语言。   2. 由编译型语言编写的源程序需要经过编译、汇编和链接才能输出目标代码,然后机器执行目标代码,得出运行结果,目标代码由机器指令组成,一般不能独立运行, 因为源程序中可能使用了某些汇编程序不能解释引用的库函数,而库函数代码又不在源程序中,此时还需要链接程序完成外部引用和目标模块调用的链接任务,最后 输出可执行代码。C、C++、Fo ...
1.  实现一种计算机程序设计语言时,运行时的数据结构和程序执行中的算法定义了一台虚拟机。   2.  虚拟机的机器语言是由语言翻译器所产生的可执行代码,如果语言是编译型的,则它的形式就是实际的计算机二进制代码,实际的机器可以直接执行;如果语言是解释型的,则结构和形式可以是任意的。   3.  虚拟机的数据结构就是程序执行时的数据结构,基本操作是那些在执行时实际执行的操作。   4.  编译型语言C所定义的虚拟机的机器代码是二进制代码。C源程序要生成可执行程序需要经过C编译器编译成目标机器代码,不同的平台要编译成不同的目标代码。   5.  Java虚拟机是Java程序的运行环境,Java虚拟机 ...
Global site tag (gtag.js) - Google Analytics