本系列导航 本系列其他文章目录请戳这里. 1.名字.约束时间(Binding Time) 在本篇博文开始前先介绍两个约定:第一个是“对象”,除非在介绍面向对象语言时,本系列中出现的对象均是指任何可以有名字的东西,比如变量.常量.类型.子程序.模块等等.第二个是“抽象的”,因为我们讨论的是语言的核心概念,所以“抽象的”具体指代的是语言特征与任何计算机体系结构分离的程度. 如果可以给名字下个定义,那么它是代表某东西的一些助记字符序列.就好比张三.李四,对应到大部分语言中一般可以等价为“标识符”.名字…
function foo() { var x = 10; return function bar() { console.log(x); }; } // "foo"返回的也是一个function // 并且这个返回的function可以随意使用内部的变量x var returnedFunction = foo(); // 全局变量 "x" var x = 20; // 支持返回的function returnedFunction(); // 结果是10而不是20 E…
<程序设计语言--实践之路(英文第三版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382234 内容简介 <程序设计语言--实践之路(第3版)>是一本很有特色的计算机教材,其核心是讨论程序设计语言的基本原理和技术.本书融合了传统的程序设计语言教科书和编译教科书的有关知识,并增加了一些有关汇编层体系结构的材料,以满足没学过计算机组织的学生们的需要.书中通过各种语言的例子,阐释了程序设计语言的重要基础概念,讨论了各种概念之…
<程序设计语言--实践之路[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382240 内容简介 <程序设计语言--实践之路(第3版)>是一本很有特色的计算机教材,其核心是讨论程序设计语言的基本原理和技术.本书融合了传统的程序设计语言教科书和编译教科书的有关知识,并增加了一些有关汇编层体系结构的材料,以满足没学过计算机组织的学生们的需要.书中通过各种语言的例子,阐释了程序设计语言的重要基础概念,讨论了各种概念之间的关系,解释了语言中…
一.深入浅出Win32多线程程序设计之基本概念[转] 引言 从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档. 理解多线程及其同步.互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和学习其它操作系统的多任务控制也非常容易.许多程序员从来没有学习过嵌入式系统领域著名的操作系统Vx…
程序设计语言--实践之路>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382240 内容简介 本书在美国大学已有使用了十余年,目前被欧美许多重要大学用于"程序设计语言"或者"软件系统"课程.本书适合高年级本科生或者一年级研究生使用,许多内容对专业程序员也很有价值.本书作者Michael Scott是计算机领域的著名学者,译者是北京大学的裘宗燕教授,他熟悉专业,译笔流畅,是一本难得的著.译双馨的佳作.…
前言: 对于程序员,学习是无止境的,知识淘换非常快,能够快速稳固掌握一门新技术,是一个程序员应该具备的素质.这里将分享本人一点点不成熟的心得. 了解一门语言,了解它的概念非常重要,但是一些优秀的设计思想需要细心和大量实践才能慢慢参悟,在这之前需要做的是能够运用它来开发,那么了解一些基础特性非常有必要,通常这些特性是需要经验积累,从各种坑中累计出来,但是还有一种看似很笨却很有效的学习方法.那就是将别人的经验记录下来,有事没事都拿出来看看,集合开发中的经验,这会非常有效. 调试工具 firebug…
JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,这篇文章主要讲解的是前面三个,后面三个下一篇文章再讲解. 01 语法 熟悉 JavaScript 历史的人应该都知道,JavaScript 的很多语法和 Java.C 语言类似,所以一些做后端的程序员上手前端很快.但是,毕竟是另一门语言,随着时间的推移,很多灵活的特性是 Java 或者 C 语言不能满足的.同样的,学完 JavaScript 的人去看其他语言也会比刚接触编程的人要容易. 如果要推荐一门语言,我的建…
2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触的开发语言是如此的强大,忧虑的是万一哪一天Java市场占有率不再,那我们何去何从呢(Oracle收购Sun后这种忧虑日深,Oracle起诉谷歌,更是对于开源的Java开源的一种忧虑)?不过这都是小程序员的我来说是杞人忧天了,在Java没落之前我们应该先将Java搞清楚才对,然后由此深入了解计算机的世…
前言 这两篇写了词法分析和语法分析,比较偏向实践.这一篇来看一下语言设计里一个比较重要的部分:名字.在大部分语言里,名字就是标识符,如果从抽象层面来看名字就是对更低一级的内存之类的概念的一层抽象.但是名字还有其它相关的比如它的约束时间和生存周期等等 约束时间 约束就是两个东西之间的一种关联,例如一个名字和它所命名的事物,约束时间就是指创建约束的时间.有关的约束可以在许多不同的时间作出 语言设计时 语言实现时 编写程序时 编译时 链接时 装入时 运行时 这就是为什么基于编译的语言实现通常会比基于解…