编程语言
这里涉及的编程语言包括:
C | Shell | Perl | Python | Lex/Yacc | Asm |
长久以来,C始终是系统软件的首选语言。由于工作内容和环境的关系,我一直是一名C程序员,所以C语言是重中之重。
其次是脚本语言。
首先是Shell,在任何一台Unix/Linux机器上,只有Shell是能够保证的(基本的系统启动脚本都是Shell脚本),所以Shell编程需要熟练掌握。但Shell的问题是版本众多,而且Shell依赖的众多工具如sed、awk等亦有多种变体,因此当Shell脚本的规模和复杂度上升后,移植性和维护性就变得难以保证。为此,这里只使用Shell做最基本的工作。
复杂的脚本应用交给Perl和Python来做,这里不对Perl和Python的优劣进行比较,我会在相应的场合分别使用它们。作为C程序员出身的我,选择一脉相承的Perl是非常顺理成章的。同时选择Python的一个重要原因是它可以弥补我面向对象方面的空缺(不用C++和Java),此外Python很适合教学,对初学者入门很有帮助。
Lex/Yacc不常用,只在某些涉及到解释性文法的场合会用到,需要掌握基础。
汇编Asm用的最少,但依旧不可或缺,一些系统底层代码只能用汇编实现。鉴于工作平台的原因,这里以AT&T语法格式的汇编为主,如gas(GNU Assembler)。
C | Shell | Perl | Python | Lex/Yacc | Asm |