专栏首页blackheart的专栏[程序设计语言]-00:目录

[程序设计语言]-00:目录

1. 开篇概览

 前一周写了一篇博文“记-码农的“启蒙”之《程序设计语言-实践之路》和《面向对象分析和设计》两书”,其中说打算总结下这两本书中有哪些收获,就是关于第一本书《程序设计语言-实践之路》的系列总结博文。

1.1 为何要读这本书?

首先这是一本介绍语言的入门书籍(笔者阅读是裘宗燕老先生翻译的第二版),如果你想从中学到一些独门绝技,那么抱歉,木有;其次它介绍的是程序设计语言的一些重要基础概念、各种概念之间的关系;并解释了语言中诸多结构的形成和发展过程,以及他们演化到今天这种形式的根源

那么或许你该问了,了解这些有甚好处,不知道我照样写出漂亮的代码、架构等。的确,你可以的,现在的程序员在工作中都不止要用到一两种语言,然而我们通常对这门语言最直接的感触就是它的语法层面;我猜测你或多或少都有被语法的糖衣炮弹(语法糖)给打晕、蒙蔽过的经历吧。那么如果可以让你从语言设计者的角度来看待语言,则非常有助于你了解一门语言的特性,理解其中的优势以及弱势、以及它们为何发展进化为今天的形式,从而能更好的使用它们;从而能有效的避免身陷众多语言的糖衣炮弹中。

如果你有上面的需求,那么我力荐你买一本回来读读。细心的朋友可能会发现书名中还有个副标题“实践之路”,然而博文标题并无此。不是偷懒,而是故意为之。因为我想关注讨论的是语言的核心概念,而不是编译器实现细节方面。

1.2 计算机科学惯于在抽象之上建立抽象

好吧,我承认这句话有点装13。

这是这本书的序言中的第一句话,虽说计算机科学这个词语范围是有点甚广,但是仔细想一想也确实是这样的事实,就拿语言来说,汇编是对硬件操作的抽象;高级语言是又是对汇编的进一步抽象。而高级语言中也有各种的抽象思想所在,比如过程抽象产生了子程序、OOP中的面向接口编程也是一种抽象。总结来说也就是现在的操作系统、数据库、大型软件等等无一不是建立在抽象的基础之上。因为现在的软件系统的复杂度已经远远的超出了人的理解范围,抽象这种技能也不得已而为之,你不得不将大量复杂的细节隐藏起来来降低理解上的难度。

总之一句话“抽象无处不在”。

2. 本系列博文导航目录

由于不去关注实现方面的细节(对应本书中是2,4,5,14,15章节),所以都是以概念性方面的知识点安排的。话虽如此,但是语言的设计和实现具有内在的密切联系,想要忽略实现细节而很好的理解设计方面的概念也是很难做到的,这就需要读者自己去了解实现方面的一些知识点了。其中本系列2-6篇属于语言的核心概念,而7-10属于现有各种类型语言特性的概述性介绍。

  1.  引言
  2.  名字、作用域和约束(核心概念)
  3.  控制流(核心概念)
  4.  数据类型(核心概念)
  5. 子程序和控制抽象(核心概念)(敬请期待)
  6. 数据抽象和面向对象(核心概念)(敬请期待)
  7. 函数式语言(敬请期待)
  8. 逻辑式语言(敬请期待)
  9. 脚步语言(敬请期待)
  10. 并发(敬请期待)

我的计划是2周一篇,目录结构暂定如此(照搬的书目录),也许会有一些章节内容繁多,到时会做适当的分割。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [程序设计语言]-01:引言

    1.机器语言>汇编语言>高级语言 语言是人与人的一种交流工具,就比如我现在用汉语来写这篇博文来交流探讨技术问题;程序设计语言也是如此,只是交流对象不是人而是机器...

    blackheart
  • Redis的各项功能解决了哪些问题?

    先看一下Redis是一个什么东西。官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓...

    blackheart
  • [程序设计语言]-[核心概念]-03:控制流

    0.概述 前面介绍了语言的演进以及一些基础概念后,从本篇开始进入了语言的核心问题中。这一篇讨论的是语言计算模型(大致可以用控制流来表述),大致如下7种: 顺序执...

    blackheart
  • 我的MOOC之路(二)——七周学会做搜索引擎

    2013年秋天,我开始学习Python。一个转了专业的程序员,干嘛30多岁还要去学一门新的编程语言呢?因为看到了痛点,学生的痛点。

    王树义
  • Python语言做数据可视化2本电子书

    “PDFMV框架是问题-数据-特征-模型-价值五个英文字母的首字母组合而成,它是以问题为导向,数据为驱动,利用特征和模型从数据中学习到知识,以创造价值的系统化过...

    陆勤_数据人网
  • [树莓派公网远程监控]autossh反向代理

    https://www.cnblogs.com/xiaobaiskill/p/9803867.html

    SAnBlog
  • 如何远程访问服务器的 Jupyter notebook

    当我们拥有一台服务器的时候,通常服务器都可能包含比本地电脑比较好的配置,特别是如果做深度学习的,服务器通常意味着有好的 GPU;然后,Jupyter noteb...

    材ccc
  • 从Tensorflow模型文件中解析并显示网络结构图(CKPT模型篇)

    本文介绍如何从CKPT模型文件中提取网络结构图并实现可视化。

    superhua
  • SSL证书创建与部署

    SSL证书简介 SSL证书创建 SSL证书部署-Nginx SSL证书部署-Apache SSL证书部署-Tomcat

    达达前端
  • python实现的简版iconv

    系统管理中,经常涉及的文件编码就是UTF8和GB1803,下面是实现iconv简化功能(UTF8,GB18030互转)的python代码:

    py3study

扫码关注云+社区

领取腾讯云代金券