前言
电脑是最多才多艺的工具,我们有一些。 他们是能够执行惊世伟绩计算,他们可以不管位置很容易被交换的信息,他们每一天的任务简化许多,它们使我们可以自动执行,否则将是乏味或无聊的许多过程。 然而,电脑是不“智能”,因为我们是。 正是他们应该做的,毫不含糊的,他们被告知,他们的母语是完全不同于我们讲的任何东西。 因此,一个人谁希望电脑做的东西,和电脑,不知道什么是应该做的之间有一个强大的语言障碍。 到目前为止,电脑不能弄清楚他们自己所应该做的,因此,他们依赖于我们创建的程序 ,这是指令集计算机能够理解并遵循。程序和编程语言概述
为了更好地传达给我们的电脑到底是什么,我们希望他们做的,我们已经开发了广泛的编程语言,使通信过程中更容易。根据项目的类型,选择语言时,必须考虑到的因素有很多。 下面是一些更值得一提的列表:
- 编译,解释或JIT编译
编译语言翻译成目标机器称为编译程序的母语。 然而,这可能会导致非常快的代码,特别是如果是有效的优化编译器,生成的代码可能无法移植以及跨操作系统和编译的过程可能需要一段时间。
解释型语言读取一个程序,称为一个解释,并执行该程序。 虽然他们作为自己的翻译移植,有没有长的编译时间,解释型语言通常比同等编译的程序慢得多 。
最后, 只是在时间编译 (JIT编译),语言语言迅速在他们编写的程序编译时需要运行(通常是用很少的优化),提供性能和便携性之间的平衡。
- 高或低的水平
一个低级别的语言优惠直接与硬件交互,从而更适合像真正需要访问硬件的设备驱动程序代码的程序。 然而,由于一个低级别的语言是受硬件访问所有的细微差别,在一个低层次的语言编写的程序一般是很难移植到其他平台。 这些语言几乎总是被编译。
一个高层次的语言更侧重于容易理解的概念,是由人的心灵,如对象或数学函数。 一个高层次的语言通常比一个低级别的语言更容易理解,它通常花费较少的时间比它在一个低级别的语言开发一个程序在一个高层次的语言。 作为一个权衡,一般需要牺牲一定程度的控制权产生程序确实。 然而,这不是不可能的,高和低层次的功能混合的语言。
- 类型系统
A 型系统是指一种语言的变量的不同类型的必须遵循的规则。 一些语言(包括大多数汇编语言)没有类型,因此本条并不适用于他们。 然而,由于大多数语言(包括C + +)具有类型,这个信息是很重要的。
- 类型强度:强或弱
一个强类型系统把不同类型的变量如何可以互相转换,无需任何转换语句的限制。 一个理想的强类型系统将禁止隐含的“casts”类型不作出任何意义的,如水果对象的整数。 一个弱类型系统会尝试找到某种方式,使科协工作。
- 类型的表达式:清单或推断
这涉及语言的编译器/解释如何推断变量的类型。 许多语言都需要明确定义变量的类型,从而依靠明显打字。然而,某些,将推断出的变量的基础上,在它被使用的上下文,不同的,因此使用推断打字。
- 静态或动态类型检查:
如果是静态类型的语言,那么编译器/解释类型检查前一次程序运行/编译。 如果该语言是动态类型检查,然后在运行时检查类型。
- 类型安全性:安全或不安全
这是指在何种程度上的语言将禁止操作类型的变量,可能导致不确定的行为或错误。 一种安全的语言将更加努力确保不发生这样的操作或转换,而一个不安全的语言,会给更多的用户在这方面的责任。
这些打字特性并不一定是相互排斥的,有些语言把它们混合。
- 类型强度:强或弱
- 支持的典范
一种编程范式是一种编程语言支持的编程方法或方式。 下面总结几个常见的范例:
- 陈述
一种声明性语言将更多的精力放在指定应该完成的,而不是通过什么手段应该完成什么语言。 这样的模式可能被用来避免意外编写自己的代码产生的副作用。
- 实用
声明性编程编程功能的一个子集,试图表达问题的数学方程和函数。 它熄灭的方式,以避免国家和可变的变量,这是命令式语言中常见的概念。
- 通用
泛型编程侧重于写骨架算法将会被指定的算法实际上是使用类型,从而使一些从宽谁希望避免严格的强类型规则的程序员。 如果实现,它可以是一个非常强大的范例。
- 迫切
命令式语言允许程序员给计算机有序列表的指令,而不必明确说明任务。 它可以被认为是相反的声明性编程。
- 结构化
结构化编程语言,旨在提供某种形式的结构值得注意的一种语言,如直观的控制权的顺序语句的执行。 这样的语言贬低“跳跃”,如提供goto语句在C和C + +。
- 程序
虽然它有时被用来作为命令式编程的代名词,一个程序设计语言也可以参考必要的结构化编程语言,它支持程序或子程序的概念。
- 面向对象
面向对象编程(有时简称OOP)是结构化编程,在“对象”的条款表示节目的一个子集。 这样的模式可以被重用的代码以显着的方式,是很容易理解。
- 陈述
- 标准化
语言是否有一个正式的标准? 这是非常重要的,以确保编写的程序有一个编译器/解释工作与另一个工作。 一些语言是由美国国家标准学会(ANSI)标准,有些是由国际标准化组织(ISO)标准,有的有一个非正式的,但事实上的标准并非由任何标准组织。
C + +语言的特点
现在所有的必要的理论已被覆盖,现在它是可以解释C + +作为编程语言提供。 C + + ...- ...是一个开放的ISO标准化语言。
一时间,C + +有没有官方的标准,并维持一个事实上的标准,但自1998年以来,C + +是由一个委员会的ISO标准化。 这里可以访问他们的网页。
- 是一个已编译的语言。
C + +直接编译为机器的本地代码,允许它在世界上速度最快的语言之一,如果优化。
- 是一个强类型语言不安全。
C + +是一门语言,希望知道他或她是做程序员,但允许由于令人难以置信的大量的控制。
- 支持清单,并推断打字。
截至最新的C + +标准,C + +的支持清单,并推断打字,允许灵活性和避免冗长的手段,在需要的地方。
- 支持静态和动态类型检查。
C + +允许类型转换,又提供了另一种程度的灵活性,无论是在编译时或运行时进行检查。 大多数C + +类型检查,但是,是静态的。
- 提供了许多范式选择。
C + +程序,通用的,面向对象的编程范式提供了非凡的支持,与许多其他范式尽可能。
- 是便携。
为一体的最常用的语言在世界上,作为一个开放的语言,C + +中支持它的许多不同的平台上运行的编译器 ,具有很宽的范围内。 独占使用的代码C + +的标准库将在多种平台上运行,少数没有变化..
- 是向上兼容C
C + +是一种语言,直接生成C,兼容几乎所有的C代码。 C + +可以使用几个C库的C库代码进行任何修改。
- 有令人难以置信的库支持。
上流行的项目管理网站SourceForge上搜索“图书馆”将产生超过3000项查询结果,C + +库。 这里可能会发现搜索结果的链接。
写信天翁 。