天天记录 - 对强大的编程语言lisp的一点认知
2012-11-22 22:35
246 查看
今天晚上看Lisp的本质一文,大呼过瘾。这个博客我非常不想写虚的东西,只想记录写自己技术方面的实现例子,通过例子来学习计算机知识。但是这边给我很大的震撼,原来我也感受到了编程的思想而不是具体的语法。
每个人不喜欢学习高深的东西,是因为这些东西没有跟每个人之前所熟悉的连接到一起。
编程语言可以转化为计算机理解的语言
Java, C , C++, C# 所有编程语言都是通过语法来定义语言,然后使用这些语法编写出代码,使用编译器等工具把按照这些语法定义解释给计算机。
怎么解释的呢? 编译器的原理,是把代码解析成语法树(个人理解,语法树的每一个节点都是一条条的命令),每一条命令都可以直接翻译成汇编语言。
什么是汇编语言? 我理解汇编语言是比java等语言更接近底层一些,它主要是一些命令,比如说3 + 5
计算机是怎么执行的? 3 和 5都翻译成二进制, 然后通过与或运算得出结果
为什么非得使用二进制? 因为物理限制,计算机使用二极管,而其只有两种状态,这两种状态可以用任何形式表示,阴和阳也行,而计算机专业使用0和1来表示这两种状态。
为什么非得仅使用与或运算? 这个忘记了
为什么非得使用二进制的,非得选二极管? 这个肯定就是图灵论文《论可计算数及其在判定问题上的应用》
可能是因为这个数学原理,或者说是基于多年来计算的历史(算盘,机械计算)
编程语言转化为一种中间语言(例如XML)
为什么非得使用xml语言呢?为什么非得使用一种中间语言呢?
再把中间语言转换为计算机语言
每个人不喜欢学习高深的东西,是因为这些东西没有跟每个人之前所熟悉的连接到一起。
编程语言可以转化为计算机理解的语言
Java, C , C++, C# 所有编程语言都是通过语法来定义语言,然后使用这些语法编写出代码,使用编译器等工具把按照这些语法定义解释给计算机。
怎么解释的呢? 编译器的原理,是把代码解析成语法树(个人理解,语法树的每一个节点都是一条条的命令),每一条命令都可以直接翻译成汇编语言。
什么是汇编语言? 我理解汇编语言是比java等语言更接近底层一些,它主要是一些命令,比如说3 + 5
计算机是怎么执行的? 3 和 5都翻译成二进制, 然后通过与或运算得出结果
为什么非得使用二进制? 因为物理限制,计算机使用二极管,而其只有两种状态,这两种状态可以用任何形式表示,阴和阳也行,而计算机专业使用0和1来表示这两种状态。
为什么非得仅使用与或运算? 这个忘记了
为什么非得使用二进制的,非得选二极管? 这个肯定就是图灵论文《论可计算数及其在判定问题上的应用》
可能是因为这个数学原理,或者说是基于多年来计算的历史(算盘,机械计算)
编程语言转化为一种中间语言(例如XML)
为什么非得使用xml语言呢?为什么非得使用一种中间语言呢?
再把中间语言转换为计算机语言
相关文章推荐
- 关于confirm无效的一点记录
- 一点eclipse的使用记录
- 天天记录 - Android requestLayout源码简单分析
- 自学android studio的一点小记录-----共享项目到svn
- 记录一点东西,jquery的相册,很漂亮。代码的诱惑。
- 阅读书单--记录读之前与读之后的认知差别
- Linux命令记录与总结(本文不会结束,学一点加一点)
- IPV4与IPV6 的 一点区别 (不深究、只记录备忘)
- JAVA JDBC 数据库的一点记录: 批处理Batch
- 实用心理学50条,读完你会更强大一点
- 记录一点小东西
- 记录与linux的每次邂逅__小白关于mysql脚本安装事前事后的一点感想
- 记录与linux的每次邂逅__小白关于mysql脚本安装事前事后的一点感想-2
- 天天记录 - @ViewDebug.ExportedProperty
- 天天记录 - 关闭Ubuntu 12.04的内部错误提示
- 一点记录
- 今日开始,记录一点自己感兴趣的技术问题
- 天天记录 - Android 使用Canvas Transalte方法控制视图移动
- 个人在编程学习之路上的一点思考——暨个人对编程语言理解的变化
- 关于js开发及web攻击的一点记录