(程序设计语言和开发环境)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ProgrammingLanguagesandDevelopmentEnvironment(程序设计语言和开发环境)~course/cs101/2008HongfeiYanSchoolofEECS,PekingUniversity10/8/20082Outline•Programminglanguages•Developmentenvironment3EvolutionEvolutionofcomputerlanguages4计算机语言的演化•机器语言–指令由0和1串组成,程序可直接执行•符号语言–用符号表示不同的机器语言指令,必须被汇编(assembler)为机器语言•高级语言–从关注计算机转移到关注问题本身.用语句(statement)构造应用逻辑.通常不能直接执行,要编译(compile)或解释(interpret)执行.5Computerlanguage•Thetermcomputerlanguageincludesalargevarietyofartificiallanguagesusedtocommunicatewithcomputers.–Itisbroaderthanthemorecommonly-usedtermprogramminglanguage.–Programminglanguagesareasubsetofcomputerlanguages.•Forexample,HTMLisamarkuplanguageandacomputerlanguage,butitisnottraditionallyconsideredaprogramminglanguage.–Machinecodeisacomputerlanguage.•Itcantechnicallybeusedforprogramming,andhasbeen(e.g.theoriginalbootstrapperforAltairBASIC),•thoughmostwouldnotconsideritaprogramminglanguage.6TypesofComputerLanguages•Programminglanguages–aretheprimarymeansbywhichdevelopersofcomputingsystemsinstructamachinetoorganizeormanipulateinformationorcontrolphysicaldevices.–Mostsoftwareiswrittenusingoneormoreprogramminglanguages.–CommonexamplesincludeC,C++,Java,BASIC,assemblylanguages,andmanyothers.•Scriptinglanguages–aredesignedtocontrolothersoftwareortocoordinatetheactionsofmultiplesoftwareapplications.•Machinecode–anonhuman-readablebinarycomputerlanguagewhichcorrespondstotheavailableinstructionsforamicroprocessor.•……7Whatproblemgavebirthtoprogramminglanguages?•Beforehighlevelprogramminglanguagesexisted,–computerswereprogrammedoneinstructionatatimeusingbinaryorhex.•atediousjobandalotoferrors.–Obviously,thisjobdidnotattractmanypeople,sotherewasashortageofprogrammers.•Expensivecomputerssatidleforlongperiodsoftimewhilesoftwarewasbeingdeveloped.–Softwareoftencosttwotofourtimesasmuchasthecomputer.•Thisledtothedevelopmentofassemblersandassemblylanguages.–Programmingbecamesomewhateasier,–butmanyusersstillwantedfloatingpointnumbersandarrayindexing.Sincethesecapabilitieswerenotsupportedinhardware,•highlevellanguageshadtobedevelopedtosupportthem.8WhatMakesaLanguageHot?•Easeofuse•LanguageFeatures•Performance•CorporateSupport•ExperiencedProgrammers•LegacyCode910Evolutionofprogramminglanguages11PASCAL•Pascal语言是由著名瑞士计算机科学家N.Wirth(1984年图灵奖得主)设计的一种语言,1968年提出后被全世界广泛接受,成为一种对计算机科学技术发展有巨大影响的语言。•这个语言的名字是为了纪念历史上著名的数学家和计算学科的先驱BlaisePascal(帕斯卡)。•Pascal语言把许多好的东西结合在一个很简练的语言里,被计算机教育界广泛采用。从七十年代末往后的很长一段时间里,Pascal成为世界范围的计算机专业教学语言。12NiklausWirth•In1984hewontheTuringAwardfordevelopingasequenceofinnovativecomputerlanguages.–Euler,AlgolW,Pascal,Modula,Modula-2andOberon.•HisarticleProgramDevelopmentbyStepwiseRefinement,abouttheteachingofprogramming,isconsideredtobeaclassictextinsoftwareengineering.•In1975hewrotethebookAlgorithms+DataStructures=Programs,whichgainedwiderecognitionandisstillusefultoday.13ADA•Ada生活在十九世纪中叶,是著名诗人拜伦的女儿–设计了巴贝奇分析机上解伯努利方程的一个程序,并证明当时的19世纪计算机狂人巴贝奇的分析器可以用于许多问题的求解。她甚至还建立了循环和子程序的概念。由于她在程序设计上的开创性工作,被称为世界上第一位程序员。•Ada语言开发的目的是作为新一代的美国军用程序设计语言(1983-1995),作为所有与国防有关的程序和软件的统一语言标准。•Ada语言自1983年作为标准提出后,虽由美国国防部大力推行,也受到各国军方的重视,但不像预想的那样成功,其中一个原因是它太复杂。14C•Cprogramminglanguage–wasdevisedbyBellLabsofAT&T–asasystemimplementationlanguageforthenascentUnixoperatingsystem.•Contribution:–Efficiency–Casting–FlexiblearrayLibrary–GoodportabilityKenThompson(left)withDennisRitchie(right)15C语言•C是由美国贝尔实验室的DennisRitchie在1972年设计开发的,开发目的是想成为一种编制“系统程序”的工具语言。•Retchie等人首先用自己发明的C语言编写了Unix操作系统。以后C语言逐步发展成为开发系统软件的主要语言。•C语言已成为最重要的软件系统开发语言,由此可见C语言在计算机领域地位之重要。16SIMULA•Althoughneverwidelyused,SIMULAishistoricallyimportant.–Developedfrom1964-67,SIMULAwasdesignedasalanguagetoaidincreatingsimulations.–SIMULAIwasintroducedin1964,itssolepurposewassystemsimulation.–ImmediatelyafterSIMULAIwasfinished,thedesignersdecidedtoworkonanewlanguagewhichwouldcontainmanymorefeaturessothatitcouldbeusedformoregeneralpurposeareas.–TheresultwasSIMLUA67.•Tohelpmakesimulationeasier,SIMULA67–introducedtheconceptofclasses,includinginstancingandcoroutine.–Thiswasthebeginningofdataabstraction.17C++•C++wasdesignedtoprovide–Simula'sfacilitiesforprogramorganization–togetherwithC'sefficiencyandflexibilityforsystemsprogramming.–Itwasintendedtodeliverthattorealprojects.•Contribution:–Onelinecomment–Inlinefunction–Multipleinheritance–Overloadingoperatorsandfunctions18C++语言•C++是在C语言基础上发展出的一种“面向对象”语言。它是由BjarneStroustrup在美国贝尔实验室开发的(1979)。•C++是C语言的一个扩充,–修正了C的一些弱点和不足,使用起来更方便可靠;–以支持“面向对象”(Object-Oriented,简称为OO)的程序设计方法为基本目标,提供了一套支持面向对象程序设计的机制,如“类”(class)、“对象”(object)等等。•面向对象的方法被认为是开发复杂软件系统的一种有效途径,OO程序设计语言也已经被广泛接受。•C++是目前使用最广泛的一种面向对象的程序设计语言。19我们这门课程主要介绍C++语言20Notations•Programminglanguages–Anotationfordescribingalgorithms(算法,即步骤)anddatastructure(数据结构,即数据或者是信息)•Program–Asentenceofaprogramminglanguage21Outline•Programminglanguages•Developmentenvironment–命令行开发环境–集成开发环境22Thecompilationsystem•Theprogramsthatperformthefourphases(preprocessor,compiler,assembler,andlinker)areknowncollectivelyasthecompilationsystem.•gcc–ohellohello.c23Buildingaprogram24Programexecution25TypicalC++DevelopmentEnvironment•Edit–Programmerwritesprogram(a

1 / 51
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功