英文翻译材料

债权人(商业银行)视角的企业经营业绩评价体系设计框架

———基于工业工程理论

严化川

(东南大学,江苏南京210000,中信银行南京分行,江苏南京210000)

摘要:每个企业都是一个复杂的、有生命力和连续变化的“社会—技术”系统。系统本身与周围环境有着物质和能量的交换。在公司进行财务活动的过程当中,最为典型的“物质和能量”交换便是现金的交换。现金的流动带动了公司相关的供应链和价值链的正常运转。公司的筹资、投资和股利分配三大理财活动构成企业现金交换的完整过程。作为企业融资的主要提供者的商业银行,面对为数众多的数额巨大的资金需求者,深刻感到单纯以企业个体信誉或对企业状况的主观判断和经验估测作为贷款的依据,必然身陷泥潭,血本无归。因此债权人(商业银行)必须对企业经营业绩进行自主的评价。本文基于工业工程理论,对债权人(商业银行)视角的企业经营业绩评价体系设计框架进行浅析,以期基于此框架所设计的企业经营业绩评价体系能够帮助债权人实现维护自身利益的目标。

关键词:

中图分类号:F832 文献标识码:A 文章编号:1008-4428(2009)08-71-03

企业业绩的测试、评价与改进,是组织系统管理的重要组成部分。作为企业融资的主要提供者的商业银行,面对为数众多的数额巨大的资金需求者,深刻感到单纯以企业个体信誉或对企业状况的主观判断和经验估测作为贷款的依据,必然身陷泥潭,血本无归。因此债权人(商业银行)必须对企业经营业绩进行自主的评价,并且作为企业业绩的评价主体,必须基于自己的视角构建企业经营业绩评价体系,以满足自身对企业经营业绩评价的需求。

基于债权人视角的企业经营业绩评价体系的框架结构应当由评价理念、评价程序、评价方法和评价指标共同构成,它是商业银行以防范信用风险和操作风险为目标的内控制度的重要环节。

一、确立正确的评价理念

管理首先是一种理念, 管理的实践是一项系统工程,管理是在一定的理念指导下为了实现现实目标的系统工程。

评价理念是指导企业经营业绩评价的基本原则,是整个评价体系运行的前提。根据工业工程的基本原理,我们应当确立系统变异的观点,从全局\ 整体系统思考的观点,以及价值定向的观点。

(一)系统或过程/流程变异的观点

分析和掌握系统或过程/流程变异的观点是工业工程建立有效的测量系统的重要出发点。

设计企业经营业绩评价体系,需要考虑组织背景对企业经营业绩评价的影响。这里所说的组织背景是指企业的生产经营活动所面临的外部环境和内部环境,包括外部环境、技术、组织战略、组织结构、规模、文化等变量。

工业工程理论提出:企业是一个复杂的,有生命,连续变化,“今天和昨天不一样”的大系统,具有时变的动态特征。近些年来,经济全球化使企业变得更加复杂化和动态化,企业面对市场变化、竞争规则、经济、市场和资源条件都同已有的经验极不同, 企业面临着日益增大的商务风险,并且这种风险还处在不断变化当中。

因而在设计企业业绩评价体系时,我们必须按照工业工程所指出的那样,利用数据统计方法和量化分析掌握系统或过程/流程的变异,了解变异的本质,并对之实施管理控制。鉴于了解工作性能/业绩方面统计思考起着更加关键的作用,我们应当按照以下要点进行统计思考:

1、所有的工作都是相互关联的过程或流程的一部分。2、变化(变异或变差)总是存在于每个过程/流程中。3、85%以上的问题是过程流程变化造成的。4、过程决策必须建立在合适的过程数据基础上。

(二)从全局/整体进行系统思考的观点

工业工程遵循系统论与系统工程与分析的观点,处理任何问题都必须从全局/整体、全过程、全寿命的角度进行调查、测试、研究、分析、评价与决策,按全潜力发挥为准绳,匹配、整合、系统地集成规划、实施与测评。

从全局/整体进行系统思考的观点,就是指设计企业经营业绩评价体系时, 不仅需要注意系统要素的完整性,而且要注意系统要素之间的关联性。一切事物都是相互关联、相互依赖的,系统是一个整体,有一定的运行环境和一定的寿命期。工业工程理论指出:系统是由相互关联的功能实体组成的, 构成系统的组元是相互关联与相互作用的,形成协同机制支配下的自组织整体。基于债权人视角的企业业绩评价体系包括评价理念,评价程序方法和评价指标等基本要素,如果系统要素不完整,缺少任何一个基本要素都可能影响评价系统实施的效果和效率,如果要素之间不协调,甚至矛盾,那么也会限制业绩评价系统作用的有效发挥。

因此,我们必须按照工业工程的观点,在组织业绩测量系统的设计与运行时抓住系统的改进和优化,使组织系统整体达到更好的业绩。

(三)价值定向的观点

工程活动是价值定向的,在工程活动中的人———物关系主要是价值关系。评价工程活动的标准是价值标准。

一个系统是有‘目的’的。公司治理的利益相关者理论告诉我们,经济价值是由这样一些人创造的,这些人自愿聚集在一起,通过合作来改善各自的现状。债权人作为利益相关者,首先应当是具有自我利益保护动机的现实社会主体,其不仅应与企业之间存在着直接的利益关系,而且应具有自我利益保护的愿望和诉求。

商业银行基于债权人视角的企业经营业绩评价体系理所当然地应当以实现债权人的价值目的为标尺。我们在建立企业经营业绩评价体系时,无论是评价指标的选择还是评价方法的确定, 都要从债权人的利益角度出发去设计,以衡量债权人价值实现为导向。工业工程关于企业的目的不再只是“为老板赚钱”,而是“使受益者完全满意”(TSS,Total Stakenolder Satisfaction)。为了达到TSS,企业的目标是“将来同现在一样赚钱”,以净利润、投资回报率、现金流三个指标度量企业业绩,用产销量、库存和运行费用测度企业的运作,以“产销量最大化,库存与运行费用最小化”作为优化企业运作的目标判据的论述,已经让我们找到了企业目标与债权人利益的契合点。

构建符合债权人利益和需求的企业业绩评价体系,并且通过这种评价影响企业的业绩结果。从而充分利用自己的资源优势以及企业的“资源依赖”。根据一个组织依赖收益相关者的程度取决于特殊资源对组织的重要性,以及掌握资源的人对资源的垄断程度,乃至这些人对资源的分配的决定权的原理,促使企业组织对债权人利益给予更多的关注和重视。促进企业管理真正“使受益者完全满意”。从而达到保障债权人利益的目标。

二、设计科学的评价程序和方法

商业银行对企业经营业绩评价方法在实施时通常都是以企业对外提供的财务报告为主要的信息来源进行财务分析。究竟应当怎样进行财务分析,在财务分析中又应该怎样注意什么问题,工业工程关于组织系统业绩/性能的测定的有关论述给我们指明了一条科学的路径。工业工程理论指出:一个组织的管理系统可以由三个要素组成,即:谁进行管理,管理什么,和如何实现管理。循着这条路径,我们可以按照以下程序和方法对企业经营业绩进行分析。

(一)系统了解企业的会计政策

工业工程理论精辟地指出:“业绩测定与会计方法相关”。企业会计方法是由企业的会计政策决定的。所谓会计政策,是指企业进行会计核算和编制会计报表时所采用的具体原则、方法和程序。进一步说,企业的会计政策,是指企业对会计原则以及报告的原则和程序的决策。

会计准则的实施,企业经理人员有了相当大的选择会计程序的权力。在实际生活中,由于利益驱动甚至个人偏好等原因,这种权力甚至存在滥用的可能,因而使得对于企业会计政策及其变更的了解更加成为必要。

会计变动与企业风险的变化密切相关。不同的会计人员从相同的事实中得到并提供不同的会计数据,其理由是会计人员可自由地在一套会计程序中作出选择,并且不得不进行主观估计(如折旧)。

由此可见, 进行财务分析的前提就是系统地了解企业的会计政策,构成这些会计政策的会计程序和方法,以及会计程序的差异、会计程序的变动以及会计政策变更的理由,并且密切注意有关会计程序的使用和它对收益的影响。

(二)努力跟踪企业的会计循环,为财务分析提供真实的依据

当我们了解了企业采用的全部重大会计政策,以及企业会计处理方法的变更情况、变更原因及其对财务状况和经营成果的影响之后,为要正确地进行财务分析,我们还必须努力跟踪企业的会计循环。

会计信息的产生过程是一个输入———输出系统。会计信息生产过程可以看成将输入(I)、转换/变换(T)成输出(O)的系统。其输入包括原始资料数据,输出包括会计报表及其相关信息,变换可以通过会计核算来实现。

这一过程用会计术语来表达就是“会计循环”。会计循环是指企业在每一会计期间由分析经济业务、编制会计凭证开始、经过记帐、试算、调整、结算至决算报表的全部会计过程。我们只有跟踪企业的会计循环,对于跟踪检查中发现的数据失真,不论是无意间的技术性错误,抑或是精心筹划的编造,都应予以调整,以使提供进行财务分析的会计数据达到计算上正确合理,含义上科学规范这种完全意义上的真实。

跟踪检查的主要目标应当归结到企业的财务状况特别是资金状况上。财务状况是经营状况的综合反映,资金状况是财务状况的直接反映。可对企业生产经营中的资金、成本、盈利这几个方面总括起来进行统一评价,现金流转所体现的企业的变现能力与偿债能力,是企业流动性强弱的的基本构成要素。

企业的流动性依赖于符合要求的现金流转。没有流动性的企业是没有活力的、甚至要倒闭的企业。

基于上述理解基础上经过跟踪与检查的会计信息才是进行财务分析有用的信息。

需要指出的是,上述跟踪和检查,当然常常可以通过社会审计来进行。但是,如果仅仅依存于企业公布的财务报表,仅仅将分析的范围局限在外部,那我们分析的结果将在很大程度上受公布报表所包含的资料的数量和质量的制约,分析的结果将完全取决于报表的可靠性,而这样做的结果,已经为许多事实证明往往是很不可靠的。

因此按照银行信用风险的管理包括的贷款风险管理,审贷分离,贷后管理,贷款稽核等相关的要求,深入实际进行调查就显得十分必要了。

(三)在联系中研究财务指标

工业工程理论指出:构成系统的组元是相互关联与相互作用的,形成协同机制支配下的自组织整体。企业的经营活动是相互联系错综复杂的,各评价指标之间存在着逻辑关系、因果关系与行为关系等,必须在联系中研究财务指标,把各种财务指标有机地联系起来,科学地进行财务分析。

事实表明,在财务分析中,任何一项财务比率都不足以判断企业的财务状况和经营成果。只有分析了一组比率,才能作出合理的判断。而对一个企业财务状况和经营成果的综合评价,则更需要从多重角度进行。

同时,在会计核算中,即使企业已经力求会计核算的准确性, 但是由于有些经济业务本身就具有不确定性,因而需要根据经验判断作出估计,这就使得会计报表提供的信息常常具有近似的性质。因此对于企业经营业绩与财务状况的认识,还需要在生动活泼的经济实践中寻找答案。

工业工程理论提出:当代不断爆出的公司丑闻都和测量业绩的数据相关,所以必须保证测量业绩的可靠性。测量系统与数据的清晰度(能见度)已经成为增强辨识的测量系统的关键组元。时间和质量不再是组织业绩/性能的唯一指标,在今天,业绩/性能应该扩展为:效率、效益、生产率、财务业绩、工作寿命质量、顾客满意和革新等。显而易见,对于企业经营业绩的评价并不能仅仅局限

在进行财务分析的范围内。

(四)坚持综合评价,实现评价多维化

在我们重点研究了业绩评价的财务会计方法以后,我们还必须强调指出,评价企业业绩仅靠财务会计信息是远远不够的,为了准确全面的评价企业的经营业绩,我们还必须掌握和分析企业内部经营管理、客户、质量管理、职工、综合社会贡献等方面的信息,并相应地设计诸如领导者素质,基础管理水平,市场占有率与客户满意度,行业发展状况及企业地位,企业经济前景,环保等方面的非财务指标,构成一个包含财务指标和非财务指标的多维的评价指标体系,实行“评价多维化”。采用多维化的评价指标体系将可以避免管理者因为推崇一个评价指标而忽视其他指标包含的信息。研究表明,非财务指标能够提供关于贷款人行为的财务指标以外的增量信息,从而可以更准确客观地评价企业经营业绩(例如,客户满意度指标与公司未来的财务业绩显著正相关,等等)。既然评价企业业绩的指标体系是由财务指标和非财务指标所组成,因而我们除了采用财务分析方法之外,还必须系统地采用统计分析和业务分析的方法,以及其他工程技术的社会调查的方法。为从生动活泼的经济实践中去对企业业绩作出客观综合的评价,我们尤其要重视工业工程有关方法改进的工具———提问技术的运用。从工业工程的角度看,提问技术是指通过实际调查,发现问题,研究与分析问题,寻找解决问题的突破点/或系统解决方案的技术和方法。它包括,选择被调查的对象的规则,向被调查对象提问问题的内容,提问的步骤与程序,问题设计,调查结果的处理与分析等,它是一门工业工学科的特有的技术方法。

我们应当抓住企业组织业绩中质量、工作寿命质量、效益、革新、可获利性等关键因素,按照工业工程有关工作设计与组织业绩测量的方法,与业绩评价的财务会计方法有机地结合起来, 形成一个有机的系统评价方法体系,以全面有效地实现我们的评价企业业绩的目标。

三、设计与选择恰当的指标与指标组合

基于债权人视角的企业业绩评价的指标体系是由若干指标并且将这些指标分别按照它们各自的性质特征组合成多个指标组加以构成的。

工业工程认为,一个系统是有“目的”的,且可以有一个或多个目的。设计的困难在于是多目标的(包括经济、技术、管理、政治、社区、环境与社会等的目标)动态优化或近优化。因此我们在设计选用评价指标时应注意把握以下几点:

1、企业是一个复杂的经济体,为了实现对其业绩的多因素、多角度评价,业绩评价方法体系应选择多项评价指标进行定量与定性两方面的分析判断。为了全面、准确地评价企业业绩,不仅要考虑物质层面,也要考虑精神层面,不仅要考虑定量的财务指标,而且要考虑定性的非财务指标。

2、财务状况是企业全部生产经营动态和静态的货币反映,包括所有资产、负债、资本、损益的增减变化情况和结果。上述范围内任何一个数据的变化都会在另一相关方面显示出来,甚至引起连锁反应,如果某一方面的变化多次重复发生,就会引起企业财务状况发生重大的(良性或恶性的)变化。指标的设计与选择应从资产结构、循环速度、增值能力和筹资方式等多角度对企业的财务状况加以全面的反映。

3、现金流是连接各项生产经营活动之间、各项资产之间、资产与权益之间的纽带,是企业生存的命脉,发展的血液。现金流指标相对于资产、成本费用、利润等更客观更科学更能综合反映管理活动和财务管理的成效。信用这种经济活动的基本特征是偿还性。它的运动过程是借债还债的统一。现代公司制的有限责任制度是和债务偿还原则密不可分的。契约,尤其是债务及其它付现契约的履行,这是流动性概念的实质所在。因此基于债权人(商业银行)视角的企业业绩评价指标体系尤其要突出企业偿债能力和现金流动状况的指标。

4、工业工程强调,一切事物是相互关联、相互依赖的。因此,我们评价一个企业的经营业绩,必须把这个企业置于它所处的经营环境和行业之中,从企业所运营行业的相对增长状况、企业相对于行业的增长状况,反映行业竞争环境的供求状况,产品替代性,行业壁垒等方面设计与选择指标,以反映企业在行业中的竞争地位及其效果。

5、工业工程理论指出:一个组织的管理系统可以由三个要素组成,即:谁进行管理、管理什么和如何实现管理。我们之所以反复引用,并且认为它给我们指明了一条科学的路径,就是因为无论评价主体还是评价对象(在本文中分别指作为债权人的商业银行和作为债务人的企业)都有一个“谁进行管理、管理什么和如何实现管理”的问题。因此我们考察评价企业的经营业绩时就特别要关注企业最高领导者的素质、企业财务人员的素质等问题,并且也要特别关注企业满足经济行为、商业道德等基本准则方面的指标。因为一个企业的“管理结果”“管理绩效”总是和这个企业的“管理方式”联系在一起的。

 

第二篇:英文翻译材料格式参考

北方民族大学 毕业设计材料翻译

系(部)名 称: 计算机科学与工程学院 学 生 姓 名: 专 业: 学 号: 指导教师姓名:

北方民族大学教务处制

目 录

I. Introduction ................................................................................................................................... 1

II. Language Types ............................................................................................................................ 1

III. Classification of High-Level Languages ..................................................................................... 2

IV. Language Structure and Components .......................................................................................... 3

V. History .......................................................................................................................................... 4

一、引言........................................................................................................................................... 1

二、语言类型 ................................................................................................................................... 1

三、高级语言的分类 ....................................................................................................................... 2

四、语言的结构与成分 ................................................................................................................... 3

五、历史........................................................................................................................................... 3

I

Computer Language and Programming

I. Introduction

Programming languages, in computer science, are the artificial languages used to write a sequence of instructions (a computer program) that can be run by a computer. Similar to natural languages, such as English, programming languages have a vocabulary, grammar, and syntax. However, natural languages are not suited for programming computers because they are ambiguous, meaning that their vocabulary and grammatical structure may be interpreted in multiple ways. The languages used to program computers must have simple logical structures, and the rules for their grammar, spelling, and punctuation must be precise.

Programming languages vary greatly in their sophistication and in their degree of versatility. Some programming languages are written to address a particular kind of computing problem or for use on a particular model of computer system. For instance, programming languages such as FORTRAN and COBOL were written to solve certain general types of programming problems—FORTRAN for scientific applications, and COBOL for business applications. Although these languages were designed to address specific categories of computer problems, they are highly portable, meaning that they may be used to program many types of computers. Other languages, such as machine languages, are designed to be used by one specific model of computer system, or even by one specific computer in certain research applications. The most commonly used programming languages are highly portable and can be used to effectively solve diverse types of computing problems. Languages like C, PASCAL , and BASIC fall into this category.

II. Language Types

Programming languages can be classified as either low-level languages or high-level languages. Low-level programming languages, or machine languages, are the most basic type of programming languages and can be understood directly by a computer. Machine languages differ depending on the manufacturer and model of computer. High-level languages are programming languages that must first be translated into a machine language before they can be understood and processed by a computer. Examples of high-level languages are C, C++, PASCAL, and FORTRAN. Assembly languages are intermediate languages that are very close to machine languages and do not have the level of linguistic sophistication exhibited by other high-level languages, but must still be translated into machine language.

1. Machine Languages

1

In machine languages, instructions are written as sequences of 1s and 0s, called bits, that a computer can understand directly. An instruction in machine language generally tells the computer four things: (1) where to find one or two numbers or simple pieces of data in the main computer memory (Random Access Memory, or RAM), (2) a simple operation to perform, such as adding the two numbers together, (3) where in the main memory to put the result of this simple operation, and (4) where to find the next instruction to perform. While all executable programs are eventually read by the computer in machine language, they are not all programmed in machine language. It is extremely difficult to program directly in machine language because the instructions are sequences of 1s and 0s. A typical instruction in a machine language might read 10010 1100 1011 and mean add the contents of storage register A to the contents of storage register B.

2. High-Level Languages

High-level languages are relatively sophisticated sets of statements utilizing words and syntax from human language. They are more similar to normal human languages than assembly or machine languages and are therefore easier to use for writing complicated programs. These programming languages allow larger and more complicated programs to be developed faster. However, high-level languages must be translated into machine language by another program called a compiler before a computer can understand them. For this reason, programs written in a high-level language may take longer to execute and use up more memory than programs written in an assembly language.

3. Assembly Languages

Computer programmers use assembly languages to make machine-language programs easier to write. In an assembly language, each statement corresponds roughly to one machine language instruction. An assembly language statement is composed with the aid of easy to remember commands. The command to add the contents of the storage register A to the contents of storage register B might be written ADD B, A in a typical assembly language statement. Assembly languages share certain features with machine languages. For instance, it is possible to manipulate specific bits in both assembly and machine languages. Programmers use assembly languages when it is important to minimize the time it takes to run a program, because the translation from assembly language to machine language is relatively simple. Assembly languages are also used when some part of the computer has to be controlled directly, such as individual dots on a monitor or the flow of individual characters to a printer.

III. Classification of High-Level Languages

High-level languages are commonly classified as procedure-oriented, functional, object-oriented, or logic languages. The most common high-level languages today are procedure-oriented languages. In these languages, one or more related blocks of statements that perform some complete function are grouped together into a program module, or procedure, and given a name such as “procedure A.” If the same sequence of operations is needed elsewhere in

2

the program, a simple statement can be used to refer back to the procedure. In essence, a procedure is just a mini-program. A large program can be constructed by grouping together procedures that perform different tasks. Procedural languages allow programs to be shorter and easier for the computer to read, but they require the programmer to design each procedure to be general enough to be used in different situations.

Functional languages treat procedures like mathematical functions and allow them to be processed like any other data in a program. This allows a much higher and more rigorous level of program construction. Functional languages also allow variables—symbols for data that can be specified and changed by the user as the program is running—to be given values only once. This simplifies programming by reducing the need to be concerned with the exact order of statement execution, since a variable does not have to be redeclared, or restated, each time it is used in a program statement. Many of the ideas from functional languages have become key parts of many modern procedural languages.

Object-oriented languages are outgrowths of functional languages. In object-oriented languages, the code used to write the program and the data processed by the program are grouped together into units called objects. Objects are further grouped into classes, which define the attributes objects must have. A simple example of a class is the class Book. Objects within this class might be Novel and Short Story. Objects also have certain functions associated with them, called methods. The computer accesses an object through the use of one of the object’s methods. The method performs some action to the data in the object and returns this value to the computer. Classes of objects can also be further grouped into hierarchies, in which objects of one class can inherit methods from another class. The structure provided in object-oriented languages makes them very useful for complicated programming tasks.

Logic languages use logic as their mathematical base. A logic program consists of sets of facts and if-then rules, which specify how one set of facts may be deduced from others, for example:

If the statement X is true, then the statement Y is false.

In the execution of such a program, an input statement can be logically deduced from other statements in the program. Many artificial intelligence programs are written in such languages.

IV. Language Structure and Components

Programming languages use specific types of statements, or instructions, to provide functional structure to the program. A statement in a program is a basic sentence that expresses a simple idea—its purpose is to give the computer a basic instruction. Statements define the types of data allowed, how data are to be manipulated, and the ways that procedures and functions work. Programmers use statements to manipulate common components of programming languages, such as variables and macros (mini-programs within a program).

3

Statements known as data declarations give names and properties to elements of a program called variables. Variables can be assigned different values within the program. The properties variables can have are called types, and they include such things as what possible values might be saved in the variables, how much numerical accuracy is to be used in the values, and how one variable may represent a collection of simpler values in an organized fashion, such as a table or array. In many programming languages, a key data type is a pointer. Variables that are pointers do not themselves have values; instead, they have information that the computer can use to locate some other variable—that is, they point to another variable.

An expression is a piece of a statement that describes a series of computations to be performed on some of the program’s variables, such as X+Y/Z, in which the variables are X, Y, and Z and the computations are addition and division. An assignment statement assigns a variable a value derived from some expression, while conditional statements specify expressions to be tested and then used to select which other statements should be executed next.

Procedure and function statements define certain blocks of code as procedures or functions that can then be returned to later in the program. These statements also define the kinds of variables and parameters the programmer can choose and the type of value that the code will return when an expression accesses the procedure or function. Many programming languages also permit minitranslation programs called macros. Macros translate segments of code that have been written in a language structure defined by the programmer into statements that the programming language understands.

V. History

Programming languages date back almost to the invention of the digital computer in the 1940s. The first assembly languages emerged in the late 1950s with the introduction of commercial computers. The first procedural languages were developed in the late 1950s to early 1960s: FORTRAN, created by John Backus, and then COBOL, created by Grace Hopper. The first functional language was LISP, written by John McCarthy in the late 1950s. Although heavily updated, all three languages are still widely used today.

In the late 1960s, the first object-oriented languages, such as SIMULA, emerged. Logic languages became well known in the mid 1970s with the introduction of PROLOG, a language used to program artificial intelligence software. During the 1970s, procedural languages continued to develop with ALGOL, BASIC, PASCAL, C, and Ada. SMALLTALK was a highly influential object-oriented language that led to the merging of object-oriented and procedural languages in C++ and more recently in JAVA. Although pure logic languages have declined in popularity, variations have become vitally important in the form of relational languages for modern databases, such as SQL.

4

计算机语言与编程

一、引言

在计算机科学中,编程语言是用来编写可被计算机运行的一系列指令(计算机程序)的人工语言。与英语等自然语言相类似,编程语言具有词汇、语法和句法。然而,自然语言不适合计算机编程,因为它们能引起歧义,也就是说它们的词汇和语法结构可以用多种方式进行解释。用于计算编程的语言必须具有简单的逻辑结构,而且它们的语法、拼写和标点符号的规则必须精确。

编程语言在复杂性和通用程度上大相径庭。有些编程语言是为了处理特定类型的计算问题或为了用于特定型号的计算机系统而编写的。例如,FORTRAN和COBOL等编程语言是为解决某些普遍的编程问题类型而编写的——FORTRAN为了科学领域的应用,而COBOL为了商业领域的应用。尽管这些语言旨在处理特定类型的计算机问题,但是它们具有很高的可移植性,也就是说它们可以用来为多种类型的计算机编程。其他的语言,譬如机器语言,是为一种特定型号的计算机系统,甚至是一台特定的计算机,在某些研究领域使用而编写的。最常用的编程语言具有很高的可移植性,可以用于有效地解决不同类型的计算问题。像C、PASCAL和BASIC这样的语言就属于这一范畴。

二、语言类型

编程语言可划分为低级语言和高级语言。低级编程语言或机器语言,是编程语言中最基础的类型,能被计算机直接理解。机器语言的区别取决于制造商和计算机的型号。高级语言是在计算机能够理解和处理之前必须首先翻译成机器语言的编程语言。C、C++、PASCAL和FORTRAN都是高级语言的例子。汇编语言是中级语言,非常接近于机器语言,没有其他高级语言所表现出的语言复杂程度,但仍然得翻译成机器语言。

1、机器语言

在机器语言中,指令被写成计算机能够直接理解的被称之为比特的1和0的序列。机器语言中的一条指令通常告诉计算机4件事情:(1)到计算机主存储器(随机访问存储器)的哪个位置去找一或两个数字或者简单的数据段;(2)要执行的一个简单操作,例如将两个数字加起来;(3)将这个简单操作的结果存放在主存储器的什么位置;以及(4)到哪里找要执行的下一条指令。虽然所有的可执行程序最终都是以机器语言的形式被计算机读取,但是它们并非都是用机器语言编写的。直接用机器语言编程极端困难,因为指令是1和0的序列。机器语言中的一条典型的指令可能是10010 1100 1011,意思是将存储寄存器A的内容加到存储寄存器B的内容中。

2、高级语言

1

高级语言是利用人类语言中的词和句法的一套相对复杂的语句。它们比汇编语言和机器语言更类似于正常的人类语言,因此用来编写复杂的程序更容易。这些编程语言允许更快地开发更庞大和更复杂的程序。然而,在计算机能够理解之前,高级语言必须被称之为编译器的另外一种程序翻译成机器语言。因为这个原因,与用汇编语言编写的程序比较起来,用高级语言编写的程序可能运行的时间更长,占用的内存更多。

3、汇编语言

计算机编程人员使用汇编语言使机器语言程序编写起来更简单一些。在汇编语言中,每条语句大致对应一条机器语言指令。汇编语言的语句是借助易于记忆的命令编写的。在典型的汇编语言的语句中,把存储寄存器A的内容加到存储寄存器B的内容中这一命令,可以写成ADD B, A。汇编语言与机器语言具有某些共同特征。例如,对特定的比特进行操作,用汇编语言和机器语言都是可行的。当尽量减少程序的运行时间很重要时,程序员就使用汇编语言,因为从汇编语言到机器语言的翻译相对简单。当计算机的某个部分必须被直接控制时,如监视器上的单个点或者流向打印机的单个字符,这时也使用汇编语言。

三、高级语言的分类

高级语言通常分为面向过程的、函数式的、面向对象的或逻辑的语言。当今最常见的高级语言是面向过程的语言。在这种语言中,执行某个完整功能的一个或多个相关的语句块组成一个程序模块或过程,而且被给予诸如“过程A”的名称。如果在程序的其他地方需要同样的操作序列,可以使用一个简单的语句调回这个过程。实质上,一个过程就是一个小型程序。一个大程序可以通过将执行不同任务的过程组合在一起而构成。过程语言使程序变得比较短,而且更易于被计算机读取,但是要求程序员将每个过程都设计得足够通用,能用于不同的情况。

函数式语言像对待数学函数一样对待过程,并允许像处理程序中的任何其他数据一样处理它们。这就使程序构造在更高、更严密的水平上得以实现。函数式语言也允许变量——在程序运行过程中可以被用户指定和更改的数据符号——只被赋值一次。这样,通过减少对语句执行的确切顺序给予关注的必要性,就简化了编程,因为一个变量没有必要每次在一个程序语句中用到,都重新定义或重新赋值。函数式语言的许多观点已经成为许多现代过程语言的关键部分。

面向对象的语言是函数式语言的发展结果。在面向对象的语言中,用来编写程序的代码和程序处理的数据,组合成叫做对象的单元。对象进一步组合成类,而类则定义对象必须具有的属性。类的一个简单例子就是书这个类。这个类中的对象可能是小说和短篇小说。对象还有某些与其相关的功能,称为方法。计算机通过使用对象的某种方法来使用这个对象。方法对对象中的数据执行某个操作,然后将值返回给计算机。对象的类也可更进一步组合成层,而在层中一个类的对象可继承另一个类的方法。面向对象的语言中所提供的这种结构,使面向对象的语言对于复杂的编程任务非常有用。

逻辑语言将逻辑用作其数学基础。一个逻辑程序由一系列的事实与“如果??则”规则

2

组成,来具体说明一系列事实如何可以从其他实事中推断出来,例如:

如果X语句为真,则Y语句为假。

在这样一个程序的执行过程中,一条输入语句可以按照逻辑从程序中的其他语句推断出来。许多人工智能程序使用这种语言编写。

四、语言的结构与成分

编程语言使用特定类型的语句或指令,来给程序提供功能结构。程序中的一条语句是表达一个简单意思的基本句子,其目的是给计算机一条基本指令。语句对允许的数据类型、数据如何处理以及过程和函数的工作方式进行定义。程序员利用语句来操作编程语言的常见成分,如变量和宏(程序中的小型程序)。

数据声明语句给予称为变量的程序元素以名称和属性。变量在程序中可以赋予不同的值。变量可以具有的属性被称作类型,它们包括:变量中可能存储什么样的值,值中使用何种程度的数值精度,以及一个变量可以如何以有组织结构的方式——如以表或数组的形式——代表一组比较简单的值等等。在许多编程语言中,一种关键的数据类型是指示字。指示字变量本身没有值;相反,它们含有计算机可以用来查找某个其他变量的信息——也就是说,它们指向另一个变量。

表达式是语句的一段,描述要对一些程序变量执行的一系列运算,如X+Y/Z,其中X、Y和Z为变量,运算方法为加和除。赋值语句给一个变量赋予得自某个表达式的值,而条件语句则指定要被测试、然后用于选择接下来应该执行的其他语句的表达式。

过程与函数语句将某些代码块定义为以后可在程序中返回的进程或函数。这些语句也规定程序员可以选择的变量与参数种类,以及当一个表达式使用过程或函数时代码将返回的值的类型。许多编程语言也容许叫做宏的小型翻译程序。宏把使用程序员定义的语言结构编写的代码段翻译成编程语言可以理解的语句。

五、历史

编程语言几乎可以追溯到20世纪40年代数字计算机发明之时。最早的汇编语言,随着商业计算机的推出,出现于20世纪50年代末。最早的过程语言是在20世纪50年代末到20世纪60年代初开发的:FORTRAN语言由约翰?巴克斯创造,然后由格雷斯?霍珀创造了COBOL语言。第一种函数式语言是LISP,由约翰?麦卡锡20世纪50年代末编写。这3种语言今天仍在广泛使用,但经历过大量修改。

20世纪60年代末,出现了最早的面向对象的语言,如SIMULA语言。逻辑语言在20

3

世纪70年代中期随着PROLOG语言的推出而变得广为人知;PROLOG语言是一种用于编写人工智能软件的语言。在20世纪70年代,过程语言继续发展,出现了ALGOL、BASIC、PASCAL、C和Ada等语言。SMALLTALK语言是一种具有高度影响力的面向对象的语言,它导致了面向对象的语言与过程语言在C++和更近期的JAVA语言中的结合。尽管纯粹的逻辑语言受欢迎的程度有所下降,但其变体以现代数据库所使用的关系语言——如结构化查询语言——的形式,变得至关重要。

4

相关推荐