登录
首页 » Others » Concepts in Programming Languages.pdf

Concepts in Programming Languages.pdf

于 2020-12-09 发布
0 92
下载积分: 1 下载次数: 0

代码说明:

Concepts in Programming Languages by John Mitchell.一本国外经典教材,看了之后对编程语言更加理解。费了很多劲才找到的。Concepts in Programming LanguagesThis textbook for undergraduate and beginning graduate students explains and examines the central concepts used in modern programminglanguages, such as functions, types, memory management, and controlThe book is unique in its comprehensive presentation and comparisonof major object-oriented programming languages. Separate chapters ex-amine the history of objects, Simula and Smalltalk, and the prominentanguages c++ and JavaThe author presents foundational topics, such as lambda calculus anddenotational semantics, in an easy-to-read, informal style, focusing on themain insights provided by these theories. Advanced topics include concurrency and concurrent object-oriented programming. A chapter on logicprogramming illustrates the importance of specialized programming meth-ods for certain kinds of problemsThis book will give the reader a better understanding of the issuesand trade-offs that arise in programming language design and a betterappreciation of the advantages and pitfalls of the programming languagesthey useJohn C. mitchell is Professor of Computer Science at Stanford University,where he has been a popular teacher for more than a decade. Many of hisformer students are successful in research and private industry. He received his ph D. from mit in 1984 and was a member of technical staff atat&T Bell Laboratories before joining the faculty at Stanford. Over thepast twenty years, Mitchell has been a featured speaker at internationalconferences; has led research projects on a variety of topics, includingprogramming language design and analysis, computer security, and applications of mathematical logic to computer science; and has written morethan 100 research articles. His previous textbook, Foundations for Pro-gramming Languages(MIT Press, 1996), covers lambda calculus, typesystems, logic for program verification, and mathematical semantics ofprogramming languages. Professor Mitchell was a member of the programming language subcommittee of the ACM/ieEE Curriculum 2001standardization effort and the 2002 Program Chair of the aCm principlesof programming languages conferenceCONCEPTS NPROGRAMMINGLANGUAGESJohn c. mitchellStanford UniversityCAMBRIDGEUNIVERSITY PRESSPUBLISHED BY THE PRESS SYNDICATE OF THE UNIVERSITY OF CAMBRIDGEThe Pitt Building, Trumpington Street, Cambridge, United KingdomCAMBRIDGE UNIVERSITY PRESSThe Edinburgh Building, Cambridge CB2 2RU, UK40 West 20th Street, New York, NY 10011-4211 USA477 Williamstown Road, Port Melbourne vic 3207, AustraliaRuiz de alarcon 13, 28014 Madrid, spainDock House, The Waterfront, Cape Town 8001, South Africahttp://www.cambridge.orgo Cambridge university press 2004First published in printed format 2002isBN 0-511-03492-X eBook(adobe readerISBN 0-521-78098-5 hardbackContentsPrefacepage IxPart 1 functions and foundations1 Introduction1.1 Programming Languages1.2 Goals1.3 Programming Language History3561.4 Organization: Concepts and Languages2 Computability2. 1 Partial Functions and computability102.2 Chapter SummaryExercises163 Lisp: Functions, Recursion, and Lists3.1 Lisp History183.2 Good Language design203. 3 Brief Language overview223.4 Innovations in the Design of Lisp253.5 Chapter Summary: Contributions of LispExercises404 Fundamentals484.1 Compilers and syntax484.2 Lambda calculus4.3 Denotational semantics4.4 Functional and Imperative Languages4.5 Chapter SummaryExercisesContentsPart 2 Procedures, Types, Memory Management, and Control5 The algol Family and ML5.1 The Algol Family of Programming Languages5.2 The Development of C5.3 The LCF System and ml5.4 The Ml Programming Language1035.5 Chapter summary121Exercises1226 Type Systems and Type Inference1296.1 Types in Programming1296.2 Type Safety and Type Checking1326.3 Type Inference1356.4 Polymorphism and Overloadin1456.5 Type Declarations and Type Equality1516.6 Chapter Summary155Exercises1567 Scope, Functions, and storage Management1627.1 Block-Structured Languages1627.2 In-Line blocks1657.3 Functions and procedures1707.4 Higher-Order functions1827.5 Chapter summary190Exercises1918 Control in Sequential Languages2048.1 Structured control2048.2 Exceptions2078.3 Continuations2188.4 Functions and evaluation order2238.5 Chapter summary227Exercises8Part 3 Modularity, Abstraction, and object-Oriented Programming9 Data Abstraction and Modularity2359.1 Structured Programming2359.2 Language Support for Abstraction2429.3 Modules9.4 Generic Abstractions2599.5 Chapter Summary269Exercises27110 Concepts in Object-Oriented Languages27710.1 Object-Oriented design27710.2 Four Basic concepts in object-Oriented languages278Contents10.3 Program Structure28810.4 Design Patterns29010.5 Chapter summary29210.6 Looking Forward: Simula, SmalltalkC++Java293Exercises29411 History of objects: Simula and smalltalk30011.1 Origin of Objects in Simula30011.2 Objects in Simula30311.3 Subclasses and Subtypes in Simula30811.4 Development of smalltalk31011.5 Smalltalk Language features31211.6 Smalltalk flexibilit31811.7 Relationship between Subtyping andInheritance2211.8 Chapter SummaryExercises32712 objects and Run-Time Efficiency: C++33712.1 Design goals and Constraints33712.2 Overview of c++34012.3 Classes. Inheritance and Virtual functions34612.4 Subtyping35512.5 Multiple inheritance12.6 Chapter summary366Exercises36713 Portability and Safety: Java38413.1 Java language overview38613.2 Java Classes and Inheritance38913.3 Java Types and Subtyping39613.4 Java System architecture40413.5 Security Features41213.6 Java summary417Exercises420Part 4 Concurrency and Logic Programming14 Concurrent and Distributed Programming43114.1 Basic Concepts in Concurrency43314.2 The actor model44114.3 Concurrent ML14.4 Java concurrency45414.5 Chapter Summary466Exercises469Contents15 The Logic Programming Paradigm and Prolog47515. 1 History of logic Programming15.2 Brief Overview of the logic Programming Paradigm4715. 3 Equations solved by Unification as Atomic Actions15.4 Clauses as Parts of procedure declarations48215.5 Prologs Approach to Programming48615.6 Arithmetic in Prolog49215.7 Control, Ambivalent Syntax, and Meta-Variables49615.8 Assessment of Prolog50515.9 Bibliographic remarks50715.10 Chapter Summary507Appendix a Additional Program Examples509A 1 Procedural and Object-Oriented organization509Glossary521Index525

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • DTMF双音多频信号生成与检测(Matlab)
    利用Matlab编写的DTMF双音多频信号的生成与检测程序。可以生成DTMF信号,并可按照一定信噪比传输,可滤除工频干扰,并依据噪声自适应检测识别信号。
    2020-11-30下载
    积分:1
  • 光栅反射率光谱的matlab仿真代码
    matlab对光栅反射率光谱的仿真代码,程序运行后能显示图形。
    2020-06-25下载
    积分:1
  • qualnet译说明
    qualnet采用VS进行编译的说明文档,中文版,指导新手在VC的环境下将qualnet导入成一个项目进行代码修改与编译。
    2020-11-27下载
    积分:1
  • VB.NET技巧与实例集粹PDF,200个经典实例,非常好的教.
    VB.NET编程技巧与实例集粹PDF,200个经典实例,非常好的教程.
    2020-12-06下载
    积分:1
  • 激光雷达数据.las格式
    本文件是用激光雷达采集的户外环境的数据,可以为数据处理,环境建模等方面的朋友提供数据支持。
    2020-12-03下载
    积分:1
  • Echarts-4.0.4官方文档-配置项手册
    最新版的Echarts-4.0.4配置项手册,PDF格式,官网不提供下载。
    2020-12-05下载
    积分:1
  • vc++ 宝典(十年典藏版) 书后光盘源代码
    vc++ 编程宝典(十年典藏版) 书后光盘源代码,即MA文件夹全部内容
    2021-05-07下载
    积分:1
  • 遥感图像特征点提取(moravec和fostner)
    能够读取遥感影像,并利用Moravec和fostner算子提取特征点,内附影像
    2020-12-01下载
    积分:1
  • SHT21_SHT20温湿度传感器,STM32驱动
    SHT21_SHT20温湿度传感器,STM32驱动,接口丰富!
    2020-12-07下载
    积分:1
  • mini2440之U-boot移植详细手册-20110908.pdf
    mini2440之U-boot移植详细手册-20110908.pdf上海嵌入式家园-开发板商城贺工www.embedclub.com第6章 U-BOOT在MN440上的移植.…556.1建立开发板文件,测试编泽环境55611修改顶层 Makefile561.2在/b0ad中建smd2440日录和文件5661.3 include/ngs/中建立发板配量之件,.:·61.4测试编译环境566,2第一阶段:探索启动代码6.2.1关闭为A79200写的ED必转576.2.2修改CPU额率初始化设置586.2.3修改0weve/nit.S文件,…59624修改代码重定向部分606.2.5增加ED的点亮架作…6963第二阶段:修改初始化代码7063修改加am/b0ard,C文件…706.3.2修改bord/ embedclub/smdk2440/5mdk2440.c文件64第三阶段:完善目标板夕设驱动…76641 Nand flash相关代码的修改..7664.2添加s(2)像烧写功能…7964.3修改 Nor flash写入功能的代644修改网络相关代码9364.5添加口 Xmodem传物协议(可不修改)93646添加CD显小功能96647添加D卡MMC)读取功能10165第四阶段:修正配置文件11865.1添加 CONFIG S3C2440条件定义11865.2修改量之 include/ configs/smdk2440a,h66重新编译并测试第7章UBO0T下添加自定义的命令13471MAN_LooP()与 ABORTBOOT(两数分析1347.11 main loop()的数分析:1357.1.2 abortboot/两数分析tinnddnd4灬13572U-BoOT卜添加主菜单界面命令MENU137第8章 U-BOOT下通过DNW实现 USB SLAVE下载功能4.81添加 USB SLAVE下载功能.…14382使用 WINDOWS下DNW测试 USB SLAVE下载功能14983在LNx下安装DNW实现 USB SLAVE下载功能151831 Linux下DNW源码下我1518.32编详DNW驱动和程序15183.3挂教 secbulk ko内孩模块.1518.34使iux下DNW完成下我…151第9章UBoD0T下载的源代码链接…上海嵌入式宗回-歇板商城嵌入式家园阙扯:ww.embedclub.com淘宝城网址http://embedclub,taobaocom/上海嵌入式家园-开发板商城贺工www.embedclub.com第章的概念与功能嵌入式 Linux软件结构与分布一般情况下嵌入式系统中的软件主要分为以下几部分:引导加载程序:其中包括内部中的固化启动代码和两部分。内部固化是厂家在芯片生产时候固化的,作用基本上是引导有的芯片比较复杂,比如在屮没有代码的时候有许多启动方式或以太网等等。而则很简单,只有和和文件系统。包括根文件系统和建立于内存设备之上的文件系统(等等)。它是提供管理系统的各种配置文件以及系统执行川户应用程序的良好运行环境及载体。应用程序。用户自定义的应用程序,存放于文件系统之中。在存储器中,他们的分布一般如:根文件系统其他文件系统参数区被挂载到根文件系统或者作为但是以上只是大部分情况下的分布,也有一些可能根文件系统是,被一起压缩到了内核映像甲,或老没有参数区,等等在嵌入式 Linux中 Bootloader的必要性内核的启动除了内核怏像必须在主存的适当位置,还必须具备一定的条件:R0=01.CPU寄存器的设置:R1= Machine id(即 Machine type number,定义在inux/arch/ arm/tools/ mach typesR2=内核启动参数在RM中起始基地址;2.CPU模式:必须禁止中断(IRQs和FIQs);CPU必须SVC模式M必须关闭3. Cache和MMU的设置:指令 Cache可以打开也可以关闭:数据 Cache必须关闭;上海嵌入式家园一开牧椒商城嵌入式家园阙扯:ww.embedclub.com淘宝城网址http://embedclub,taobaocom/上海嵌入式家园-开发板商城贺工www.embedclub.com但是在刚上电启动的时候,一般连内存掉制器都没有初始化过,根本无法在主存中运行程序,更不可能处在内核启动环境中。为了初始化及其他外设,使得内核可以在系统主存中运行,并让系统符合内核启动的必备条件,必须要一个先于内核运行的程序,他就是所谓的引导加载程序(而并不是才需要,而是几乎所有运行操作系统的设备都需要。我们的的就是的一部分(只是前期引导,后面一般还有外中的各种),对于来说,的功能和选择综上:所述是在操作系统内核启动之前运行的一段小程序。通过这段程序我们可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好止确的环境,最后从别处(、以太网、)载入内核映像到主存并跳到入口地址。由于需要直接操作硬件,所以它严重依赖于硬件,而且依据所引导的操作系统的不同,也有不同的选择。对于嵌入式世界中更是如此。就而言,如果是引导般选用韩国的公司设计的或者软件工程中心的,如果是引导,就选用。如果是开发构架下的,就可选用由和发布的。如果是要引导系统,可以选用同是公司开发的所以在嵌入式世界中建立一个通用的几乎是不可能的,而可能的是让一个代码支持多种不同的构架和操作系统,并让她有很好的可移植性。就是攴持多平台多操作系统的一个杰出代表。这也是的优势所在,因为如果在开发时熟悉了,再转到别的平台的时候,就可以很快地完成这个平台下的移植。而且的代码结构越来越合理,对于新功能的添加也十分容易次推荐阅读:嵌入式系统技术内幕上海嵌入式宗回-歇板商城嵌入式家园阙扯:ww.embedclub.com淘宝城网址http://embedclub,taobaocom/上海嵌入式家园-开发板商城贺工www.embedclub.com第章简介U-boot的起源是的简称,其含义是,是遵循条款的开放源码项目。最早德国软件工程中心的基于和的源码创建了工程项目,此后不断添加处理器的支持。而后,移植到平台上,创建了工程项日。最终,以工程和工程为基础,创建了工程年月日第一个版木发布,同时和停止维护而今作为一个主流、通用的,成功地被移植到包括等主流休系结构上的百种开发板,成为功能最多、灵活性最强,并且开发最积极的廾涼日前仍然由维护U-boot的开发情况和资源最早的版本号是由来表示的,从直发展到。之后便开始使用年份加月份的表示方法,从到现在的平均每个多月出一个新版本。每次代码的结构和定义都会有一些修和改进,其代码越来越规整,功能越来越强,但是移植的难度反而越来越小,需要修改的地方越来越少不仅有主线版本,在的代码仓库中还有各个构架的分支版本些分支会在一定的时候将修改汇入主线。下面总结一下关丁源代码的网络资源官方链接德国软件工程屮心主页官方主页注意其中的邮件列表链接官方源码下载官方代码仓库针对的修改于机的源码上海嵌入式宗回-歇板商城嵌入式家园阙扯:ww.embedclub.com淘宝城网址http://embedclub,taobaocom/上海嵌入式家园-开发板商城贺工www.embedclub.com的源码(针对源码(针对上海嵌入式宗回-歇板商城嵌入式家园阙扯:ww.embedclub.com淘宝城网址http://embedclub,taobaocom/上海嵌入式家园-开发板商城贺工www.embedclub.com第章开发环境搭建交叉编译工具链的安装编译公A的时候,必须使用交叉编译工具链。你可以使用友善之臂提供的交叉编译工具(版本),也可以使用或自己编译一个。至于如何用工具自己编译交叉编译工具链,请看的博客的相关文章:用建立—交叉编译环境建立交叉编译环境(以()为例)在编译好交叉编译工具链后,要在环境变量的中添加编译工具的路径(也就是所在的路径),这样在编译时系统才找得到编译器的命令。在下的修改方法如下:在最后加上:交叉编译工具的路径网路服务的设置在使用的时候常常会用到宿主机的和这两种网络服务,所以最好在开发前设置好。下面以下使用安装为例,简单介绍一下安装配置过程:安装配置服务安装酣置服务的大致步骤如下:()安装和程序()修改配置文件()根据配置文件的跻径,建立日录,并修改日录权限;()重启服务()本地传输测试。以下是一个安装和配置主要步骤的脚本,大家参考:你想要的目录路径上海嵌入式宗回-歇板商城嵌入式家园阙扯:ww.embedclub.com淘宝城网址http://embedclub,taobaocom/上海嵌入式家园-开发板商城贺工www.embedclub.com你想要的日录路径建立目录,并修改目录权限:重启安装配置服务安装配置服务的大致步骤如下:()安装内核服务;()重新配置服务,修改和配置文件,重启服务()修改服务的配置文件添加服务∏录和配置,重新导入配置()重启服务,并检查可挂载的日录()在本地挂载测试以下是一个安装和配置主要步骤的脚本,大家参考:上海嵌入式宗回-歇板商城嵌入式家园阙扯:ww.embedclub.com淘宝城网址http://embedclub,taobaocom/上海嵌入式家园-开发板商城贺工www.embedclub.com对选特别要注意上面的的形式,以前是形如,现在是掩码为数的形式。用旧的格式可能会出问题具体的说明建议看册:串口终端程序的安装配置在使用的时候,必然会用到串口与开发板进行通信,所以串口终端程序必不可少。下面简单介绍下常用的牛凵终端:和的安装配置(以下使川安装为例)。的安装配置(推荐安装)在下是通过串口传输文件到开发板,就属比较好用上海嵌入式宗回-歇板商城嵌入式家园阙扯:ww.embedclub.com淘宝城网址http://embedclub,taobaocom/
    2020-12-08下载
    积分:1
  • 696518资源总数
  • 104432会员总数
  • 16今日下载