`
abruzzi
  • 浏览: 444970 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
文章列表
前言 在学校学程序设计语言的时候,能接触到的所有例子没有一个跟现实世界是有关系的。大多是关注于语言的细节层次,根本没有模型的概念,而我认为,要真正的让别人理解模型是如何建立的,最好的方法是从一个实实在在的东西开始,逐步的建立一个与物理世界可以有对应关系的模型出来。那样,在以后的实践中,可以很轻易的对未知的对象进行数学建模。OO最大的特点并非继承,多态等概念,而是与物理世界建立对应的关系! 选择有限自动机作为例子来说,有这样几点考虑: 有限自动机几乎是最简单的数学模型,也就是说,它本身就是一个对象 这个东西是计算理论中的一个比较核心的东西,也很有意思 有限自动机的形式化定义很明了,很精 ...
前言 python实在是太方便,太易用了,三方库的支持又全,语法又简单,对开发人员来说,实在是居家旅行,XXXX的必备利器。周末研究了下python的网络支持,做一下记录,以备随后翻阅。   python支持BSD的socket进行网络编程,其API跟C中的大同小异,先看看TCP方式的,说到网络编程,肯定会设计到server和client,分别来看下 TCP方式 server端 server端的socket一般流程是这样: 建立一个socket(可以选择socket类型INET,UNIX等,以及连接方式TCP/UDP) 使用bind公开一个端口,使得client可以方便连接 ...
前言 上一篇《C和指针》可能对关于C和指针的有些内容没有说透,下来写了一个链表的实现,当然,也是用C的函数指针来模拟OO的结构来做的。链表结构本身比较复杂(关于指针的使用方面),所以这个例子可能更清晰一些。之所以选List这个例子来说,是因为大家在学校里肯定接触过这个简单数据结构,从一个比较熟悉的例子入手可能比较容易理解一些。 接口定义 可以先看看接口的定义,与Java或者C#类似: /*  * File:   IList.h * Author: juntao.qiu * * Created on May 22, 2009, 2:51 PM */ #ifndef _ILIST_H#d ...
前言 指针是C的灵魂,正是指针使得C存在了这么多年,而且将长期存在下去。事实上,我自己不用C语言写程序已经有一年了,工作中接触到的只有java,python和javascript。最近用C完成了一下类似于OO中的封装(即"类")的概念,顺便把指针复习了下,感觉有必要记一下。 本文中的例子有这样两个概念:任务(Task),执行器(Executor)。任务有名称(taskName),并且可以执行(execute)。 而执行器与具体任务所执行的内容无关,只是回调(callback)任务的执行方法,这样我们的执行器就可以做的比较通用。而任务接口只需要实现一个execute方法即可 ...
前言 Javascript,有人称其为C+LISP,C只怕是尽人皆知,但是一直活跃在人工智能领域的另一个古老而优美的语言LISP,掌握的恐怕不是很多.这个倒不是因为这个语言太难或者用途不广泛,而是大多数人在接受计算机语言启蒙的时候 ...
Hash表这种数据结构在java中是原生的一个集合对象,在实际中用途极广,主要有这么几个特点: 访问速度快 大小不受限制 按键进行索引,没有重复对象 用字符串(id:string)检索对象(object) 今天整理以前在学校写的一些算法,翻出 ...
  打算写一个系列,比较系统的介绍一下一个脚本引擎的设计和实现过程,本来打算使用lex/yacc来举例子,但是由于最近对java语言有了新的认识,故决定使用javacc这个工具来做,这个系列中就是以javacc中的一个比较复杂的例子来进行解说的。 这篇文章是本系列的第一篇,主要说几个概念的定义,有了这些定义,后边就容易理解了。 对一个语言的源文件进行解析,主要是做这样几件事: 词法分析 语法分析 语义分析 当然,每个步骤中都有自己的错误检查机制,这里暂且不表。下边分别对这几个过程进行解说: 词法分析 词法分析过程中,读入的是一个个的字符,返回的是记号(token).记号是语法分析所认识的一种 ...
这篇文章可以算是这篇小型桌面计算器的实现(javacc) 的续。   可以这么说,使用javacc作分析器生成器,如果没有用到jjTree,那么就是对语义分析 的过程理解不够深入。如果用到了jjTree而且用好了,那么对编译原理,BNF等的理解才算是比较到位了。 jjTree中最重要的概念是Node接口,所有的非终结符都可以规约 为一个节点。这个节点一般来讲是实现了Node接口的节点类 其中主要有这样几个方法: …… /** This method tells the node to add its argument to the node's list of children. ...
JSP的规范中,有个表达式语言(Expression Language, 简称EL),可以算是一个微型的语言,其中对request, page, session, application中预存的JavaBean对象的引用方式很是简单。最近正好需要写一个支持简单EL的taglib,所以就研究了下Java中的反射机制,目前基本上实现了多级bean的属性的访问,经测试,还是可以用的。   如: public static void main(String[] args){ UserBean bean = new UserBean(); bean.setName("John Abru ...
从开始学计算理论,就对形式语言,编译原理很感兴趣,所以大学对这门课学的也算是最好了。自己也实现过一些简单的词法分析器之类的东西,不过也都是学习目的的,质量一般 后来一直在Linux学习,对lex/yacc研究过一点时间 ...
sed是一个非常非常强大的命令行编辑器,说是编辑器,还不如说是编辑程序,因为它是面向流的(没有GUI),看起来比较土,但是功能却一点也不含糊,在*nix下的shell中工作,如果有这个东东帮忙,可以少做不少事(尤其是程序员所讨厌的那种重复动作)   首先,sed是一个面向行的流编辑器,所以使用方法一般是通过shell中的管道,基本起一个过滤的作用(不是简单的过滤),sed对原始文件不会修改,因此可以完全“安全,无副作用”的使用。   使用方式: sed -e "script" file | ... e         : expression script  : 自定义的 ...
ImageFilter模块   ImageFilter是PIL的滤镜模块,当前版本支持9中加强滤镜,通过这些预定义的滤镜,可以方便的对图片进行一些过滤操作,从而去掉图片中的噪音(部分的消除),这样可以降低将来处理的复杂度(如模式识别等)。   滤镜名称 含义 ImageFilter.BLUR 模糊滤镜 ImageFilter.CONTOUR 轮廓 ImageFilter.EDGE_ENHANCE 边界加强 ImageFilter.EDGE_ENHANCE_MORE 边界加强(阀值更大) ImageFilter.EMBOSS 浮雕滤镜 ImageFilter.FIND ...
前几天工作平台转到Fedora Core 10,硬件支持很好,唯独声卡有些小问题,整了好一阵,终于解决了。现在把note贴出来,方便以后查看,也可以方便其他有同样问题的人。(linux下声卡貌似从来就没有完美的支持,呵呵)   声卡问题描述: 有声音,但是播放mp3时会卡,看电影也有同样的问题,有可能影音不同步。   解决方法: 1.查看声卡信息 写道 $lspci | grep Audio #在我的机器上,声卡信息如下 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 0 ...
ImageEnhance模块 import ImageEnhance enhancer = ImageEnhance.Sharpness(image) for i in range(8): factor = i / 4.0 enhancer.enhance(factor).show()   所有的图片增强类都实现了一个通用接口,这个接口只包含一个方法: enhance(factor)   先构造一个增强器,然后调用增强器实现的enhance()接口,这个方法会返回一个被加强过的image对象,参数factor为一个大于0的浮点数,1表示返回原始图片。 加强器包括,色彩平 ...
  ImageChops 模块这个模块主要包括对图片的算术运算,叫做通道运算(channel operations)。这个模块可以用于多种途径,包括一些特效制作,图片整合,算数绘图等等方面。但是到目前为止,通道运算只支持8位图片("L"和"RGB ...
Global site tag (gtag.js) - Google Analytics