你必须知道的编程语言分类

我们习惯把编程语言分类为机器语言(汇编语言)和高级语言(Fortran/Lisp/Cobol/Basic/C/Pascal /C++/Java/Perl/Python),选择使用高级语言编程而不是机器语言相信大家都能说出一两个理由(比汇编语言更容易和更清晰的表达性、多平台的可移植性,但需要一个专用的编译器或者是解释器)。
但网络上却没有一个指导你选择哪种高级语言作为你首要学习的语言,“你使用什么语言并不重要,重要的是你对问题是否有正确的理解,代码以外的东西才是关键”,保持这种观点的程序员不在少数,要么是他们的无知,因为各种语言简直有天壤之别,要么是夸夸其谈.

当然安全的做法是随大流,市场上流行什么语言你就学什么语言,那你是不是会为语言的不断演变而疲于奔命,虽然主流语言的变动不会像硬件变更那么频繁,但一旦你放弃自己熟悉的那种语言转向你一向鄙视的某种高级语言的时候,你肯定是不好受的吧。
我们先来看黑客(又称技术大牛们)选择什么语言,他们不随大流,会拒绝平庸,他们甚至会因为对现有可用语言的不满而自己设计一种语言(基于他们对语言编程能力本质的理解,语言的优势、函数库的功能) 选择主流编程语言可能是我们安全的选择,毕竟我们不是黑客大牛,但作为致力于成为黑客的程序员必须知道:不同语言的编程能力是不一样的。另:印象中国内大的技术网站javaeye是使用ruby开发,并且只有2-3个程序员维护,可见ruby语言的强大。

 

附:
语言的分类1: 程序设计语言的类型:
1.命令式语言。这种语言的语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。其中产生操作的主要途径是依赖语句或命令产生的副作用。现代流行的大多数语言都是这一类型,比如 Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C# 等,各种脚本语言也被看作是此种类型。

2.函数式语言。这种语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如 Lisp、Haskell、ML、Scheme 等。

3.逻辑式语言。这种语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最著名的逻辑式语言是 Prolog。

 

语言的分类2:
1、动态语言和静态语言 通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

(2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。

2、强类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STL(Standard Template Library)是C++的一部分,它是一个非常强大的编程库,提供了一系列的模板类和函数,用于处理常见的数据结构和算法。由于其强大的功能和易使用性,STL在C++程序员中广泛应用。 STL编程语言的中文版手册是一个详细介绍STL库的书籍或文档。它包含了关于STL库中各个类和函数的详细说明,指导程序员如何使用它们来解决实际问题。 该手册通常会分为多个章节,每一章节都会介绍一个或多个相关的主题。比如,其中可能包括向量(vector)、链表(list)、映射(map)等数据结构的用法,以及排序、查找、搜索等算法的实现。 在手册中,每个主题通常会给出类或函数的基本概念、语法和用法示例。它还会提供一些使用STL库的最佳实践和常见问题的解答。通过学习这个手册,程序员可以更好地理解和应用STL库,提高自己的编程能力。 STL编程语言的中文版手册对于那些希望学习STL库或提高自己对C++编程的理解的人来说是非常有用的资源。通过阅读该手册,程序员可以快速掌握STL库的使用,提高自己的编程效率和代码质量。同时,也可以更好地理解和应用C++的泛型编程思想。 ### 回答2: STL(标准模板库)是一种用于C++的编程语言库,它提供了丰富的数据结构和算法容器,用于简化和优化代码开发。虽然STL是用英文编写的,但也有许多中文版的手册供开发者参考。 STL的中文版手册通常包含以下内容: 1. 库的简介:介绍STL的基本概念、设计哲学和使用方法,以及为何STL在C++开发中如此重要。 2. 容器类:包括向量(vector)、列表(list)、双端队列(deque)和集合类等。手册会详细介绍每种容器的特性、使用方法以及常见操作的时间复杂度。 3. 迭代器:迭代器是访问STL容器元素的一种方式,不同类型的容器会提供不同类型的迭代器。手册会解释迭代器的分类和使用方法,帮助开发者正确地遍历和操作容器中的元素。 4. 算法:STL提供了众多的算法,用于处理容器中的元素,如查找、排序、合并等。手册会列举并解释这些算法的使用方法和一些示例。 5. 附录:一些额外的信息,如STL函数对象、STL异常处理和一些常用技巧等。 中文版的STL手册可以帮助不太熟悉英文的开发者更好地理解和使用STL库。但需要注意的是,由于STL在国外发展得更早,一些最新的特性可能没有完全翻译成中文,所以开发者也需要查阅英文版手册来获取最新的信息。 总之,STL编程语言的中文版手册是一种非常有用的资源,它能帮助开发者更好地理解和应用STL库,提高代码的效率和可读性。 ### 回答3: STL(Standard Template Library)是C++标准库中的一部分,提供了丰富的数据结构和算法模板,可以帮助我们高效地进行编程。然而,STL本身并没有官方的中文版手册。 不过,我们可以在互联网上找到很多非官方的STL中文版手册,这些手册通常由爱好者或者专业人士根据官方文档翻译而成。这些手册可以帮助我们更好地理解STL的使用方法和相关的数据结构与算法。 STL中文版手册一般会包括STL库的整体介绍、各个容器(如vector、list、set、map等)的用法,以及算法模板(如排序、查找、变换等)的使用示例。手册中通常也会包括一些注意事项和使用技巧,帮助我们更好地理解和运用STL库。 当然,由于STL库非常庞大和复杂,一本中文版手册很难覆盖到所有的内容。因此,在实际编程过程中,我们可能还需要结合官方英文文档、在线教程和其他参考资料,来更深入地学习和掌握STL的使用。 总结起来,尽管STL的官方文档没有中文版手册,但是我们可以通过网上的非官方中文版手册,来学习和了解STL编程语言的使用方法和相关注意事项。这些手册可以作为我们学习STL的参考资料,帮助我们更好地应用STL库进行编程

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值