`
pengpeng
  • 浏览: 84920 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
            本文最早写在豆瓣:http://www.douban.com/note/341910359/             写在前边:我们知道现有语言的编程范式有:过程式,面向对象,函数式,逻辑式。随着软件工业化程度的普及,以及软件的复杂度越来越高,编程语言的发展历程也是从最初的过程式(命令式)语言c,发展到以java语言为代表的面向对象编程语言。而逻辑编程语言(以prolog为代表)和函数式语言(lisp系列)还多用在学术和人工智能领域中。近几年,随着多核,云计算时代的到来。函数式编程语言逐渐浮出水面,最经典的语言以scheme,common-lisp,ml,clojure ...
  最近将《sicp》终于读完了。正在读周国平的《尼采--在世纪的转折点上》   接下来打算开始看《 Language Implementation Patterns》,《编程珠玑》《ruby元编程》   看完后开始阅读大部头《哥德尔、艾舍尔、巴赫》;  
        现在到了数学抽象中最关键的一步:让我们忘记这些符号所表示的对象。(数学家)不应在这里停步,有许多操作可以应用于这些符号,而根本不必考虑它们到底代表着什么东西。   --- sicp (第二章 数据抽象)      邱奇数可以帮我们充分理解上面这句话和数据抽象的含义。(我的读书笔记见:http://book.douban.com/people/xulao/annotation/ (define (inc n) (+ n 1)) (define zero (lambda (f zero) zero)) (define one (lamb ...
             “我们应该学习那些科学家发现和解决问题的思维过程,而不应该直接灌输理论知识。”          “大学精神的本质,并不是为了让我们变得深奥,而恰恰是恢复人类的天真".----刘瑜          ”一个人 ...
     总体看来,2011年主要关注计算机语言方面,尤其对动态语言的,函数式编程范式,有了更深入的认识。工作中也有幸参与开发了一个DSL(利用antlr这个开源工具生成词法,语法解析器,生成AST); 进一步用visitor进行语法分析;     最近在看《计算机程序的构造和解释》2ed这本书。此书含量丰富,甚和我胃口。在研读中也将大多练习题都做了出来。此书绝对值得我花费这么多业余时间来详读的。也是我多年来读书中唯一推荐的一本。感叹:不读此书难称自己为真正的programmer.       2012年5月份底计划将《计算机程序的构造和解释》读完。 然后开始《算法导论》《编译原理》的研 ...
如题。见附件; 第三章已经块看完了。写了些许读书笔记见豆瓣: http://book.douban.com/people/xulao/annotation/
 现今主要的编程范式有:“命令式编程”,“函数式编程”,“逻辑编程”; 现今大行其道的“命令式编程语言”有c,c++ ,java,c#,ruby等等。 函数式编程语言有“lisp,haskell,scala”等;当然ruby,scala应该是混合面向对象和函数式风格的语言。 命令式语言 为什么称为命令式语言呢? 命令式语言其实是当今“冯·洛伊曼”计算机体系结构一个抽象;程序员按照计算机的运行指令的方式编写程序,就好像不断向cpu发送指令一样;命令式语言代表有汇编语言,c语言,java,c++等等;      在命令式语言领域有2个分支,一个是:结构化编程;一个是:面向对象编程;结构化编 ...
进程/线程     进程概念:进程/线程是计算机中最小的执行单元,是实现分时多用户操作系统的基础;那么一个进程在linux中是如何实现的呢?如果熟悉内核就知道内核就是一堆的数据结构,一个进程的所有状态就包含在task_struck这个结构中:存放进程的状态,文件/socket描述符,程序地址(stask/heap);时间片;ddl地址;权限信息等等信息;如下图:展示了进程在内存中的表示:                          linux中的进程就是一个链表;进程和子进程有父子关系,进程号为1的进程为init; 进程创建子进程是运用:写时复制的原则;
           -------学习Linux时,同事总结的,也许从linux的启动过程可以看出Linux的发展过程; 史前时代:BIOS-计算机的启动过程 加电 电源加电,主板芯片组像CPU发粗RESET信号,使CPU恢复到初始状态。当芯片组检测到电源 ...
       写在前边:为了获得新的能力,解决与计算机系统主要组件接口的多种问题,操作系统、编程语言和编译器、计算机体系结构这三个领域都发展了虚拟机技术。虚拟机技术从进程和系统角度分为:进程虚拟机和系统虚 ...
       上次简单介绍了下,linux的cpu,memory,disk i/o; net i/o 性能监控的一些工具;这节就介绍下,这些层面上出现瓶颈时,怎样调节内核,有那些内核参数可以调节来获得性能的提升; 下节介绍下:怎么识别性能瓶颈,当然只是 ...
Linux 性能分析以及调优介绍     写在前面:计算机要解决的基本问题之一是如何在不增添更多硬件能力的情况下使其能够完成更多工作;而我们应用设计的一项重要伸缩性原则是:随着应用的推广和访问流量的增加,通过相应数量的服务器资源来应对;资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量;可以参考ebay的架构最佳实践:     http://www.infoq.com/cn/articles/ebay-scalability-best-practices     本节介绍linux性能分析工具;下一节介绍各个层面的可调参数;最后一节介绍一个web性能问题分析案例;    ...
本文深入描述浮点float类型在内存的存储方式,和为什么浮点计算时精度会缺失。  1. 浮点类型如何存储和计算 2. 一个小实验 通过一下程序我们不断可以看到类型转换的的实质。 而且可以验证float在内存中的存储。
 随着多核cpu的发展,以及线程技术的普及使用。并行编程成了必须掌握的技能。这里列出了java常用的一些并行编程API; 0. 起源         最早的计算机一个cpu,并且cpu单核。某个时间只有一个进程或线程在cpu上执行。不 ...
    从工业革命到互联网革命,每一次的革命最终目的都是加快了信息的传递速度。-----------google黑板报《浪潮之巅》      主要从浏览器,网络带宽,负载均衡,apache,jvm,linux角度探讨下应用性能调优的一些基础知识点;站在客户的角度来说,通过浏览器请求网站,请求数据流经网络,达到web服务器以及应用服务器。web服务器返回数据又流经网络返回给浏览器为客户展示信息;  浏览器 1.缓存 (Disk 会缓存最近访问过的网页片段) 2.多个DNS(因为浏览器会限制每个DNS几个并发请求),所以页面上的不同DNS不宜超过6个;浏览器会缓存DNS地址;
Global site tag (gtag.js) - Google Analytics