随笔分类 -  语言编译

摘要:在编程中有时会把多个函数串在一起依次调用,以达到特定的目的,在这里我们把这样的调用方式形象地称为函数链调用。函数链中的函数有些是独立的,有些则只用在函数组合中,不会单独调用。对象的连续配置和组合是函数链调用比较常用场合,去除语法糖,linq也是一个函数链的运用。下面通过即时编译中的一个例子,来看看函数链的用法。 几种热门的语言C#、java、js都采用了即时编译的方式,即时编译需要有相应的汇编类库供调用,以便把VM代码转换成本地机器代码。 Apple的汇编类库是比较常用的,被firefox,webkit用于js的即时编译,下面的代码是Apple汇编类库的一般调用方式:masm.pus... 阅读全文
posted @ 2013-01-11 11:27 走在溪边 阅读(1901) 评论(0) 推荐(0) 编辑
摘要:在上一篇 编程便笺:代码的图形(一) 一文中描述了如何用C++直接把结构语义图形化,在继续这个话题以前,我们先暂时放一放,做些准备工作。本文先来描述一下控制语义或者说是规则语义的图形化。 像上一篇文章所说,结构很大的程度上是体现地是几何的概念,也就是图形的概念。而控制语义的图形化离不开图灵机,对于这一点,有以下一些理由: 1、图灵机从表面上看,直接体现地是匹配控制的概念,控制是图灵机的核心; 2、图灵机的语言比一般语言更接近于图形,体现图形的特色,对于编程来说,大部分的时候是形式比实质更重要,换句话说,对于程序员来说,语义的表现比语义的实现更有感受。我们平时指的语言计算能力,应该是指... 阅读全文
posted @ 2012-12-28 14:49 走在溪边 阅读(1301) 评论(0) 推荐(1) 编辑
摘要:Iterator是序列概念的体现,Iterator指向值而不是值本身,因而也就具有两方面的特性,一方面Iterator可以指代值,另一方面具有序列指示特性,可以在序列中移动,指针和数组序号都具有这样的特性。Iterator(迭代器)可以说是std的灵魂所在,也可以这样说,Iterator为std的成功提供了保证。 Iterator为什么会如此重要,因为大部分程序都是图灵完备的,所以可以分析一下图灵机,我们把图灵机分成三个部件:条带、接口部件(包括移动和数据捡取部分)、处理部件。这三个部件中,接口部件对应就是Iterator,它是条带与处理部件的纽带,从中可以看出Iterator的重要性。... 阅读全文
posted @ 2012-12-24 10:47 走在溪边 阅读(2319) 评论(0) 推荐(0) 编辑
摘要:编程时,程序员心中会有图形,而有些代码本身就是图形,不但可读而且可看。#include "stdafx.h"#include <deque>#include <map>#include <string>using namespace std;//图形由点组成class TNode{public: wchar_t * name; //构造函数 TNode(wchar_t * _name):name(_name){} virtual const wchar_t * toString(){return name;}};class TEmp;// 阅读全文
posted @ 2012-12-16 14:11 走在溪边 阅读(1462) 评论(6) 推荐(1) 编辑
摘要:程序的设计模式往往与计算机的体系结构有很大关系,以函数作为协议的主要表现方式,语言具有简单严格的语法结构,应该与冯·诺依曼体系,或者更准确的说与代码线性循序执行的方式不无关系。 冯·诺依曼体系是图灵机的实现,但从实现之初,两者便无多大交集,图灵机具有理想性质,是不考虑控制和执行成本的,而冯·诺依曼机器,最初的程序设计对计算成本是非常关注的,而且按照图灵机思想设计的程序,转换成通常的程序,会比较复杂而且显得不直观。正如lex与bison生成的程序代码,我们只会认为程序是对的,而很少会去阅读。 以控制机器的思想设计程序,是图灵机程序设计的主要方式,而对于计算细节(主要 阅读全文
posted @ 2012-09-21 13:17 走在溪边 阅读(2292) 评论(0) 推荐(1) 编辑
摘要:通用和专用是编程的永恒主题,编程的演化很大程度上是专用变通用的过程,归纳是更一般的叫法。专用与通用比较,往往具有更多的上下文约束,而程序设计则希望通过更细或更有效的分组、分类,而使这些上下文约束更通用,更具适应性。 对于企业应用来说,这样的约束一般来源于业务逻辑,而需求和程序设计也是围绕着业务逻辑的选择和处理展开。很多概念的形成有它自然的过程,如果经常把这些概念举在手上,反而如一座座山峰,遮住了事情本来的面目,这样也不利于这些概念的运用,当然拿来吓人或显摆的除外。 SQLDB关注于业务逻辑实体的结构及基本约束的一致性。NOSQL则揭示出业务逻辑实体的结构与业务逻辑对象的上下文相关性,也就是数. 阅读全文
posted @ 2012-07-06 15:18 走在溪边 阅读(1779) 评论(7) 推荐(2) 编辑
摘要:现在的系统与以前的系统相比更具有整体的性质,更关注系统间的协同。系统设计中要涉及的技术往往比较广、比较泛,开发这样系统,离开开发平台和框架往往寸步难行,同时开发框架和开发方式也需要不断演进,才能更好地满足需求。现代应用开发框架应该具有哪些特征呢?不妨试着来罗列一下:0、开放性和扩展性 a、开发性是指尽量采用标准和共识的东西,或者让部分设计成为标准或事实标准。 b、扩展性是指系统从开发到运行的各个环节除了可策略、可定义外,都要可定制,可编程。1、服务即数据、数据无界 数据存在于各种服务中,如文件服务、数据库服务、邮件服务、WEB服务等,有外部的,也有内部的。数据是一种需要、可以按需存取和读取.. 阅读全文
posted @ 2012-04-11 13:35 走在溪边 阅读(237) 评论(0) 推荐(0) 编辑
摘要:语言是一种工具,语言应需要产生,并应需要而发展。原始的语言和词汇是一种直接、具体的符号及符号组合。感性是理性的启端,发展了的语言是建立在自我描述之上的一种抽象。词汇是语言的材料,词法是语言的模板,语义则是语言的精神。 抽象是实际需要,是选择的结果,一致性是抽象的目的,而抽象本身却是二义的。抽象意味着表示、分类、归纳、组织、演绎及错误。错误是选择和判断的一种,错误是抽象的特质,本身也是一种抽象,错误因创造而生,伴随着抽象而来。人是有灵性的动物,会因需要创造各种抽象,并依赖于创造的抽象,称之为知识和智慧。而当依赖成为习惯时,有时灵性反而被禁锢了。 语言可以用来表现世界、描述世界、记录和传递信息、. 阅读全文
posted @ 2012-04-10 21:25 走在溪边 阅读(293) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示