计算机编程语言基础知识

版本: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

目录

前言
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. 脚本语言

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

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

即:

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

脚本语言:源代码 -> (解释器)直接"运行"你的源代码

常见的计算机语言有:

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

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

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 章 函数

为何要有函数

函数的参数

函数中的变量

函数的返回值

参考书目