WebSite Logo
  • Content
  • Similar Resources
  • Metadata
  • Cite This
  • Log-in
  • Fullscreen
Log-in
Do not have an account? Register Now
Forgot your password? Account recovery
  1. Transactions on Programming Languages and Systems (TOPLAS)
  2. ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 12
  3. Issue 1, Jan 1990
  4. On iterative constructs
Loading...

Please wait, while we are loading the content...

ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 38
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 37
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 36
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 35
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 34
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 33
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 32
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 31
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 30
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 29
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 28
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 27
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 26
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 25
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 24
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 23
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 22
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 21
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 20
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 19
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 18
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 17
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 16
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 15
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 14
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 13
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 12
Issue 4, Oct 1990
Issue 3, July 1990
Issue 2, April 1990
Issue 1, Jan 1990
A mechanism for environment integration
Interprocedural slicing using dependence graphs
Production trees: a compact representation of parsed programs
A modular technique for the design of efficient distributed leader finding algorithms
A distributed deadlock detection algorithm for CSP-like communication
A correctness proof for combinator reduction with cycles
Type extension through polymorphism
On iterative constructs
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 11
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 10
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 9
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 8
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 7
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 6
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 5
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 4
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 3
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 2
ACM Transactions on Programming Languages and Systems (TOPLAS) : Volume 1

Similar Documents

...
On selective and repetitive constructs

Article

...
Encapsulation constructs in systems programming languages

Article

...
On "powerloop" constructs in programming languages

Article

...
On control constructs for constructing programs

Article

...
Bracketing programme constructs

Article

...
Comments on innovative control constructs in pancode and EPN

Article

...
Programming constructs for database system implementation in EXODUS

Article

...
Heuristics for iterative software development

Article

...
Control constructs for programming languages

Article

On iterative constructs

Content Provider ACM Digital Library
Author Parnas, David Lorge
Copyright Year 1990
Abstract The wheel is repeatedly reinvented because it is a good idea. Perhaps Anson's "A Generalized Iterative Construct and Its Semantics" [1] confirms that “A Generalized Control Structure and Its Formal Definition” [2], and the earlier “An Alternative Control Structure and its Formal Definition” [3] presented good ideas. However, there are several misstatements in [1] that should be corrected.As Anson points out, [2] contained definitions of constructs equivalent to both DO TERM and DO UPON. However, he is incorrect when he suggests that it emphasized DO TERM because of efficiency considerations. By writing “There is a pragmatic justification for either definition! “, I made it clear that that was not the reason for my choice. DO TERM has two, quite different, advantages.(a) DO TERM is more general. An implementation of DO TERM may, in fact, be DO UPON if desired. Further, a programmer using DO TERM can achieve the effects of DO UPON by choosing his guards accordingly.(b) DO TERM, like Dijkstra's do od, eases the verification of programs by maintaining independence of guarded commands. The verification procedure for such constructs as do od and DO TERM is (1) verify that the union of the guards is true in all states where the program will be invoked; (2) verify that each guarded command, on its own, will do no wrong. For DO UPON the second step is complicated by the need to consider the terminating commands in the list when considering an iterating command.Anson argues that the semantics of DO TERM are more complex. The minor syntactic difference between his two definitions is a consequence of the clumsiness of wp semantics. In the relational semantics used in [2], the change from DO UPON to DO TERM meant the addition of one simple definition.As Mills' [4] has explained, programmers should not be deriving the semantics of their programs from the text as Anson's analysis suggests. We do not write programs arbitrarily and then try to determine their semantics. Instead, programmers should be verifying that the program they have written has the semantics that they set out to achieve. Fortunately, this verification is much easier than the inductive derivation of semantics described in [1]. As explained above, verification is easier for DO TERM than DO UPON.Anson suggests that a stronger weakest-precondition “seems to imply a weaker construct.” On the contrary, DO TERM can describe algorithms that cannot be described with DO UPON.Anson also suggests that in DO TERM termination is more difficult to obtain. Programmers can obtain the behavior that they want in either. With DO TERM the guards may be longer. For those that want to reduce the length of the guards, [2] offered a third alternative, a deterministic construct. This construct forced left-to-right consideration of the commands. This alternative has the verification disadvantages of DO UPON (the guarded command semantics are not independent), but, by putting the terminating commands first, one can achieve everything that Anson values in DO UPON. In fact, with the deterministic construct, one can often achieve guards that are shorter than they would be with DO UPON. DO UPON seems to be a compromise between DO TERM and the deterministic construct, a compromise with some of the disadvantages of both extremes and the advantages of neither.Anson has not provided the full semantics of the constructs in question. It has been known for many years (e.g., Majster [5]) that wp alone does not define the semantics of a program. Two programs with the same wp can differ in their behavior in important ways. To provide a complete semantics of the constructs one must define both wp and wlp. That was one of the reasons for using a relational semantics in [2] and [3]. When I wrote [2] I deliberately chose DO TERM over DO UPON because I felt that the simplicity of verification compensated for the longer guards. I also valued the ability to describe the algorithms that cannot be described with DO UPON. I continue to prefer the syntax used in [2]. I believe that readers who consider the facts above will make the same choice.The discussion of these issues is made a bit academic by the four-year delay between Anson's submission of his paper (which apparently coincided with the publication of [2]) and the publication of [1]. In that time a generalization of both schemes has been published as a Technical Report [6] and has been submitted for publication. In this generalization the decision about whether a command is iterating or terminating can be made during execution, and the semantics must be that of DO TERM. Further generalizations make the seman tics of the constructs more practical, since side-effects are accurately treated in all cases. A method for reducing the length of guards and avoiding duplicated subexpressions is also provided.
Starting Page 139
Ending Page 141
Page Count 3
File Format PDF
ISSN 01640925
e-ISSN 15584593
DOI 10.1145/77606.214517
Volume Number 12
Issue Number 1
Journal ACM Transactions on Programming Languages and Systems (TOPLAS)
Language English
Publisher Association for Computing Machinery (ACM)
Publisher Date 1990-01-03
Publisher Place New York
Access Restriction One Nation One Subscription (ONOS)
Content Type Text
Resource Type Article
Subject Software
  • About
  • Disclaimer
  • Feedback
  • Sponsor
  • Contact
  • Chat with Us
About National Digital Library of India (NDLI)
NDLI logo

National Digital Library of India (NDLI) is a virtual repository of learning resources which is not just a repository with search/browse facilities but provides a host of services for the learner community. It is sponsored and mentored by Ministry of Education, Government of India, through its National Mission on Education through Information and Communication Technology (NMEICT). Filtered and federated searching is employed to facilitate focused searching so that learners can find the right resource with least effort and in minimum time. NDLI provides user group-specific services such as Examination Preparatory for School and College students and job aspirants. Services for Researchers and general learners are also provided. NDLI is designed to hold content of any language and provides interface support for 10 most widely used Indian languages. It is built to provide support for all academic levels including researchers and life-long learners, all disciplines, all popular forms of access devices and differently-abled learners. It is designed to enable people to learn and prepare from best practices from all over the world and to facilitate researchers to perform inter-linked exploration from multiple sources. It is developed, operated and maintained from Indian Institute of Technology Kharagpur.

Learn more about this project from here.

Disclaimer

NDLI is a conglomeration of freely available or institutionally contributed or donated or publisher managed contents. Almost all these contents are hosted and accessed from respective sources. The responsibility for authenticity, relevance, completeness, accuracy, reliability and suitability of these contents rests with the respective organization and NDLI has no responsibility or liability for these. Every effort is made to keep the NDLI portal up and running smoothly unless there are some unavoidable technical issues.

Feedback

Sponsor

Ministry of Education, through its National Mission on Education through Information and Communication Technology (NMEICT), has sponsored and funded the National Digital Library of India (NDLI) project.

Contact National Digital Library of India
Central Library (ISO-9001:2015 Certified)
Indian Institute of Technology Kharagpur
Kharagpur, West Bengal, India | PIN - 721302
See location in the Map
03222 282435
Mail: support@ndl.gov.in
Sl. Authority Responsibilities Communication Details
1 Ministry of Education (GoI),
Department of Higher Education
Sanctioning Authority https://www.education.gov.in/ict-initiatives
2 Indian Institute of Technology Kharagpur Host Institute of the Project: The host institute of the project is responsible for providing infrastructure support and hosting the project https://www.iitkgp.ac.in
3 National Digital Library of India Office, Indian Institute of Technology Kharagpur The administrative and infrastructural headquarters of the project Dr. B. Sutradhar  bsutra@ndl.gov.in
4 Project PI / Joint PI Principal Investigator and Joint Principal Investigators of the project Dr. B. Sutradhar  bsutra@ndl.gov.in
Prof. Saswat Chakrabarti  will be added soon
5 Website/Portal (Helpdesk) Queries regarding NDLI and its services support@ndl.gov.in
6 Contents and Copyright Issues Queries related to content curation and copyright issues content@ndl.gov.in
7 National Digital Library of India Club (NDLI Club) Queries related to NDLI Club formation, support, user awareness program, seminar/symposium, collaboration, social media, promotion, and outreach clubsupport@ndl.gov.in
8 Digital Preservation Centre (DPC) Assistance with digitizing and archiving copyright-free printed books dpc@ndl.gov.in
9 IDR Setup or Support Queries related to establishment and support of Institutional Digital Repository (IDR) and IDR workshops idr@ndl.gov.in
I will try my best to help you...
Cite this Content
Loading...