文档库 最新最全的文档下载
当前位置:文档库 › PML物理标识语言概述

PML物理标识语言概述

PML物理标识语言概述
PML物理标识语言概述

目录

1 背景 (3)

2 PML的目标与范围 (3)

2.1. PML中所描述的信息类型 (4)

2.2. PML语言在整个Auto-ID基层设备中的作用 (4)

3. PML设计方法与策略 (5)

3.1 语法 (5)

3.2 语义 (5)

3.3 数据存储和管理 (6)

3.4 设计策略 (6)

4 PML Server (7)

5 PML Core概述 (10)

5.1 目标与范围 (10)

5.2 动机 (11)

5.3 用法 (11)

6 PML Core要求 (12)

6.1 总体概述与应用模式 (13)

6.2 通用指南 (14)

6.2.1 现有标准应用 (14)

6.2.2 严谨性 (14)

6.2.3简易性 (14)

6.2.4 对底层传输协议不能凭空假设 (14)

6.2.5 人工可读性(Human readability) (14)

6.2.6 语法验证及编写所用工具的实用性 (15)

6.2.7 确保组件重用最大化 (15)

6.2.8 80/20原则 (15)

6.2.9 工具使用与支持 (15)

6.2.10 交互使用 (15)

6.3 数据要求 (15)

6.3.1 由RFID识读器所采集的数据 (16)

6.3.2 由非RFID传感器所采集的数据 (16)

6.3.3 由安放在RFID标签上的传感器所产生的数据 (16)

6.3.4 由监视物品物理属性的固定连线传感器所采集的数据 (17)

6.3.5 传感器观测报告的层次 (17)

6.3.6 普通传感器观测报告的表述 (17)

6.3.7不同类传感器观测报告的开放性 (17)

6.3.8 是否使用存储器来表示标签 (18)

6.3.9 将EPC作为默认的识别方案 (18)

7 PML Core Schema体系 (18)

7.1 PML设计方法概况 (19)

8 参考文献 (19)

1 背景

Auto-ID中心提出的产品电子码(EPC)为自动识别和数据采集(AIDC)这个传统领域带来新的发展契机。它使得唯一识别、跟踪并定位供应链上的货品成为可能,并可存取货品的相关信息(比如压力和温度)。这样对于一个单品本身和它所经历过程的信息就可以一目了然。

物理标记语言(PML)在实现上述新功能中充当了一个重要角色。它将为工商业中的软件开发、数据存储和分析工具提供一个描述自然实体、过程和环境的标准化方法。并能够提供一种动态的环境,使与物体相关的静态的、暂态的、动态的和统计加工过的数据在此环境中可以交换。

PML可广泛应用在存货跟踪、事务自动处理、供应链管理、机器操纵和物对物通讯等方面。毫无疑问的是,很难详细描述整个现实世界以满足每个企业、每个行业的需要。每一个物品都有其物理属性,这包括体积和质量。而且它们经常是有内部结构的。此外它们为不同公司和个人所拥有,并在这些公司和个人之间进行交易。总之,它们存在于时间和空间中。物理标记语言的核心组件就是要捕获这些物品和环境最基本的物理属性。

物理标记语言(PML)将成为一种通用的、标准的方法来描述我们所在的真实世界。这项任务是如此艰巨,Auto-ID中心必须仔细考虑PML的目标和它未来的应用。

2 PML的目标与范围

PML语言主要是提供一种通用的标准化词汇来表示EPC网络所能识别物体的相关信息。

这方面内容的实例包括像RFID传感器这样的观测仪器,像RFID识读器这样的基层设备所使用的配置文件或电子商务中有关描述EPC数据的资料。尽管在哲学的层面上不同的词汇会有不同的含义,但是PML将使用共同的命名和设计原则。

PML词汇提供了在EPC网络组件间所交换的数据的XML定义。系统中所交换的XML 消息应当在PML方案中都有示例。

PML的研发是AUTO-ID中心致力于自动识别基层设备之间进行通讯所需要的标准化接口和协议的一部分。

PML不是取代现有的商务交易词汇或任何其它的XML应用库,而是通过定义一个新的关于EPC网络系统中相关数据的数据库来弥补原有系统的不足。

2.1. PML中所描述的信息类型

直接从Auto-ID的基层设备中采集来的信息作为物理标记语言的一部分进行建模。

举例来说,这些信息包括:

– 位置信息。比如:位于Z码头的识读器Y探测到标签X。

– 遥测信息

– 单个物体的物理属性。比如说它的质量。

– 一群物体所处环境的各种物理属性。比如:周围环境的温度

– 组成信息。比如:单独的物流单元可以由货盘、容器和贸易项组成。

信息模型还将包括以上所列出的不同信息元素的历史。比如:从不同位置所读取的信息汇总起来将获得物品的跟踪信息。

. 另一方面,PML研发目的是提供关于物品的完整信息并促进物品之间的交易。这就要求不仅由Auto-ID的基层组织采集信息,还需要其他来源的共同推动。

其它信息包括:

–与产品相关的信息比如:零售产业中的贸易项信息或高科技产业中的技术数据表

–与过程相关的信息比如:Auto-ID已规范的物体与像高级货运通知这样的交易之间的联系。

理论上包括两种信息:来源于Auto-ID基层组织的信息和非来源于Auto-ID基层设备的信息,只有这两种信息触发适当的动作。例如一组物体的温度监控信息。

2.2. PML语言在整个Auto-ID基层设备中的作用

PML语言主要充当着Auto-ID基层设备中不同部分的共同接口。图1举了一个例子来说明Savant、第三方应用如企业资源规划 (ERP) 或制造执行系统(MES) 以及PML Server 共同存储Auto-ID相关数据。

图1PML语言充当着Auto-ID基层设备中不同部分的接口

注意*PML词汇在信息存储方面没有推荐规则,因为它主要指出了信息在不同部分之间怎样进行交换。

3. PML设计方法与策略

3.1 语法

PML语言采用的方法是首先使用现有标准来规范语法和数据传输,比如可扩展标识语言(XML),超文本传输协议(HTTP)以及传输控制协议和因特网协议(TCP/IP)。这就提供了一个功能集并且可利用现有工具来设计和编制PML应用程序。

3.2 语义

比那些需要借助共享注册中心才能进行转换的标准优越的是,PML将提供一种简单的规范。通过一种通用、默认的方案——比如超文本标记语言(HTML)——从而使两个方案之间的没必要进行转换,而是采用可靠的传输和翻译。此外,一种专一的规范会促使阅读器、编辑工具和其他应用程序等第三方软件的发展。

物理标记语言将力争为所有的数据元素提供一种单一的表示方法。换句话说,如果有多个对数据类型编码的方法,PML将会选择其中一种。举例来说,在对日期进行编码的种种方法之中,PML将只会选择其中的一种。它的思路是当编码或查看事件进行时,

数据传输才发生,而不是发生在数据交换时。

3.3 数据存储和管理

尽管我们经常提到PML“文件”,但是并非必须就用此种数据格式来实际的存储数据。因为PML只是一种用在信息发送时对信息区分的方法,实际的内容可以任意格式存放在服务器中(比如,一个SQL数据库、数据表、或一个平面文件)。换句话说,一个企业不必以PML格式来存储信息的方式来使用PML语言。企业将以现有的格式和现有的程序来维护数据。

举例来说,一个applet(Java小程序)可以从Internet上通过对象名称解析服务(ONS)来选取必需的数据,为了它便于传输,这些数据将按PML规范重新格式化。这个过程与动态HTML语言(DHTML)相似,它也是按照用户的输入将一个HTML页面重定格式。

此外,一个PML“文件”可以根本不是一个文件,但可以是来自不同来源的多个文件和传送过程的集合。因为物理环境所固有的分布式特点,PML“文件”可以在实际使用中从不同的位置整合多个PML小片断。

因此,一个PML“文件”可能只存在于传送过程中。它所承载的数据可能是短暂的——仅存在于一个很短的时间内并在使用完毕后丢弃。

3.4 设计策略

为了便于物理标记语言的有序发展,已经将PML分为两个主要部分——PML CORE (PML核心)与PML Extension(PML扩展)来进行研究(参见图2).

PML Core用统一的标准词汇将从Auto-ID基层设备获取的信息分发出去,比如:位置信息、成分信息和其他遥感信息。由于这个层面的数据在自动识别之前不可用,所以必须通过研发PML CORE来表示这些数据。

PML Extension用于将Auto-ID基层设备所不能产生的信息和其他来源的信息整合。第一种实施的扩展是PML商业扩展。PML商业扩展包括多样的编排和流程标准,可使交易在组织内部和组织之间发生。许多组织已经准备好致力于发展这些标准,自动识别技术将判断出最满足顾客需求的部分并对其进行整合。

图2 PML Core与PML扩展

PML Core 目的是专注于直接由Auto-ID基层设备所生成的数据,其主要描述包含特定实例和独立于行业的信息。特定实例是条件与事实相关,这种事实(例如:一个位置)只对一个单独的可自动识别对象有效,而不是对一个分类下的所有物体都有效。这种独立于行业的条件指出了数据建模的方式:它不依赖于指定对象所参与的行业或业务流程。

对于PML商业扩展部分,提供的大部分信息对于一个分类下的所有物体均可用。大多数的信息内容也高度依赖于实际行业。例如,高科技行业的组成部分的技术数据表都远比其他行业要通用。PML商业扩展在很大程度上是针对用户特定类别并与它所应用领域相关。

迄今为止,PML扩展框架的焦点都集中在整合现有电子商务标准上。我们也可以想象的出其他PML扩展部分可以覆盖到不同的领域。本文以PML Core为主来介绍PML语言,因为这是PML最为核心的和使它区别于其他电子商务标准的部分。

4 PML Server

射频识别是一门用于识别、跟踪和定位资源的技术。它的美好远景促使着Auto-ID 中心在全球范围内对唯一识别单品展开研发工作。EPC(产品电子代码)作为唯一编号将以廉价的射频识别(RFID)标签来承载这个编码。EPC网络也将通过采集和开放(通过因特网并对已授权的请求)其他信息将给定贸易项发送给已授权请求者。整个EPC网络包括EPC标签、解读器、Savant软件、PML Server(现称EPC Information Service 即EPC信息服务)、PML消息流、对象名解析服务(ONS)、企业应用程序。

图3: EPC网络架构——企业内部

PML文件将被存储在一个PML Server上,需要配置一个专用的计算机,为其它计算机提供他们需要的文件。PML Server将由制造商维护,并且储存有这个制造商生产的所有商品的信息文件。PML Sever用于存放生产数据、批量订单等信息。Savant通过ONS 获取与当前所探测到的EPC相关的远程PML Server的地址,此后Savant向远程的PML Server发送读取PML数据的请求,PML Server对此作出回应,返回给Savant它所请求的PML数据,再由Savant处理新读取的EPC标签的内容。同时Savant把自动识别基层设备所感应到的数据发送到远程PML Server,PML Server将这些数据整合到此EPC对应的PML文件中。在最新的EPC规范中,PML Server被称作EPC信息服务(EPC Information Service)。

PML Server使得与可用数据相关的EPC网络可以以PML格式来请求服务。通过PML Server所能获得的可用数据可包括从Savant中收集的标签读取数据(例如,为了

便于跟踪物品和以序列号的间隔大小来跟踪);实例层(instance-level )数据(比如生产数据,有效日期等等),以及对象分类层数据(比如产品目录信息)。为了适应这些需求,PML Server 利用企业中现有的多种数据源,将数据转化为PML 格式。EPC 数据通过供应链来发送,每一个行业可以创建一个EPC 存取注册中心(EPC Access Registry ),它将扮演一个存放EPC 信息服务接口声明仓库的角色。

《Auto-ID EPC 信息服务1.0规范》定义了访问PML Server (EPC 信息服务)所需的协议。

下面的EPC 信息获取流程图和EPC 网络架构–企业之间图说明了PML Server 在整个EPC 网络中的角色。

图4:EPC 信息获取流程

标签-识读器的

基层设备

Savant ONS PML-Server

EPC 信息获取流程图

5 PML Core概述

下面将通过PML Core描述的范围,以及它与物理标记语言的关系、应用模式、需求、设计思路、XML schema和简单实例文档来详细说明物理标记语言的核心部分——PML Core。

5.1 目标与范围

PML Core的目标是提供一种标准的格式使自动识别基层设备(比如:RFID识读器)中的传感器所采集到的数据可以进行交换。

PML Core提供了一套方案,用于定义所采集数据的在传送过程中的交换格式。这些数据实体可以直接从传感器中读取,或从路由器和数据存储库(比如Savant或分发所捕获数据的EPC信息服务)中获取。

PML Core专注于可观测物——可由传感器观测到或测量到的物理属性和实体——

而非单独某个传感器的特性或可观测值的解释。

任何所可能提供的与原始数据有关的解释信息将在PML之中被其他相关词汇所处理。PML Core是PML之中全部词汇中的一组词汇。

PML

用于表示EPC网络所识别的物体的信息的一套词汇

图6 PML与PML Core之间的关系

5.2 动机

Auto-ID中心认为重点在于自动识别中什么是独一无二的。中心可以提供一整套词汇来满足自动识别用户群的需要,同时避免为现有已定义的业务标准中的元件而定义一套新词汇而造成词汇的彻底改造。因此,PML Core专注于提供一种灵活的框架来表示由EPC 网络中的传感器所采集的数据。

5.3 用法

基于PML Core schema的消息可以在EPC网络中任意两个可使用XML的系统之间进

行交换。最有代表性的是在Savant与EPC信息服务和/或其他企业应用系统之间发生基于PML Core schema的信息交换。这并不排除PML Core schema在其他场合也有其使用机会。任何其他行业的垂直应用或有需求的组织将把PML Core模型匹配到它们自己指定的XML Schema和应用中。基于PML方案的支持工具将会是下一个市场机会。通常我们可以说PML Core消息可以在任何两个支持XML消息的系统之间完成传递。

6 PML Core 要求

这个部分的目的是收集、分析和定义高层次的需求和PML Core 的特征。本节将重点放在利益相关组织和终端用户的需求以及为何会存在这些需求的原因。PML Core 具体怎PMLCore 消息

系统A

系统B

图7 PML 核心消息

PML Core Schema 使用方法

图8 PML Core Schema 如何使用

样满足这些需要并且进行设计在这篇文档的后一部分会有阐述。

6.1 总体概述与应用模式

如果组件的处理能力可以满足基于XML信息交换,PML Core 词汇应当提供下列组件之间进行传感器数据通讯所需有效负载的标记:

Savant/EPC IS 与其外部应用

单独传感器所配备的Savant和用于整合信息的Savant

传感器(比如:一台RFID识读器)和一个Savant,

下面的章节略述了PML Core怎样用于整合前文所提到的其他的EPC网络组件:

RFID识读器和其他AIDC技术(比如条码识读器)

RFID识读器和其他AIDC技术探测并识别出物品,并生成对应的EPC数据。RFID识读器可以用PML Core中所采集数据分发方面的标准化词汇来描述这些内容。

Savant

Savant是Auto-ID技术中负责数据处理、路由和过滤的“中间层”。它可以在数据被分发到其他已应用所选传送路由协议的实体之前,利用PML Core词汇将这些EPC网络中的传感器所采集的数据做好标记。

PML Server(EPC信息服务)

EPC信息服务是需要查询EPC网络相关数据的外部应用程序的“查询结点”。如果查询与EPC网络(比如:RFID识读器)所采集的数据有关,查询的返回信息应当用PML Core 词汇来标记。

外部客户应用程序

PML Core语言提供了EPC网络所采集到的数据及这些应用程序所接收到的数据的通用语法。

对于所要交换的数据如何在不同的组件之间存储,物理标记语言标准本身并没有作出推荐。举例来说,一个Savant或EPC信息服务没必要必须以PML Core格式来存储或处理数据,因为PML Core在它们与EPC网络中的其他结点进行交换时应当仅用于标记传感器数据。

6.2 通用指南

6.2.1 现有标准应用

含义:使用现有标准来描述和唯一定义单个实体,比如可用的最佳日期、时间。使用现有标准也要求适当的选择命名和设计原则并且选择一种详细的方案架构。

基本原理:与现有标准保持一致将确保发展速度,最大化互操作性并易于长期的维护。同时它也确保了PML Core的研发工作的重点和范围不会向无法唯一自动识别的特性方向上偏移和不会被其他成果所代替。

6.2.2 严谨性

含义:本语言应当是一种结构严谨、内容有控。

基本原理:严格规范的语言能够允许解析器确认文档及其结构的有效性。这就能够避免HTML中常见的一类问题:不采用严格的语法,而是让浏览器来决定可以接受哪些不正确的语法。

6.2.3简易性

含义:简易性表示本语言的使用和实施是简单易懂的。

基本原理:为了鼓励PML Core语言和自动识别技术的广泛采用,PML语言应当尽量简单并表达清楚。

6.2.4 对底层传输协议不能凭空假设

含义:在设计和实施中,不应当假设一种可以将数据从一个结点送到另一个结点的特定的传送协议。

基本原理:底层传输协议不允许通过最初所选择的PML Core设计和实施方案而无限制地挑选传输协议。

6.2.5 人工可读性(Human readability)

含义:人工可读性意味着数据域的语义不能因为起了意义模糊的名字而使其晦涩难懂。基本原理:易读性的原理是其增加了学习曲线并简化了调试过程。这在当今XML标准的研制中很常见。易识读性和名称表达的缺陷是其必须传递更多的数据。然而,网络带宽

的节约是不能够充分证明使用隐秘标签名是正确的。

6.2.6 语法验证及编写所用工具的实用性

含义:为了更好的使用PML Core,用户将需要依靠辅助工具使用指定的语法编写文档并根据此语言方案来确认其内容。

基本原则:没有辅助工具,PML的应用会因为失去销售商的支持而面临危险。

6.2.7 确保组件重用最大化

含义:语言的设计应该满足各个组件在不同的环境配置中都可以重用的原则。

基本原理:设计时,应利用组件重用的思想。如果在最初设计时就想到这一点,PML Core 的模块可以在此系统中重用。

6.2.8 80/20原则

含义:PML Core的设计应当是只需要提供20%的特性就能满足80%的需求。

基本原则:如上文所提及的,PML Core 应当保持简单性,只有在满足很少用户的特别需求的情况下,才可以需要其中相当复杂和难以使用的词汇部分。

6.2.9 工具使用与支持

含义:PML Core不应当假定为就是创建、管理、存储或可表述的工具。

基本原则:为了便于人们采用PML Core 词汇,我们不应当凭借某种特殊的用来创建、管理或存储数据的工具来限制它的使用。

6.2.10 交互使用

含义:PML Core 确定为用于交互和应用。它不应当涉及数据如何实际存储。

基本原理:PML Core 的目标是对EPC网络所采集到数据的标记进行标准化。假定某种存储装置,比如:XML数据库,我们将不需要担心它的采用问题,因为已实施PML Core 的团体将也会不得不随之采用那些推荐的存储装置。

6.3 数据要求

下面的章节概述了PML Core中大家公认所需的数据类型。

6.3.1 由RFID识读器所采集的数据

含义:RFID识读器读取存储在符合自动识别标准的标签上的产品电子码(以不同的表现形式)。由唯一标识符所确定的某种RFID识读器适时地观测/探测到某个标签在它的识读范围之内,PML Core应当能够表示这些传感过程,每一个这样的观测报告都需要包含引发本次观测的命令和作为观测报告基准的独一无二的标签。

基本原理:RFID识读器是EPC网络中的主要组件之一。在EPC网络中,它读取的数据从识读器发送到Savant,然后从这一个Savant中发送到其他的Savant,以及从Savant发送到EPC信息服务中。为了标准化这些采集到的数据标记,PML Core需要能够充分地表述所观测到的数值。一旦它们被用于推断某种高级信息,例如在一处货运码头的某个RFID所读取到的内容将被解释为货运到达,这就需要有一种唯一标志为观测报告提供参考。为了给这种解释提供根据,参考实际的观测报告是十分有益的。

因为识读器本身可以支持多种测量模式,所以制定这些命令是有必要的,比如命令RFID识读器扫描它识读范围内的物体。于是为了能恰当地解释这些观测值,所制定的命令将帮助人们更加透彻地了解情况。

优先级:必须有

6.3.2 由非RFID传感器所采集的数据

含义:非RFID传感器(比如条码扫描器)来采集RFID传感器采集的信息。它的实际数据要求因此也应当与前面所提到的对RFID识读器的要求相似。

基本原理:为了方便采集,现有的识别系统(比如条码扫描器)也应该能够采集该类数据。

优先级:应当有

6.3.3 由安放在RFID标签上的传感器所产生的数据

含义:RFID标签本身可以包含传感器,它能够观测周围环境并可以使用观测到的数值。举例来说,这种安放于标签上的传感器可以包括温度传感器、湿度传感器或重量传感器。每一个传感器的观测报告需要有它自己的时间戳,并通过已定义的命令进行测量。

基本原理:下一代的Auto-ID标签将包括含有机载传感器的主动型RFID标签,为了能恰当的表示这些传感器所采集的数据,PML Core需要对这些观测值进行建模。

优先级:应当有

6.3.4 由监视物品物理属性的固定连线传感器所采集的数据

含义:固定连线传感器监视周围环境并提供像某一位置的温度或某一贸易项的重量这样的数据。与安放在标签上的传感器相似,它们观测某一物理属性并确保观测值可用。这种值可以是单独的数据实体:一个数据实体的矢量或统计值,如:平均值、最大值或最小值。

此贸易项实际的数据要求类似于安放在RFID标签上的传感器的数据要求(参见前面的要求)。虽然如此,要强调的是它所采集的数据是来自有线传感器和无线传感器的。

基本原理:监视物品物理属性的固定连线传感器扩大了像RFID识读器或条码扫描器这样的识别传感器所采集数据的范围。为了能够和识别传感器所提供的位置信息一起来使用这类信息,就需要有一种可以表示观测到的物理属性的标准化格式。

优先级:应当有

6.3.5 传感器观测报告的层次

含义:当一个包含传感器的RFID标签出现时,传感器观测报告的层次就出现了。机载传感器测量某一物理属性,存储观测值并传送这些值,一旦它们接近一个RFID识读器并且这个RFID标签被探测到。每个观测报告/测量结果需要它们自己的时间戳,从而当从主动型标签传送到RFID识读器时,每个观测值就可以区别开来。

基本原理:传感器观测报告的层次是安置在RFID标签上的传感器可用性的直接结果。6.3.6 普通传感器观测报告的表述

含义:普通传感器不指出所观测数据的语义。假定一种特殊的RFID识读器,它使观测到的数据作为字节数组进行使用,这些数据包括与空气接口的冲突数据、CRC错误以及以16进制所探测到标签的EPC编码。

基本原理:普通传感器观测报告用PML Core来表述,这样具备了灵活性以便可以用它来表示数据实体。

优先级:必须有

6.3.7不同类传感器观测报告的开放性

含义:PML Core Schema应当确保PML文档的创建者可以创建包含上述元素的实际文档,并要超越PML Core Schema对有关传感器所生成的观测报告已规范的内容和传感器是如

何配置的这样的具体内容的限制。

基本原理:这种局部开放性使PML文档的创建者可以描述未能被PML Core的方案设计者所预料到的一些特性。特别要按照Auto-ID标准的主动型标签的发展而不断提出新的要求,这种标签在内存结构上将有更可能实现的空间,它安置在传感器上并有访问控制的功能。PML Core需要推动这些额外的特性而无需现在就能够清楚的说明到底有哪些不同的特性。

优先级:应当有

6.3.8 是否使用存储器来表示标签

含义:标签或者只能存储一个标识符,或者也有额外的存储器来存储其他数据。

基本原理:尽管早期生产的符合EPC标准的标签只能存放一个标识符,但Auto-ID中心下一代的标签可以有额外的存储器。

优先级:应当有

6.3.9 将EPC作为默认的识别方案

含义:为了能唯一识别传感器,就需要有EPC网络中标签和其他物体的唯一识别方案。EPC应当是默认的识别方案。如果识别方案种类已经明确,在某些例外的情况下,可以使用其他的识别方案。

基本原理:EPC是EPC网络中的主要组件并且它在PML Core中的使用范围应当不断扩大。

优先级:必须有

7 PML Core Schema体系

由于PML Core是PML的一个子集,PML Core schema就沿用PML的设计思想。本规范提供了命名方法,设计原则及有利于PML核心方案进一步发展的最佳实例。从PML Core的角度来看,它能够为识读器了解到一种标准化和定义良好的XML设计方法并且已经应用到生产高质量的PML Core方案中。下文中进一步讲述有关XML设计方法的详细规范,但不涉及如何实施PML Core方案以及类似的相关内容。

7.1 PML设计方法概况

PML使用W3C 所制定的XML Schema语言 [XSD]作为此方案的语言。尽管它可以使用不同的语法表达形式,但XML Schema定义完善并一般做为灵活的结构嵌入数据的简单方法。

任何标准化的XML词汇需要有一个形成文档的和定义完善的设计方法,它要便于理解、采纳和实施。一种定义完善的XML设计方法证明了用于架构一个特别的XML Schema 词汇的设计原则。一个XML设计方法将对下面的设计原则进行标准化: 方案文件和元件的命名原则和设计原则

方案和元件的版本

方案和元件的复杂度、一般性和模块性

元件的重用性

方案形成文档

相对于重新使用一种新的XML设计思想的优势在于,PML可利用现有已定义完善的方法作为它的设计方法。PML的设计以RosettaNet?所定义的XML的设计方法为基础。这种方法的具体内容超越了本文档的范围,故不作叙述。下面三条是在RosettaNet?中定义的XML设计方法:

1. 结构统一(后文称作[UST])

2. XML设计指南(后文称作[XMLDG])

3. 命名空间(Namespace)规范与管理(后文称作[NSSM])

这种已采纳的和可随着PML的发展而不断扩展的方法在本文的以后部分称之为PML 设计方法。为了能够理解PML设计方法的具体内容,读者应当熟悉前面所提到的规范,因为PML的设计是基于这些规范的。

8 参考文献

1. MIT- technical memo006- Physical Mark-Up Language Update

2.PML Core Specification 1.0

3. MIT- technical memo005-The Physical Markup Language Core Components: Time and Place

5. [UST] RosettaNet? Universal Structures

6. [NSSM] RosettaNet? Namespace Specification and Management

7. [XMLDG] RosettaNet? XML Design Guidelines

8. [XSD] XML Schema Part 2: Datatypes W3C Recommendation, 02 May 2001 (https://www.wendangku.net/doc/b79015207.html,/TR/xmlschema-2/)

9. [RFC 2119] Key Words for use in RFCs to Indicate Requirement Levels, Internet Engineering Task Force, March 1997 (https://www.wendangku.net/doc/b79015207.html,/rfc/rfc2119.txt)

10. [RFC 2141] ”URN Syntax,” May 1997, https://www.wendangku.net/doc/b79015207.html,/rfc/rfc2141.txt

11. [EPC] Michael Mealling and Ken Traub, “The URI Representation of the Electronic Product Code and Related Types”, Working Draft Version, 12 August 2003

计算机导论第3章 程序设计语言(答案)

第3章程序设计语言 习题 一、选择题 1. A 2. A 3. D 4. A 5. AB 6. C 7.D 8.C 9.D 10. D 11.ABCD 12.B 13.A 14.ABD 二、简答题 1.简述程序的概念。 答:一个程序就是能够实现特定功能的一组指令序列的集合。或者程序=算法+数据结构。 2. 简述程序设计语言的发展阶段。 经历了机器语言、汇编语言和高级语言三个发展阶段。 机器语言又称面向机器的语言,是特定的计算机硬件系统所固有的语言,是CPU唯一能够真正不经过翻译而直接识别和执行的语言。相比而言,其他任何语言编写的程序都必须最终转换成机器语言以后才能在CPU上执行。 由于二进制编码形式的机器指令不便于记忆和使用,人们很快引入了便于记忆、易于阅读和理解、由英文单词或其缩写符号表示的指令,称为汇编指令,又称符号指令或助记符。利用汇编指令编写得到的程序称为汇编语言程序。 通过引入汇编语言,在一定程度上解决了低级语言程序设计的问题,之后又出现了程序的“可移植性”问题,即程序员编写的源程序如何从一台计算机方便地转移到另一台计算机上执行。为了解决这个问题,人们引入了高级语言。 高级语言是一种利用意义比较直观的各种“单词”和“公式”,按照一定的“语法规则”来编写程序的语言,又称为程序设计语言或算法语言。高级语言之所以“高级”,是因为高级语言把很多硬件上复杂费解的概念抽象化了,从而使得程序员可以绕开复杂的计算机硬件的问题、无需了解计算机的指令系统,就能完成程序设计的工作。 3. 简述程序设计过程的一般步骤。 程序设计的过程一般有四个步骤。 (1)分析问题 在着手解决问题之前,应该通过分析,充分理解问题,明确原始数据、解题要求、需要输出的数据及形式等。 (2)设计算法 算法是解题的过程。首先集中精力于算法的总体规划,然后逐层降低问题的抽象性,

《C语言程序设计》第1章 C语言概述练习题答案

第一章 C语言概述练习题 一、选择题 1.C语言是一种( )。 A) 机器语言B) 汇编语言C) 高级语言D) 低级语言 2.下列各项中,不是C语言的特点是( )。 A) 语言简洁、紧凑,使用方便B) 数据类型丰富,可移植性好 C) 能实现汇编语言的大部分功能D) 有较强的网络操作功能 3.下列叙述正确的是( )。 A) C语言源程序可以直接在DOS环境中运行 B) 编译C语言源程序得到的目标程序可以直接在DOS环境中运行 C) C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 D) Turbo C系统不提供编译和连接C程序的功能 4.下列叙述错误的是()。 A) C程序中的每条语句都用一个分号作为结束符 B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 5.一个C程序的执行是从()。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 6.以下叙述不正确的是()。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 7.C语言规定:在一个源程序中,main函数的位置( )。 A)必须在程序的开头B)必须在系统调用的库函数的后面 C)可以在程序的任意位置D)必须在程序的最后 8.一个C语言程序是由( )。 A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成D) 若干子程序组成 9.以下有4组用户标识符,其中合法的一组是()。 A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define 10. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 ()。 A) 有零个或多个输入B) 有零个或多个输出C) 有穷性D) 可行性 二、填空题 1.汇编语言属于面向( 面向机器的 )语言,高级语言属于(面向问题的)语言。 2.用高级语言编写的程序称为(源)程序,它可以通过解释程序翻译一句执行一句的方式 执行,也可以通过编译程序一次翻译产生(目标)程序,然后执行。

00342高级语言程序设计(一)考试说明

00342高级语言程序设计(一) 一、本课程使用教材、大纲 高级语言程序设计(一)课程使用的教材为《高级语言程序设计》 迟成文编著、经济科学出版社、2007年第一版。 二、本课程的试卷题型结构及试题难易度 1、试卷题型结构表 四个认知层次在试卷中所占比例大致分别为:识记占20%、领会 占30%、简单应用占30%、综合应用占20%。 3、试卷难易度大致可分为“容易、中等偏易、中等偏难、难”。根据 课程的特点,每份试卷中,不同难易度试题所占的分数比例大致 依次为易占30分、中等偏易占30分、中等偏难占20分、难占 20分。 三、各章内容分数的大致分布

五、各题型范例及解题要求 1.单项选择题 要求:在下列每小题的四个备选答案中选出一个正确的答案,并将其字母标号填入题干的括号内。 例:组成C语言程序的是(B ) A.过程B.函数C.子程序D.主程序和子程序 2.填空题 函数中的形参和调用时的实参都是变量时,传递方式为________。答案:值传递方式 3.程序填空题 例:输入10个整数存入一维数组,再按逆序重新存放后再输出。 main( ) { int i, j, a[10], t, *p; for(i=0; i<10; i++) scanf("%d", __________ ); for(i=0, j=9; i

第一章C语言概述习题附答案

第一章C语言概述 一、单选题 1. C语言程序的执行,总是起始于()。C A.程序中的第一条可执行语句 B.程序中的第一个函数 C.main函数 D.包含文件中的第一个函数 分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。本题正确答案为C。 2、C语言程序的基本单位是()。C A)程序行B)语句C)函数D)字符 3、C语言中规定:在一个源程序中main函数的位置()。C A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 4、以下述叙正确的是()。C A.在C程序中,main函数可有可无 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 5、能将高级语言编写的源程序转换为目标程序的是()。C A.链接程序 B.网络程序 C.编译程序 D.WORD字处理程序 6、下列说法中正确的是()。C A)C程序书写时,不区分大小写字母 B)C程序书写时,一行只能写一个语句 C)C程序书写时,一个语句可分成几行书写 D)C程序书写时每行必须有行号 分析:C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。本题正确答案为C。 7、下面对C语言特点,不正确描述的是()。C A)C语言兼有高级语言和低级语言的双重特点,执行效率高 B)C语言既可以用来编写应用程序,又可以用来编写系统软件 C)C语言的可移植性较差 D)C语言是一种结构式模块化程序设计语言 分析:C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C语言既可以编写应用程序,又可以开发系统软件,而且C程序可移植性好于汇编语言,程序清晰具有模块化的特点。本题正确答案为C。 8、C语言源程序的最小单位是()。D A)程序行B)语句C)函数D)字符 分析:程序行、语句、函数都是由字符构成的,字符是C语言的最小单位。本题正确答案为D。 9.计算机内部运算使用的数是()。C A)十进制数B)十六进制数C)二进制数D)八进制数

计算机程序设计语言的发展历程

1.概论自从世界上第一台电子计算机ENIAC于1946年问世以来,伴随着计算机硬件的不断更新换代,计算机程序设计语吉也有了很大的发展.至今已有四代语言问世。 在过去的几十年间,大量的程序设计语言被发明、被取代、被修改或组合在一起。 尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。 程序设计语言正在与现代科技日益飞跃,人类的智慧在日益彰显。 1.机器语言电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。 计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。 使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。 而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。 但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。 机器语言,是第一代计算机语言。 2.汇编语言为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进: 用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。

然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。 汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。 3.高级语言从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。 第一个高级程厅设计语著诞生严50年代。 当时的计算机非常昂贵,而月功量非常之少,如问有效地使用计算机足一个相当重要的问题。 另一方面,计算机的执行效率也是人们追求的r1你。 为了有效地使用汁算机.人们设计出了高级语言,用以满足用户的需求。 用商级语言编写的程序需要经过翻译,计算机才能执行。 虽然,程序翻译占去了一些计算机时间,在一定程度上影响了计算机的使用效率。 坦是实践证明。 高级语言是有效地使用汁算机与计算机执行效率之间的一个很好的折中手段。 经过努力,1954年,第一个完全脱离机器硬件的高级语言—FORTRAN问世了,40多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASI C、LISP、SNOBOL、PL/ 1、Pascal、

第1章C语言概述

第1章C语言概述 C语言是国际上广泛流行的、很有发展前途的高级程序设计语言,它既可以用来编写系统软件,又可以用来编写应用软件。C语言也是大学生学习程序设计选用最多的语言。本章主要介绍C语言的发展历史、C语言的特点、C程序的结构和C程序的上机步骤。通过本章的学习,读者应重点掌握C语言的特点、C程序的结构和上机运行C程序的方法。 1.1 C语言的发展和特点 自从计算机诞生以来,为了更好地进行软件的设计,各种高级程序设计语言也在不断地发展、进步和完善。C语言就是其中最优秀的程序设计语言之一。 1.1.1 C语言的发展过程 C语言是目前世界上最流行、使用最广泛的高级程序设计语言。在设计操作系统等系统软件和需要对硬件进行操作时,使用C语言编程明显优于其他高级语言,许多大型应用软件和系统软件都是用C语言编写的。 C语言的起源可以追溯到ALGOL 60。1963年英国的剑桥大学在ALGOL 60的基础上推出了CPL语言,但是CPL语言难以实现。1967年英国剑桥大学的Matin Richards对CPL 语言作了简化,推出了BCPL语言。1970年美国贝尔实验室的Ken Thompson以BCPL语言为基础,又作了进一步的简化,设计出了很简单且接近硬件的B语言,并用B语言写了第一个UNIX操作系统,在DEC PDP-7型计算机上实现。1971年在DEC PDP-11上实现了B语言。1972年由美国的Dennis M.Ritchie在B语言的基础上设计出了C语言,并首次在UNIX操作系统的DEC PDP-11计算机上使用。 为了推广UNIX操作系统,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。1978年Brian W.Kernighian和Dennis M.Ritchie 出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。 随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,1983年美国国家标准研究所(ANSI)为C语言制定了第一个ANSI标准,称为ANSI C。1987年美国国家标准研究所

C语言程序设计概述

C语言程序设计概述 1.算法的描述有哪些基本方法? 2.C语言程序的基本结构是怎样的?举一个例子说明。 3.C语言有什么特点? 4.指出合法与不合法的标识符命名。 ABl2 leed_3 a*b2 8stu D.K.Jon EF3_3 PAS if XYZ43K2 ave#xy 762 #_DT5 C.D 5.说明下列Turbo C热键的功能。 F2 F10 F4 Ctrl+F9 Alt+F5 6.在Turbo C方式下输入并运行下列程序,记录下运行结果。 (1)main( ) {printf(″**************************\n″) printf(″welcome you \n″) printf(″very good \n″) printf(″**************************\n″) } (2) main( ) {int a,b,c,t; printf(″please input three numbers;″); Scanf(″%d,%d,%d″,&a,&b,&c); T=max(max(a,b),c) ; printf(″max number is:%d\n″,t); } int max(int x,int y) { int z; if ( x>y) z=x; else z=y; return(z); } 7.一个C程序是由若干个函数构成的,其中有且只能有一个函数。8.在Turbo C环境下进行程序调试时,可以使用Run下拉菜单的命令或按键转到用户屏幕查看程序运行结果。 9.C语言对标识符与关键字有些什么规定? 10.C源程序输入后是如何进行保存的?

高级语言程序设计(高起专)

河南工程学院 2017年秋季《高级语言程序设计》期末试卷 批次专业:2017年春季-机电一体化技术(高起专)课程:高级语言程 序设计(高起专)总时长:180分钟 1. ( 单选题 ) 能将高级语言编写的源程序转换为目标程序的是 _____________ 。(本题2.0分) A、链接程序 B、解释程序 C、编译程序 D、编辑程序 学生答案:C 标准答案:C 解析: 得分:2 2. ( 单选题 ) C语言程序编译时,程序中的注释部分()。(本题 2.0分) A、参加编译,并会出现在目标程序中 B、参加编译,但不会出现在目标程序中

C、不参加编译,但会出现在目标程序中 D、不参加编译,也不会出现在目标程序中 学生答案:D 标准答案:D 解析: 得分:2 3. ( 单选题 ) C 语言中的标识符只能由字母、数字和下划线三种字符组成 , 且第一个字符( )(本题2.0分) A、 必须为下划线 B、 可以是字母、数字和下划线中的任意一种 C、 必须为字母或下划线 D、 必须为字母 学生答案:C 标准答案:C 解析: 得分:2 4. ( 单选题 ) 一个 C 程序的执行是从( )(本题2.0分) A、 本程序的main函数开始,到main函数结束 B、 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、 本程序的main函数开始,到本程序文件的最后一个函数结束 D、 本程序文件的第一个函数开始,到本程序main函数结束 学生答案:C

标准答案:C 解析: 得分:2 5. ( 单选题 ) C 语言提供的合法关键字是( ) (本题2.0分) A、swicth B、chan C、case D、default 学生答案:D 标准答案:D 解析: 得分:2 6. ( 单选题 ) C语言程序的基本单位是()(本题2.0分) A、程序行 B、语句 C、函数 D、字符 学生答案:C 标准答案:C 解析: 得分:2 7. ( 单选题 ) 组成C语言程序的是( )。(本题2.0分)

程序设计语言简介

学号:3140103583 姓名:陈上义 程序设计语言简介 程序设计语言,通常称为编程语言,是指一组用来定义计算机程序的语法规则。更简单地说。就是算法的一种描述。这种标准化的语言可以向计算机发出指令。依靠程序设计语言,人们把解决某一个或者某一类问题的算法,也可以说是步骤,告诉计算机,从而让计算机帮助我们解决人脑难以解决的问题。如果说计算机的硬件是身体,那么程序就是计算机的灵魂,而程序设计语言就是组成灵魂的各种概念和思想。用户能够根据自己的需求来安装不同程序,使计算机完成所需的功能,程序设计语言可以说是功不可没。 程序设计语言的基础是一组记号和一组规则。程序设计语言一般都由三部分组成:语法、语义以及与语用。语法就是在编写程序时所需要遵守的一些规则,也就是各个记号之间的组合规律。语法没有什么特殊含义,也不涉及使用者,但是编译器能够识别并编译的基础。语义表示的就是程序的含义,也就是按照各种方法所表示的各个记号的特殊含义。程序设计语言的语义又包括静态语义和动态语义。静态语义值得是在编写程序时就可以确定的含义,而动态语义则必须在程序运行时才可以确定的含义。语义不清,计算机就无法知道所要解决问题的步骤,也就无法执行程序。语用表示了构成语言的各个记号和使用者的关系,涉及符号的来源,使用和影响。语用的实现有个语境问题。语境是指理解和设计程序设计语言的环境,包括编译环境和运行环境。 和自然语言一样,程序设计语言也经过了一步步的发展才逐渐完善的。从发展的历程看,程序设计语言的发展可以分为四个阶段。 第一代程序设计语言是机器语言。机器语言是由二进制的0和1代码指令构成,不同的CPU又有不同的指令系统。但由于人们习惯于十进制,所以用机器语言编写程序异常困难。尽管机器语言可以直接被计算机识别,但这种语言却非常难以编写,难以修改,难以维护。因此,这种语言并不利于推广。在以后的几十年中,这种语言渐渐地被淘汰了。 第二代程序设计语言是汇编语言。汇编语言也是面向机器的程序设计语言,具有很强的功能性,可以利用计算机硬件的所有特性,并能直接控制硬件的语言。汇编语言是机器语言的指令化,虽然汇编用语言也和机器语言一样,存在着难学难用、容易出错、维护困难等缺点,但相对于机器语言,汇编语言更易于读写、调试和修改,汇编程序翻译成的机器怨言程序的效率高。在实际应用中,某些高级语言无法胜任的工作,也可以利用汇编语言来实现。汇编语言虽然是还是一种面向机器的低级语言,但更能发挥出硬件的特性。 第三代语言则是如今在使用的高级语言,种类繁多,如目前流行的C#,Java,https://www.wendangku.net/doc/b79015207.html,、c/c++、foxpro、delphi等,这些语言的语法、命令格式都各不相同。即使是c语言和c++,在语法规则上,也有些差别。高级语言是相对机器语言、汇编语言等低级语言来说的。虽然高级语言种类多,每种语言都有各自的语法与命令格式,但高级语言最大的优点是在形式上接近自然语言和算术语言,概念上接近人们使用的概念。这样的特点使得高级语言很容易进行编写、修改于维护,通用性强、易于学习。因此,高级语言是一种面向用户的语言,即使不是程序员,也可以编写程序。 高级语言并不能为计算机所识别,需要编译器的帮助。编译器既是编写程序

高级语言程序设计试卷及答案解析

1.1 单项选择题 1.二进制语言是属于() ①面向机器语言②面向问题语言③面向过程语言④面向汇编语言 【解】人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言。面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言。面向过程语言是一种能方便描述算法过程的计算机程序设计语言。有汇编语言,但没有面向汇编语言。汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码。所以解答是①。 2.下列语言中不属于面向过程的语言是() ①高级语言②低级语言③C语言④PASCAL语言 【解】C语言和PASCAL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言。低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向问题的语言。所以解答是②。 3.下列字符中属于键盘符号的是() ①②n ③t ④b 【解】键盘符号是指键盘上有标记,并能在显示器上直接以其标记字样显示的字符。有许多键盘上有标记的符号,它们不是用于直接显示的,键入这种字符用于表示特定的意义,如常用的回车符。为了能让C程序标记这种符号,程序采用转义字符的方式书写这种字符。如"n"、"t" 、"b"都不是键盘字符,在C语言中,它们都得用转义字符来表达。只有字符才是键盘字符。所以解答是①。但在C程序中,反斜杠字符已特别用作转义字符的引导符,它也得用转义字符的表达形式书写,将它写成""。 4.下列字符列中,不是用来表达转义字符是() ①②" ③074 ④

【解】转义字符有三种书写形式:反斜社字符后接上某个规定的字符;反斜杠字符后接上13个八进制数字符;反斜社字符和字符X之后接上1至2个十六进制数字符。后两种分别八进制数和十六进制数直接给出字符的ASCll代码值。而074是八进制整数,不是转义字.所以解答是③。 5.不是C语言提供的合法关键字是() ①switch ②begin ③case ④default 【解】因C语言的关键字表中没有begin,它不是C语言的关键字。所以解答是②。 6.下列字符列中,能作为单个标识符是()l ①?a ②a=2 ③a.3 ④a___3 【解】在C语言中,规定标识符是这样一种字符序列,由英文字母或下线字符开始,后接任1个英文字母、下线字符和数字符组成。所以问题所列的字符列只有a_3是标识符,其余都l是标识符,一个是由字符"?"开头、一个中间有字符"=",另一个有字符"."。所以解答是④。 7.在C语言中,下列说法中错误的是() ①函数定义可以分为两个部分:函数说明部分和函数体 ②主函数可以调用任何非主函数 ③任何非主函数可以调用其它任何非主函数 ④程序可以从任何函数开始执行 【解】每个C函数的定义分两部分,函数说明部分和函数体,所以叙述①是正确的叙述。C语言中,函数可以递归调用,主函数可以调用程序中的任何函数,当然可以调用任何非主教的其它函数,所以叙述②是一个正确的叙述。同样理由,叙述③也是正确的。C语言规,

第6章 程序设计语言 习题与答案

第六章习题 (1)复习题 1、简述自然语言与形式语言的概念以及区别、汇编语言与机器语言的概念及区别。 自然语言是某一社会发展中形成的一种民族语言,而形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。用机器指令形式编写的程序称为机器语言,用带符号或助记符的指令和地址代替二进制代码成为语言进化的目标。这些使用助记符语言的语言后来就被称之为汇编语言。 (P135 P136) 2、什么是高级程序设计语言?它有什么特点? 高级语言是汇编语言的一种抽象。高级语言的设计目标就是使程序员摆脱汇编语言细节的繁琐。高级语言同汇编语言都有一个共性,那就是:它们必须被转化为机器语言,这个转化的过程称为解释或编译。 (1)高级语言接近算法语言,易学、易掌握; (2)高级语言设计出来的程序可读性好,可维护性强,可靠性高; (3)高级语言与具体的计算机硬件关系不大,其程序可移植性好,重用率高; (4)高级语言自动化程度高,开发周期短,利于提高程序的质量。 (P138) 3、列举程序设计语言的几种范型。 程序语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。 (P138-140) 4、简述语言虚拟机。 提示:语言虚拟机是某种语言的解释器。语言虚拟机是建立在硬件和操作系统之上,针对不同的硬件和操作系统有不同的虚拟机,通过语言虚拟机屏蔽掉硬件的差异。这样使得硬件系统能够支持这种语言编写的程序的有效执行。目前最流行的语言虚拟机是Java虚拟机。(P147) 5、计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么? 提示:主要有编译、解释等方式,也有两种方式的混合使用的形式。 编译是使用编译器将高级语言编写的源程序转换成计算机可以执行的机器语言可执行程序,也可以理解为用编译器产生可执行程序的动作。编译方式是一次编译,然后执行程序可以反复多次执行。 解释是另一种将高级语言转换为可执行程序的方式。与编译不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。 近来随着网络的发展,为了实现跨平台但同时又保证一定的效率,出现了编译、解释混合的方式,先用伪编译形成效率较高中间代码,再用语言虚拟机进行解释执行,以屏蔽掉硬件的差异。

《高级语言程序设计》答案)

1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。#include int main() { int i,j,t; int max(int,int); int min(int,int); scanf("%d%d",&i,&j); if(i int main() { int max4(int,int,int,int); //对max4的函数声明 int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数 printf("max=%d\n",max4(a,b,c,d));//调用4个数中的最大者 return 0; } int max4(int a,int b,int c,int d) //定义max4函数 { int max2(int,int); //对max2的函数声明 return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数} int max2(int a,int b) { return(a>b?a:b); //返回条件表达式的值,即a和b中的大者 } 3. 用递归调用的方法求5!。 #include int main() { int fac(int); int n; scanf("%d",&n);

第一章C语言概述

第一章C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数

D. 程序可以从任何非主函数开始执行 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C 语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名 是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。 第三章数据类型、运算符和表达式 一、选择题: 1、以下选项中,不正确的 C 语言浮点型常量是( C )。

程序设计语言简述.

第三章程序设计语言简述 3.1 高级程序设计语言的实现 从程序设计语言的发展可以看到,计算机只能根据机器语言指令来执行程序,高级语言程序必须通过翻译变成机器语言程序,这个工作一般是由翻译程序自动完成的。把一种语言翻译成另一种语言的程序叫做翻译器。把高级语言程序翻译成机器语言程序一般有两种做法:编译和解释,相应的翻译工具也分别叫做编译程序和解释程序。 3.1.1 编译程序的工作原理 一个高级语言程序当采用编译程序处理时,输入到编译程序的高级语言源程序经编译后得到目标码程序,但目标代码还不能立即装入机器执行,因为一般情况下它是不够完整的。 所以,编译后得到的目标模块还需进行连接。连接程序找出需要连接的外部模块并到模块库中找出被调用的模块,调入内存并连接到目标模块上,形成可执行程序。 执行时,把可执行程序加载到内存中合适的位置(此时得到的是内存中的绝对地址),就可执行了。 程序的编译与执行 编译型语言由于可进行优化(有的编译程序可作多次优化),目标码效率很高,是目前软件实现的主要方式。常见的程序设计语言,如C/C++、Pascal、Ada、Fortran等都是编译型语言。用这些语言编写的源程序,都需要进行编译、连接,才能生成可执行程序。这对于大型程序、系统程序、频繁使用的支持程序来说是十分有利的。 3.1.2 高级语言程序的解释执行 解释执行需要有一个解释程序,它将源代码程序逐句读入,通过一边分析源程序一边执行程序。 解释器不大,工作空间也不大,能根据程序执行情况决定下一步做什么(人工智能经常是这样的)是它的优点,不过,解释执行难于优化、效率较低,这是该类语言的致命缺点。 3.2 高级程序设计语言的基本特征 计算机程序的基本构成要素有常量、变量、表达式、语句和函数等。 3.2.1 常量、变量、表达式 程序是用来处理数据的,因此,数据是程序的重要组成部分。 常量 所谓常量是指在程序运行过程中其值始终不发生变化,通常就是固定的数值或字符串。 变量 变量是指在程序运行过程中其值可以发生变化的量。在程序设计语言中,变量也可以用指定的名字来代表,换句话说,变量由两部分组成:变量的“标识符”(又称“名字”),以及变量的“内容”(又称“值”)。变量的内容在程序运行过程中是可以变化的。

高级语言程序设计(VB) 随堂练习答案 (1)

高级语言程序设计(VB)随堂练习答案 第1章概述·1.1程序设计语言 当前页有1题,你已做1题,已提交1题,其中答对1题。 1. https://www.wendangku.net/doc/b79015207.html,是一种( )程序设计语言。 A. 面向事件 B. 面向属性 C. 面向对象 D. 面向过程 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 第1章概述·1.2程序设计 当前页有2题,你已做2题,已提交2题,其中答对2题。 1.把源程序代码翻译为目标程序代码可以使用的翻译方式为( )。 A. 嵌入方式 B. 运行方式 C. 连接方式 D. 解释方式或编译方式 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 2.编译程序时出现的错误称为( ) 错误。 A. 语法或编译 B. 运行 C. 逻辑 D. 计算 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 第1章概述·1.3建立简单控制台应用程序 当前页有3题,你已做3题,已提交3题,其中答对3题。 1.存储数据不属于数据处理功能。

答题:对. 错. (已提交) 参考答案:× 问题解析: 2.控制台应用程序至少有一个Main过程。 答题:对. 错. (已提交) 参考答案:√ 问题解析: 3.上机时,程序编译和连接成功后,系统自动生成以.exe为扩展名的可执行文件。 答题:对. 错. (已提交) 参考答案:√ 问题解析: 第2章基本数据类型与表达式·2.1基本字符集和词汇集 当前页有3题,你已做3题,已提交3题,其中答对3题。 1.下面选项中()是算术运算符。 A. % B. & C. Mod D. And 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 2.下面不合法的标识符是()。 A. Go_To B. Integer C. 姓名 D. Int1 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 3.在程序设计语言系统中具有固定语法含义的符号串称为标识符。 答题:对. 错. (已提交) 参考答案:× 问题解析: 第2章基本数据类型与表达式·2.2 基本数据类型

《程序设计语言(C)》课程教学大纲

《程序设计语言(C)》课程教学大纲 课程编号:90211003 总学时数:85(理论51、上机34) 总学分数:4 课程性质:专业必修课 适用专业:全院理工科专业 一、课程的任务和基本要求: 本课程为全院非计算机专业的理工类专业的公共课,是一门计算机技术基础课程。本课程开设在一年级第二学期或二年级第一学期。 C语言程序设计是近年来在国内外迅速推广使用的一种计算机程序设计高级语言,由于其语言功能丰富、表达能力强、使用灵活、应用面广,因此实用性很强。 本课程的主要任务是通过对C语言程序设计的各种数据类型,基本语句,基本程序设计结构以及常用算法的学习,使学生掌握程序设计的基础知识和程序设计的基本方法,培养学生使用计算机解决实际问题的能力。 二、基本内容和要求: (1)C语言概述 C语言出现的背景、特点 简单C程序介绍及上机步骤 (2)算法 算法的概念、特性 算法的表示 程序设计的三种基本结构 (3)数据类型、运算符和表达式 常量与变量 整型数据 实型数据 字符类型数据 各种数值型数据间的混合运算 算术运算符和表达式 赋值运算符和表达式 复合的赋值运算符和表达式 逗号运算符和表达式 (4)顺序程序设计 C语句概述 赋值语句 数据输入、输出的概念及在C语言中的实现 字符数据的输入输出 格式输入输出 顺序结构程序设计举例 (5)选择结构程序设计 关系运算符和关系表达式 逻辑运算符和逻辑表达式 if语句的三种形式、if语句的嵌套 条件运算符 switch语句 选择结构程序设计举例 (6)循环结构程序设计

循环结构程序设计概述 while语句 do-while语句 for语句 循环的嵌套 几种循环语句的比较 break语句和continue语句 循环结构程序设计举例 (7)数组 一维数组的定义和引用 二维数组的定义和引用 字符数组的定义和引用 字符数组的输入输出 字符串处理函数 (8)函数 函数概述 函数参数和函数的返回值 函数调用的一般形式、方式 对调用函数的声明和函数原型 函数的嵌套调用 函数的递归调用 数组作为函数的参数 局部变量和全局变量 变量的存储类别 内部函数和外部函数 (9)预处理命令 不带参数的宏定义 带参数的宏定义 “文件包含”处理 (10)指针 地址和指针的概念 变量的指针和指向变量的指针变量 数组的指针和指向数组的指针变量 字符串的指针和指向字符串的指针变量函数的指针和指向函数的指针变量 返回指针值的函数 指针数组和指向指针的指针 有关指针的数据类型和指针运算的小结(11)结构体和共用体 结构体概述 定义结构体类型变量的方法 结构体变量的引用 结构体变量的初始化 结构体数组 指向结构体类型数据的指针 用指针处理链表 共用体 枚举类型 用typedef定义类型 (12)文件 C文件概述

高级程序设计语言C课程教学大纲

《数据结构A》课程教学大纲 —、课程基本信息 课程中文名称:数据结构A 课程英文名称:Data Structure A 课程编号:10072105 课程性质:学科基础课 课程学时和学分:总学时:64总学分:3.5理论学时:48 ±机学时:16 适用专业:计算机科学与技术、网络工程、软件工程 先修课程:计算机程序设计语言、离散数学等 开课系部、教研室:电子与信息工程系、计算机应用教研室 二、课程的地位与作用 《数据结构》是计算机科学中一门综合性的专业核心基础课程。它是编译原理、操作系统、数据库系统原理、算法设计与分析及计算机应用方面的主要基础。 三、课程总的教学目的和要求 本课程教学目的是通过本课程的学习,要求学生掌握数据结构的特点、存储方法和基本运算,培养学生运用C (C++)语言正确编程及调试的能力,运用数据结构解决简单的实际问题的能力,为后续计算机专业课程的学习打下坚实的基础。 四、各章主要教学内容 第1章数据结构概述(2学时)本章应了解数据结构及算法的概念;掌握计算语句频度和估算算法时间复杂度的方法。重点:数据结构的逻辑结构、存储结构及数据的运算三方面的概念及相互关系难点:算法复杂度的分析方法 第2章线性表(8学时) 本章应了解线性表的逻辑结构特性,以及线性表的两种存储实现方式;熟练掌握顺序表的定义与实现,包括查找、插入、删除算法的实现;熟练掌握在各种链表结构中实现线性表操作的基本方法,能在实际应用中选用适当的链表结构;本章实验应掌握线性表的基本操作在顺序和链式存储结构上的实现。 重点:顺序表和单链表上实现的各种基本算法及相关的时间性能分析难点:使用本章所学到的基本知识设计有效算法解决与线性表相关的应用问题第3章栈和队列(8学时) 本章应掌握栈和队列的定义、特性,并能正确应用它们解决实际问题;熟练掌握栈的顺序表示、链表表示以及相应操作的实现;熟练掌握队列的顺序表示、链表表示以及相应操作的实现;本章实验应掌握栈和队列的特点及栈和队列的基本运算。 重点:栈和队列在两种存储结构上实现的基本运算难点:循环队列中对边界条件的处理 第4章串(2学时) 本章应理解串的基本操作的定义,并能利用这些基本操作来实现串的其它各种操作的方法;熟练掌握在串的顺序存储结构上实现串的各种操作的方法;了解串操作的应用方法和特点。

计算机系统概论了解程序设计语言的发展及应用

课程考试(论文) 题目:了解程序设计语言的发展及应用 院系:互联网+学院____________________________ 专业:计算机网络专业__________________________ 年级:2016 级 ____________________ 班级:D16-1 班 ____________________ 学号:201607040303 ______________________ 学生姓名:______________ 陈瑞 __________________ 二O—六年十二月二十日

四川科技职业学院实践类考试(考查) 考评表

目录 摘要 (1) 一、序论 (1) 1、........................................................................ 论题1 2、.................................................................... 写作意图1 3、.................................................................... 内容提要1 4、...................................................................... 关键字1 二、本论 (4) 1、程序设计语言概述 (5) (1)、机器语言的特点6 (2)..................................................... 、汇编语言的特点|6(3)...................................................... 、高级语言的特点6 2、各类程序设计语言的应用.. (5) (1)、过程化语言用于将算法表示成命令6 (2)、函数式语言用于一系列输入到输出的映射6 (3)、逻辑式语言适用于人工智能这样的特定的知识领域6 (4)、面对对象语言用于定义对象并将操作应用于对象 (6) (5)、专用语言适合于特殊的任务 (6) 3、程序语言的发展趋势 (5) (1)............................................................... 、智能化6(2)............................................................... 、网络化6

高级语言程序设计习题(最新版带答案)

第1章C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于C 源程序是高级语言程序,因此一定要在TC 软件中输入 B. 由C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有32 个关键字和9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在C 语言程序中允许出现的字符集是ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以/* 符号作为开始标记,以*/ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的C 语言整型常量是 D 。 A. 32L B. 510000 C. D. 567 (2) 以下选项中, D 是不正确的C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" (3) 在C 语言中,字符型数据在计算机内存中,以字符的 C 形式存储。 A. 原码 B. 反码 C. ASCII 码 D. BCD码 (4) 字符串的结束标志是 C 。 A. 0 B. '0' C. '\0' D. "0" (5) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 B 。

相关文档
相关文档 最新文档