肚子容易胀气是什么原因| 顺遂是什么意思| 全身是宝的动物是什么生肖| 晚的反义词是什么| 豆粕是什么东西| 97年五行属什么| 百日咳是什么引起的| 呦呦是什么意思| 什么而什么见| 锲而不舍下一句是什么| 两岁宝宝不会说话但什么都知道| 怕冷的女人是什么原因| 服务是什么意思| 臭鳜鱼是什么鱼| 血清谷丙转氨酶偏高是什么意思| 不知道干什么| 肾精亏虚吃什么药| 唐三彩是什么意思| 甲状腺是什么病| 鸡蛋白过敏指的是什么| 奢侈的近义词是什么| 肾上腺素是什么| 发情是什么意思| 指甲月牙代表什么意思| 结婚纪念日送什么礼物| lka是什么意思| 红薯叶不能和什么一起吃| 甲沟炎挂什么科| 三十如狼四十如虎什么意思| 吃什么下奶快| 冰心原名是什么| 峦读什么| 毛主席为什么不进故宫| 什么是双规| 黑壳虾吃什么食物| 皮肤一碰就红是什么原因| 猫鼻支是什么症状| 11月29号什么星座| 解脲脲原体是什么意思| 什么减肥药好使| 茉字五行属什么| 陈凯歌为什么不娶倪萍| 人生的意义到底是什么| 三班倒什么意思| 臀纹不对称有什么影响| 菊花是什么意思| 脉弱是什么意思| 老公的爸爸称谓是什么| 为什么井盖是圆的| 打醮是什么意思| 不自主的摇头是什么病| 辐射是什么| 月经来了一点就没了是什么原因| 张起灵和吴邪什么关系| 茶卡是什么意思| 夏天吃什么水果比较好| 肾阳虚吃什么中药| 说什么好| 阴道痒用什么药好| 瞳距是什么| 无期是什么意思| 肝郁吃什么药| 阴道炎用什么药效果好| 新生儿睡觉突然大哭是什么原因| 农历六月十二是什么日子| 627是什么意思| 巨蟹男喜欢什么类型的女生| 什么水果养胃又治胃病| 黑加仑是什么| opo是奶粉里的什么成分| 破伤风什么情况需要打| 螃蟹不能和什么水果一起吃| 宝宝手足口病吃什么药| 大腿外侧是什么经络| 檀香是什么味道| 胎停了有什么症状| 怀孕期间不能吃什么| 痛风吃什么中药最有效| 什么降胆固醇| 鼠目寸光是什么意思| 脑供血不足吃什么食物| 做梦数钱是什么意思啊| 什么血型最招蚊子| 周杰伦为什么叫jay| 无精打采是什么意思| 04年属什么生肖| 鸽子拉绿稀便是什么病| 小孩睡觉出很多汗是什么原因| 舌头两边疼是什么原因| 画是什么结构| 每天吃维生素c有什么好处| 匹维溴铵片治什么病| 膀胱过度活动症吃什么药| 鲔鱼是什么鱼| 汗血宝马什么意思| 胎儿偏小吃什么补得快| 院感是什么意思| 胃酸胃胀吃什么药| 代沟什么意思| 血糖低怎么办吃什么补| 金融bp是什么意思| 什么花是绿色的| 铁剂不能和什么一起吃| 金钱龟吃什么食物| 喝酒后胃不舒服吃什么药| 糖化是什么意思| 为什么分泌物是褐色的| 肾b超能检查出什么| 活在当下什么意思| 婚检是什么意思| 5月5是什么星座| 过生日吃什么| 湖北有什么山| 瞎子吃核桃砸了手是什么生肖| 女人排卵期什么时候| 10.17是什么星座| 取环后要注意什么事项| 胰腺炎吃什么中成药| 什么鱼最好养活| 6月3日是什么星座| 解酒吃什么药| 爱豆什么意思| 后背疼去医院挂什么科| 1987是什么年| 莹五行属性是什么| 皮肤发黑是什么原因引起的| 阴茎里面痒是什么原因| 什么时候闰十二月| 脾虚吃什么好的最快| 尿频尿急是什么症状| 缅甸的首都叫什么名字| nfc果汁是什么意思| 跳蚤咬了擦什么药最好| 小肚子疼是什么情况| 丹参有什么作用和功效| 氪金什么意思| 高血压有什么症状表现| 叔公是什么辈分| 生意兴隆是什么生肖| 2 26是什么意思| 雾化是治疗什么的| 龙鱼吃什么| 9月1号什么星座| 炖汤用什么锅比较好| 统筹支付是什么意思| 血清肌酐高说明什么问题| 女性雄激素过高是什么原因引起的| 有脚气是什么原因引起的| 脑梗是什么原因引起的| 胎儿左心室点状强回声是什么意思| 6月19日是什么日子| rhubarb是什么意思| 小便尿血是什么原因| 下属是什么意思| 什么样的雪莲| hsv病毒是什么意思| 奔走相告是什么意思| 图灵是什么意思| 12点半是什么时辰| 既视感是什么意思| 羊毛疔是什么病| 诱发电位是检查什么病的| 梵蒂冈为什么没人敢打| 缺钾是什么症状| 例假吃什么水果好| 非那根又叫什么| 家有喜事是什么生肖| 寻麻疹看什么科| 7月14什么星座| 弱不禁风是什么生肖| 生加一笔是什么字| 世界上最高的高原是什么| 冬眠是什么意思| 差强人意什么意思| 西施是什么意思| 良善是什么意思| 气场强大是什么意思| 消心痛又叫什么| 舌根起泡是什么原因| 双眸是什么意思| 蟋蟀是靠什么发声的| 腰扭伤用什么药最好| 长可以加什么偏旁| 老是掉头发什么原因| 00年属什么| 最近有什么新闻| 黄体中期是什么意思| 刘邦是什么生肖| 尿道刺痛吃什么药| 什么像什么似的什么造句| 马蜂窝治什么病最好| chevy是什么车| 炼乳是什么东西| 竹字五行属什么| 生殖细胞是什么| 舌根发黄是什么原因造成的| 桥本氏甲状腺炎吃什么药| 吃什么能降血压| 内热吃什么药清热解毒| 吃什么助于长高| 爱放屁是什么原因引起的| 为什么会得阴道炎| 美甲光疗是什么| 魔芋是什么东西| 1月8号是什么星座| 肝实质弥漫性回声改变什么意思| 为什么吃西瓜会拉肚子| 衣锦还乡是什么意思| 半夜流鼻血是什么原因| 陶渊明是什么派诗人| 卡替治疗是什么意思| 皮肤长小肉粒是什么原因| 胃胀吃什么中成药| 3月10日什么星座| 平反是什么意思| 三季人是什么意思| 好记性不如烂笔头是什么意思| 嬴荡和嬴政什么关系| 什么是用户名| 新加坡用什么货币| 豁出去了什么意思| 老公的爸爸称谓是什么| 狗狗有什么品种| 冷血动物是什么意思| 大米里放什么不生虫子| 三七粉是治什么病的| pop是什么意思| 舌头发红是什么原因| 隶属什么意思| 有什么组词| vcr什么意思| levis是什么牌子| 起早贪黑是什么生肖| 布洛芬吃多了有什么后果| 为什么老流鼻血| rv是什么意思| 梦见古墓是什么意思| 慢性胃炎可以吃什么水果| 眼睛肿了用什么药| 迈巴赫是什么车| 大便是绿色的是什么原因| 念珠菌和霉菌有什么区别| 一什么秋千| 硬度不够吃什么中成药| 甲减检查什么项目| seifini是什么牌子| 一什么金鱼| 梦见火烧房子是什么预兆| dvf是什么档次的牌子| falcon是什么牌子| 蛆是什么| 胃炎伴糜烂吃什么药效果好| 心率过低有什么危害| 炭疽病用什么药| 尿喝起来是什么味道| 减肥有什么好方法| 戾气重是什么意思| 小孩打喷嚏流鼻涕吃什么药| 精索静脉曲张什么症状| apart是什么意思| 右手大拇指发麻是什么原因| 两小无猜什么意思| 李子什么时候吃最好| 小鸟站在高压线上为什么不会触电| 百度
. navigate
 Navigate

Straw bale



STRAWMAN

THE
TECHNICAL
REQUIREMENTS

April 1975

Strawman     Woodenman     Tinman     Ironman     Steelman


Definitions     Table of Contents
Source Language     Translator     Management Controls     Compile Time     Run-Time     Authors
Webpage Note



The following is a strawman list of requirements for the common DoD High Order Language (HOL). It is the understanding of the subcommittee that the common HOL should support software development and maintenance for all DoD applications and will eventually supplant all programming languages used by DoD except COBOL and FORTRRAN. The strawman list was derived from the initial lists submitted by the individual Military Departments.

This subcommittee believes that there are both operational and technological requirements for the common HOL. Each requirement appears on the strawman list for at least one of the following reasons:

  1. the requirement appeared on all of the initial requirements lists and was in conflict with no other requirement:

  2. the requirement takes a strong position on one side or the other of a controversial issue;

  3. the requirement reveals an issue or an aspect of HOLs where there are likely to be requirements.

The purpose of this strawman is to aid the services in formulating their HOL requirements. It is our understanding that existing languages will be evaluated against the resulting requirements.

Each service is expected to respond with its own list of requirements. It is our belief that each requirement should be brief and address a single issue. Requirements should be sufficiently precise so that the question "does language X meet this requirement" is answerable. Requirements should express a need rather than a mechanism for meeting that need. Thus an attempt should be made to replace each initial requirement by the specific underlying need. It is obvious that the strawman does not fully meet these goals.

Each requirement should be traceable. That is, the operational or technological source of the requirement should be given with the requirement. For operational requirements, the trace should include why it is needed and a list of where it is needed. For technological requirements the trace should include why it is needed and references to related work.



DEFINITIONS
USER User of the language; i.e., the programmer.
TYPE A sequence or set of elements which share common properties and operations.
VARIABLE A dynamically valued container.
SCALAR A value which has no internal structure which cannot be modified by the user. That is, a scalar is a constant.
ARRAY An indexed set of variables of bounded size.
RECORD A labeled set of variables.
FIXED Means completely determined at the time of translation and not modifiable at run time.
DYNAMIC Means that the property can be changed at run time under program control.
OPEN ROUTINE A routine that can be inserted directly into a larger routine without a linkage or calling sequence.
CLOSED ROUTINE    A routine which is not inserted as a block of instructions within a main routine, but is entered by basic linkage from the main routine.



COMMON HOL REQUIREMENTS

I.   SOURCE LANGUAGE
I.A  Character Set
I.A.1   Types
I.A.2   Variables
I.A.3   Parameters
I.B  Operations
I.C  Control Structures
I.D  Syntax
I.D.1   Parsing Rules
I.D.2   Lexical Structure
I.D.3   Character Set
I.E  Scope Rules
I.F  Specification
I.F.1   Variable Specifications
I.F.2   Notes to Translator
I.F.3   Insertions
I.F.4   Assertions
I.F.5   Comments
II.   TRANSLATOR
II.A  Object Code
II.B  Compile Time Checks
II.C  Compile Time Features
III.   MANAGEMENT CONTROLS
IV.   COMPILE TIME ENVIRONMENT
V.   RUN-TIME ENVIRONMENT





I.  SOURCE LANGUAGE

Every user level aspect of the language will be formally specified. None will be left to the translator implementer, operating system or object machine.

There will be a traceable operational and/or technological requirement for each primitive data, operation and control structure in the language.

The language will not reveal minor differrences in computer architecture.

Machine dependent code cannot appear interspersed in-line in source language programs.

The semantics of the language will be determinable from the description.

Constructs of the language will have only one reasonable interpretation (i.e., physcologically unambiguous).

There will be an axiomatic definition of the language. It will be mathematically complete in the Turing sense.

The language will not sacrifice clarity for efficiency.

The language will not contain special features for rare cases.

All defaults in a program will be specifically provided in the language specification or in the program.

There will be a minimal number of defaults.



I.A  DATA

Dynamic allocation and de-allocation will be explicit. Non-dynamic allocation and de-allocation will be implicit.



I.A.1  TYPES

There will be only primitive types for integer, real (floating or fixed point), Boolean (bit), and character.

The language will provide the capability for defining new data types.

Defined types will be generated by enumeration, cartesian produce, discriminated union, power set, recursive data structure (this subsumes pointers), array of values or sequencing. [Ref: Dahl, O.J.; Dijkstra, E.W.; Hoare, C.A.R.; Structured Programming, April 1972, pp. 91-174.]

Any requirement which applies to primitive types will also apply to defined types.

The use of a particular type is independent of its representation. Thus, the representation can be changed without changing the calling program.

Recursively defined data structures will be preserved over I/O and relocation.



I.A.2  VARIABLES

The type of each variable will be explicitly individually specified in the source program.

Scalar variables, arrays and records will be the only primitive variable structures in the language.

Variables and arrays will be of fixed type.

All variables will be initialized at the time of their allocation. All initial values will be explicitly specified in the program (not necessarily within this program module).

The language will provide for initialization of variables at their definition.

Arrays will be of homogeneous type.

The user will be able to specify array origin.

The number of dimensions for an array will be fixed but not limited by the translator.

The language will support dynamic array size. The default for arrays will be static size.

The language will support records of a heterogeneous type with fixed conditional structure.



I.A.3  PARAMETERS

Formal and actual parameters must agree on type and size and will be checked at translation and binding times.

All capabilities of intrinsic functions will be available to user defined functions. (E.g., the language will support routines with a variable number of arguments.)

Four classes of formal parameters are needed: those which represent the value of the actual parameter at the time of call; those which represent the dynamic value of the actual parameter; those which represent an actual parameter variable which can be assigned to; and those which represent program components other than values or variables (e.g., routines, types, labels, events).



I.B  OPERATIONS

The following primitive arithmetic operators will be provided: addition, subtraction, multiplication, division, exponentiation, and negation.

The following primitive character string operations will be provided: concatenation, substring and length.

The following Boolean operators will be provided: and, or and not.

The language will contain an equivalence and a non-equivalence operator applicable to all data types except those composed from reals.

Relational operators will be provided for all explicitly ordered data types except those composed from reals.

There will be no implicit type conversions except to supersets.

There will be at least one primitive operator for conversion from real to integer.

Scalar operations may be applied to conformable structures to indicate component by component operations.

Assignments will be permitted between conformable variables, arrays or records of the same type, except for implicit type transfers.

Operations for a given type will be definable with the type.

The language will permit extension of existing operators to new types.

There will be the ability to dynamically assign and reassign I/O devices.



I.C  CONTROL STRUCTURES

The language will include control structures for sequential, conditional, iterative, recursive (pseudo) parallel processing and exception handling.

The language will provide for the "go to."

Capabilities to be provided under parallel processing will include: creation, activation, synchronization, and termination of processes.

Conditional structures will be fully partitioned. The results of all possible states of the condition will be explicitly stated.

The user will be able to direct notification of run time errors to appropriate parts of his program(s). This information will include kind, data context, and control context of the error.

The prmitive control structures will have a simple and efficient translation as code in object machines of conventional architecture.



I.D  SYNTAX

The source language will be consistent and free from ambiguity, both syntactically and semantically.

There will be no syntax extension facility.

The language will be expressable in free form.

The syntax will be based on conventional forms.

The language will provide compact notations for frequently used items (e.g., key words should be short).



I.D.1  PARSING RULES

A single interpretation will not be represented by more than one syntactic form.

The language will provide similar notation for similar things.

There will be no syntactic distinction between function calls and data selection.

The user will be able to associate infix and prefix notation with routines.

Literals will have the same syntax and value whether entered in programs or data.

Literals for primitive types will be defined in the language.

There will be no unmatched "parenthesis" (e.g., every "END" must have only one "BEGIN").



I.D.2  LEXICAL STRUCTURE

The language will specify the rules for lexical units (including identifiers).

The language will encourage the use of mnemonically significant identifiers.

Spaces will be significant in the syntax.

There will be a language defined character break for use within names.

End of line will not be internal to lexical units and will have the effect of a space.

Names and literals will not extend beyond the end of line.

All key words will be reserved (i.e., cannot be used as identifiers). Reserved words will be relatively limited in number. All key words will be included in the language specification.



I.A.3  CHAR SET

There will be a standard language defined character set. Characters in this standard character set which are not universally available will have an alternate (universally available) representation.

The language will specify the collating sequence.



I.E  SCOPE RULES

The language will allow the scope of an identifier to be restricted to be restricted to only those sections of programs where it is intended to be used.

The scope of an identifier will be wholly determined at compile time.

Identifiers will be introduced at the beginning of their scope.

Multiple use of identifiers will not be allowed in the same scope except for embedded blocks in which case the inner-most identifier will apply.

A feature will exist in the language which provides the user the capability to specify entities (anything definable in the language) within a scope which are exportable to other scopes. This includes separately compilable scopes.



I.F  SPECIFICATIONS

I.F.1  VARIABLE SPECIFICATIONS

The user will have the capability to explicitly specify the range, precision and scale factor of numeric variables.

The user must specify the default range and precision for variables within his program.

The language will permit specification of units of measure.



I.F.2  NOTES TO TRANSLATOR

The user will be able to specify space/time tradeoff to the compiler. As an example, the user will be able to specify packing of data in a machine independent bit equivalent form.

User can specify whether a routine is open or closed.



I.F.3  INSERTIONS

The user can cause any things in the library to be inserted into his program.

The user can cause separately compiled things to be inserted into his program.

Inserted routines may be written in other language including assembly languages.



I.F.4  ASSERTIONS

The language will allow inclusion of assertions in programs.



I.F.5  COMMENTS

End of line will be the terminator for a comment. The start of a comment will be designated by a language specified single character.

All language specified characters may be included within a comment.





II.  TRANSLATOR

Any translator for the language must implement the entire language (NO subsets).

Any translator for the language must implement only the language as specified (translator implementer may not expand the language specification).

Translator does not have to run on all object machines. Self-hosting is not required.



II.A  OBJECT CODE

The translator will generate efficient object code.

It will be the responsibility of the translator to insure that optimization does not change the effect of the program (i.e., code motion is allowed if it does not change the results).

The translator will not impose run-time costs for unused generalities.

Translator will evaluate constant expressions at compile time.

Translator(s) must be able to produce code for a variety of object machines. (Language features will be machine independent).

Prevention of race conditions and deadlocks on shared data will be guaranteed.



II.B  COMPILE-TIME CHECKS

The types of all variables, expressions, and parameters will be checked for compatability at translation/binding time.

The translator will validate range specifications where possible.

Compatibility of units of measure will be checked whenever possible.

There will be a standard set of compile-time mneumonic diagnostic messages.



II.C  COMPILE TIME FEATURES

The language will provide compile time executable statements. The language of these statements will be identical to the source language. [This includes conditional compilation and debugging statements.)

The user will be able to inhibit code generation.

The translator must provide open and closed routine capabilities.

The translator will be capable of scaling. That is, it will be capable of generating fixed point instructions and managing the scale factors at compile time.

The translator will optionally generate code for run-time checking of range.





III.  MANAGEMENT CONTROLS

Control procedures must be established to ensure translator implementation of the language as specified.

Translator will be able to enforce installation defined programming conventions.





IV.  COMPILE TIME ENVIRONMENT

The library will be capable of holding any named thing definable in the source language.

Any item in the library will be definable in the source language and the concurrent definition must be in the library.

Required data operations and control which are definable in terms of the primitives will be provided in the supported libraries. This may include complex data types, list structures, vectors and matrix operations.

There will be supported libraries for graphics and debugging aids.

The language will support real time clocks and real time events.





V.  RUN-TIME ENVIRONMENT

Run-time errors will be reported in terms of the structure of the source program (this might be in the form of a postprocessor).

There will be a well defined, standard operating system interface.

There will be a well defined, standard data base interface.

There will be a common object data format for transferring records between machines.

There will be dynamic debugging facilities, in terms of the source language, including commands to set and reset breakpoints on any statement in the program, the ability of the system to return control to the user in the event of a program error, facilities for examining and altering any data item in a program once it has been frozen and control returned to the interactive debugging control, the ability to restart the program not necessarily at the point at which execution was interrupted, facilities for deleting, replacing and inserting lines in the program, commands to request statistical information about the behavior of the program, and convenient methods for initiating any of the foregoing facilities.





AUTHORS

James M. Robinette
Quality Assurance Directorate
U.S. Army Computer Systems
Fort Belvoir, Virginia


Martin Wolfe
Computer Software Area
Languages Team
AMSEL-NL-BG-2
Comm/ADP Lab
Fort Monmouth, New Jersey 07703


John Shore
Code 5403, U.S. Naval Research Lab
Washington, D.C. 20375


Warren E. Loper
Code 5200
Naval Electronics Laboratory Center
San Diego, California 92152


David Weiss
Code 5403D
U.S. Naval Research Lab
Washington, D.C. 20375


Thomas H. Jarrell, Maj.
HQAF SC/XRF
Andrews AFB, Maryland


David A. Fisher
Institute for Defense Analyses
400 Army-Navy Drive
Arlington, Virginia 22202


For the purposes of clarity, this document has been modified by correcting typos that have no semantic impact, and by expanding section numbers to their full form. If a correction would have resulted in any ambiguity, the change was not made.    MVD





Definitions     Table of Contents
Source Language     Translator     Management Controls     Compile Time     Run-Time     Authors


Overview

Requirements
      Strawman
      Woodenman
      Tinman
      Ironman
      Steelman

RED Reference
RED Rationale

Types in RED
Time/Life Computer Languages
Memories

Site Index

Overview             Reference ToC             Rationale ToC             Site Index



Home   Favorites   Map

IME logo Copyright © 2009, Mary S. Van Deusen
七杀是什么 惨不忍睹是什么意思 什么是特应性皮炎 四象是什么 睡觉流口水什么原因
珍珠状丘疹用什么药膏 木瓜是什么季节的 48岁属什么生肖 romoss是什么牌子 贫血吃什么药最快
女性肾火旺有什么症状 fgr医学上是什么意思 盐酸盐是什么 弊是什么意思 血糖高吃什么
嵌甲去医院挂什么科 憋气是什么意思 肾与性功能有什么关系 拍胸片能检查出什么 安门是什么意思
吃什么大补hcv8jop8ns9r.cn 大白刁是什么鱼hcv8jop7ns6r.cn 颈动脉彩超查什么hcv8jop8ns7r.cn 迪根是什么药zsyouku.com 无厘头是什么意思hcv8jop9ns6r.cn
喜欢吃肉的动物是什么生肖zhongyiyatai.com 大学有什么专业适合女生hcv8jop4ns3r.cn 看胰腺挂什么科hcv8jop3ns1r.cn 1995年属什么生肖hcv8jop8ns7r.cn 眼睛睁不开是什么原因hcv7jop9ns8r.cn
刻代表什么生肖hcv8jop1ns2r.cn 男生为什么会遗精hcv8jop4ns2r.cn 丙火是什么意思hcv9jop2ns3r.cn 护肝喝什么茶hcv9jop3ns0r.cn 老汉推车是什么意思hcv9jop3ns4r.cn
肺结核钙化是什么意思hcv8jop8ns4r.cn 冒菜和麻辣烫有什么区别hcv7jop7ns4r.cn 补气血吃什么食物hcv8jop4ns0r.cn 腿抽筋吃什么药最好hcv9jop0ns8r.cn 金骏眉是什么茶类hcv8jop1ns2r.cn
百度