版本:v1.3
摘要
本文主要介绍了计算机领域中的编程语言的基础知识,主要指的是各种编程语言中比较通用的基本概念,比如逻辑结构等等。
整理了计算机语言的分类和关系。
本文提供多种格式供: | |
---|---|
HTML版本的在线地址为: 有任何意见,建议,提交bug等,都欢迎去讨论组发帖讨论: http://www.crifan.com/bbs/categories/programming_language_basic/ |
2015-05-07
修订历史 | ||
---|---|---|
修订 1.3 | 2015-05-07 | crl |
|
版权 © 2015 Crifan, http://crifan.com
目录
目录
不懂的语言,擅长做的事情也不同,适用的领域和层次也不同:
计算机语言分类:脚本语言,解释性语言,编译性语言等等
关于什么是脚本语言,简单说就是,需要你用什么编译器,将源代码,编译为对应的可执行程序,再去运行可执行程序;
而直接通过对应的脚本语言的解释器,去直接“运行”你的脚本语言的源代码,即文本文件,一堆的字符串,就可以实现运行程序的效果了。
即:
其他语言:源代码 -> 编译成可执行程序 -> 运行程序
脚本语言:源代码 -> (解释器)直接"运行"你的源代码
常见的计算机语言有:
目录
计算机语言通用知识 之 写代码是用来(被别人读和被别人)维护的
关于此观点,这里也有提到:
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!”
不同的计算机语言,都有一些常见的函数。
刚开始学习计算机语言,尤其是类似于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的环境中去学习。
由此可以由浅入深,循序渐进的去学习某种语言。
为何要去将变量分类
常见的变量有哪些类型
整型:byte,short int,int,long
字符,字符串:char,string
浮点数:float,double
列表,等
高级的,比如:字典dict,Map