计算机编程语言基础知识

版本：v1.3

Crifan Li

摘要

本文主要介绍了计算机领域中的编程语言的基础知识，主要指的是各种编程语言中比较通用的基本概念，比如逻辑结构等等。

整理了计算机语言的分类和关系。

[提示] 本文提供多种格式供：
在线阅读 | HTML | HTMLs | PDF | CHM | TXT | RTF | WEBHELP
下载（7zip压缩包） | HTML | HTMLs | PDF | CHM | TXT | RTF | WEBHELP

HTML版本的在线地址为：

http://www.crifan.com/files/doc/docbook/programming_language_basic/release/html/programming_language_basic.html

有任何意见，建议，提交bug等，都欢迎去讨论组发帖讨论：

http://www.crifan.com/bbs/categories/programming_language_basic/

2015-05-07

修订历史
修订 1.3 2015-05-07 crl
  1. 把之前教程的地址整理过来
  2. 代码写出来就是留给别人看的
  3. 很多语言都有打印这个函数
  4. 添加学习C先Windows还是Linux

版权 © 2015 Crifan, http://crifan.com

本文章遵从：署名-非商业性使用 2.5 中国大陆(CC BY-NC 2.5)

目录

前言
1. 本文目的
1. 计算机编程语言分类
1.1. 脚本语言
2. 计算机编程语言通用知识
2.1. 代码写出来是为了给别人看的
2.2. 不同计算机语言都有常见通用的函数
2.2.1. 通用函数：print
2.3. 某某（比如C）语言初学者在Windows还是Linux环境下练习更有优势？
3. 变量分类
4. 操作和运算
5. 分支与判断
6. 循环
7. 函数
参考书目


前言

目录

1. 本文目的

1. 本文目的

本文目的在于介绍计算机编程语言的基础知识。


第 1 章 计算机编程语言分类

目录

1.1. 脚本语言

不懂的语言，擅长做的事情也不同，适用的领域和层次也不同：

[提示] 相关旧帖

【整理】计算机语言的不同应用层次

计算机语言分类：脚本语言，解释性语言，编译性语言等等

1.1. 脚本语言

关于什么是脚本语言，简单说就是，需要你用什么编译器，将源代码，编译为对应的可执行程序，再去运行可执行程序；

而直接通过对应的脚本语言的解释器，去直接“运行”你的脚本语言的源代码，即文本文件，一堆的字符串，就可以实现运行程序的效果了。

即：

其他语言：源代码 -> 编译成可执行程序 -> 运行程序

脚本语言：源代码 -> （解释器）直接"运行"你的源代码

常见的计算机语言有：

  • Assembly
  • C
  • C++
  • C#
  • Java
  • JavaScript
  • Object-C
  • Perl
  • PHP
  • Python
  • GO


第 2 章 计算机编程语言通用知识

目录

2.1. 代码写出来是为了给别人看的
2.2. 不同计算机语言都有常见通用的函数
2.2.1. 通用函数：print
2.3. 某某（比如C）语言初学者在Windows还是Linux环境下练习更有优势？

2.1. 代码写出来是为了给别人看的

计算机语言通用知识 之 写代码是用来（被别人读和被别人）维护的

关于此观点，这里也有提到：

Architecting iOS Apps with VIPER - Architecture - objc.io issue #13

“Good architecture is not what makes a product successful, but it does make a product maintainable and helps preserve the sanity of the people maintaining it!”


2.2. 不同计算机语言都有常见通用的函数

不同的计算机语言，都有一些常见的函数。

2.2.1. 通用函数：print

不同语言都有打印这个函数：

  • C：printf
  • C++：cout<<
  • Python: print
  • Java：System.out.println


2.3. 某某（比如C）语言初学者在Windows还是Linux环境下练习更有优势？

刚开始学习计算机语言，尤其是类似于C语言这种，很多人都会问同一个问题：

先在Windows下还是现在Linux下去学习，效果会更好，速度会更快？

对于此问题，之前遇到一个解释的比较清楚的答案：

C语言初学者在Windows还是Linux环境下练习更有优势？（摘自知乎问答）

引用如下：

从Windows入门，熟悉到一定程度之后推荐根据情况转移到Linux下继续学习。

重点是“专注+效率”。

忽视初学者的境况和人的本性去考虑问题都是不恰当的。

并不是否定Linux，而是它对于初学者的入门门槛太高了。

Window进入难度小，非常有助于不断积累幸福感。

各种IDE完备，基本可以按照书上按图索骥，能让你专注而有效率的在学C语言。

windows下完善的IDE调试环境有利于减少入门难度，这对于初学者是大益。

难以想象一个初学者在Linux下面遇到指针错误会不会看着segementfault直接崩溃掉，然后选择掩卷长泣，深藏功与名。。。

而选择Linux入门会让你学C语言变成：捣鼓系统，学习gcc/GDB的使用，学习vim/emacs使用，make文件的编写等。

请问：对于初学者的你，你还能专注的学C吗？

当你在windows下学习到一定程度之后，你会发现windows下学习的缺陷：IDE过于完备导致对于细节缺乏了解；windows这个”化妆过度“的系统导致你从中基本学不到东西。

你可能不时需要去考虑IDE到底变了什么戏法？

windows为甚么和你学的语言感觉一点关系都没有？

这个时候你可以转到Linux下继续学习。

通过对细节的把握以及在一个对程序员友好的系统的帮助下，可以让你的问题得到消解，继续专注而有效率的学习。

另外，如果学的是C语言，不是OperatingSystem，Linux和Windows下是没有区别的。

《C Programming Language》里面除了专讲Unix的章节，其余的程序在Windows上也可以运行。

C语言是有标准的，只要选择支持C89或C99标准的编译器就行了，这点两个平台也没区别。

但是要知道C语言当初发明就是为了重写Unix的，C很多风格上和设计思维上同Unix更接近些。尤其是C标准的内存，文件等接口。

上述的回答，对于其他语言，比如C++，Java，Python等等，也是实用的：

前期可以在Windows中，尤其是Windows中的各种IDE中去学习某语言的基本的语法和调试运行，

待对语言有了一定的熟悉，想要深入学习内部机制和原理时，再去换到Linux的环境中去学习。

由此可以由浅入深，循序渐进的去学习某种语言。


第 3 章 变量分类

为何要去将变量分类

常见的变量有哪些类型

整型：byte,short int,int,long

字符，字符串:char,string

浮点数：float,double

列表，等

高级的，比如：字典dict，Map


第 4 章 操作和运算

基础运算

加减乘除：+,-,*,/

取余数%

等等

位运算：按位操作，按位与&，按位或 |等等

逻辑运算：AND，OR等

[提示] 相关旧帖

【软件开发基础知识】逻辑运算


第 5 章 分支与判断

if,else

then

其中，python中的判断，相对比较“智能”，自动判断某个变量的，是否为“真”


第 6 章 循环

关于循环：while，do while，for

go语言中，好像只有for？


第 7 章 函数

为何要有函数

函数的参数

[提示] 相关旧帖

【软件开发基础】调用函数中的变量名和被调用函数中的参数名之间的关系：没半毛钱关系

函数中的变量

函数的返回值


参考书目

[1] 【教程】计算机编程语言之基础知识

[2] 【整理】计算机语言的不同应用层次

[3] 【软件开发基础】调用函数中的变量名和被调用函数中的参数名之间的关系：没半毛钱关系