Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
PL/C
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Variants == Within the computer science department at Cornell there was a sense of pride about PL/C being associated with the university, and there were several variants of PL/C worked on by Conway, other faculty members, and graduate students.<ref name="OHCS-Gries">{{cite interview |last=Gries |first=David |subject-link= |interviewer=Robert L. Constable |title=A Conversation with David Gries |work=An Oral History of Computer Science |date=July 21, 2015 |publisher= Cornell University Library |location= |url=https://ecommons.cornell.edu/handle/1813/40576 }} See segment at 28:30.</ref> In 1974, the PL/CT variant of PL/C, for use on interactive terminals rather than in batch job submissions, was first made available at Cornell.<ref name="acm-plct"/> A second release was made in 1975,<ref name="plct">{{cite report |author-last=Moore | author-first=Charles G. III | author2-last=Worona | author2-first=Steven L. | author3-last=Conway | author3-first=Richard W. |date=September 1975 |title=PL/CT β A Terminal Version of PL/C β Release 2 |url=https://ecommons.cornell.edu/handle/1813/7114 |publisher=Cornell University |page= |docket=TR75-259 }}</ref> and then it was made available to outside institutions in 1976.<ref name="cw-mar76"/> PL/CT primarily ran on an [[IBM System/370]] under [[VM/CMS]];<ref name="plct"/> it could also run in the [[IBM TSO]] environment.<ref name="acm-plct"/> Somewhat unusually, PL/CT was not interpreted but rather was still implemented as a compiler.<ref name="acm-plct">{{cite conference | author-first=Richard | author-last=Conway | author2-first=Charles | author2-last=Moore | author3-first= Steven | author3-last=Worona | year= 1977 | contribution= An interactive version of the PL/C compiler | title= Proceedings of the 1977 annual conference (ACM '77) | publisher= Association for Computing Machinery | pages=308β314 | doi=10.1145/800179.810220 | hdl=1813/7028 | isbn=978-1-4503-2308-6 | hdl-access=free }}</ref> A variant under development by 1976 was PL/CS, which was a far more restricted subset of PL/I than regular PL/C and which provided direct language support for [[Assertion (software development)|assertions]].<ref name="plcs">{{cite report |author-last2=Constable | author-first2=Robert L. | author1-last=Conway | author1-first=Richard W. |date=November 1976 |title=PL/CS β A Disciplined Subset of PL/I |url=https://ecommons.cornell.edu/handle/1813/7436 |publisher=Cornell University |page= |docket=TR76-293 }}</ref> The subset was enough, however, that PL/CS would still be suitable for teaching introductory programming classes.<ref name="toplas-plcs"/> It was implemented as an alternate [[lexical analysis|lexical]] and [[parser|syntactic]] analyzer that then plugged into the common PL/C code generator and runtime system.<ref name="plcs"/> PL/CS was also used in research on the [[Semantics (computer science)|formal semantics of programming languages]].<ref name="toplas-plcs">{{cite journal | author-first=Robert L. | author-last=Constable | author2-first= James E. | author2-last=Donahue | title= A Hierarchical Approach to Formal Semantics With Application to the Definition of PL/CS | journal= ACM Transactions on Programming Languages and Systems | volume=1 | number= 1 | date=July 1979 | pages= 98β114 | doi=10.1145/357062.357069 | s2cid=7915928 }}</ref> A different implementation of the PL/CS definition came with Professor [[Tim Teitelbaum]] and his pioneering [[Cornell Program Synthesizer]] work.<ref name="cps">{{cite journal | author-first=Tim | author-last=Teitelbaum | author2-first= Thomas | author2-last=Reps | title= The Cornell Program Synthesizer: A Syntax-Directed Programming Environment | journal= Communications of the ACM | volume=24 | number=9 | date=September 1981 | pages= 563β573 | doi=10.1145/358746.358755 | s2cid=14317073 | doi-access=free }}</ref> This early instance of an [[integrated development environment]] was developed in 1978 for the [[PDP-11#Models|PDP-11/60]],<ref name="OHCS-Teitelbaum">{{cite interview |last=Teitelbaum |first=Tim |subject-link= |interviewer=David Gries |title=A Conversation with Tim Teitelbaum |work=An Oral History of Computer Science |date=September 10, 2015 |publisher= Cornell University Library |location= |url=https://ecommons.cornell.edu/handle/1813/40865 }} See segments at 10:15 and 16:18.</ref> and contained a [[structured editor]] for PL/CS along with an [[incremental compiler]] as well as an [[Interpreter (computing)|interpreter]].<ref>{{cite book | title=The Synthesizer Generator: A System for Constructing Language-Based Editors | author-first=Thomas W. | author-last=Reps | author2-first= Tim | author2-last=Teitelbaum | publisher=Springer Verlag | location=New York | year= 1989 | pages=3, 9 | isbn=9781461396239 | url=https://books.google.com/books?id=yoXkBwAAQBAJ&pg=PA9 }}</ref> The Cornell Program Synthesizer was soon adapted for the [[Terak desktop workstation]], an early personal computer,<ref name="OHCS-Teitelbaum"/> which was based on the [[LSI-11]] processor.<ref name="siguccs-marches"/> The Terak computer found popularity for instructional use at Cornell and at other universities, as did the PL/CS available on it.<ref name="siguccs-marches"/><ref name="cdsun-111578"/> In addition, Cornell built a link between the Terak and their IBM 370 mainframe, that would allow batch-mode execution of programs under PL/C and the obtaining of results on printers.<ref name="cornell-history-computing"/> There was an even more experimental dialect being worked on, starting in 1975,<ref name="popl-plcv"/> that was known as PL/CV, which supplied some language support for [[formal verification|formal proof of correctness]] and which ran as a separate verifier step.<ref name="plcs"/> The PL/CV work was led by Professor [[Robert L. Constable]].<ref name="popl-plcv"/><ref name="OHCS-Constable"/> PL/CV used PL/CS as part of what it did,<ref name="popl-plcv"/> and indeed Constable had participated in the creation of PL/CS,<ref name="plcs"/> especially working with Conway and David Gries on the adding of assertions.<ref name="OHCS-Constable">{{cite interview |last=Constable |first=Robert L. |subject-link= |interviewer=David Gries |title=A Conversation with Robert L. Constable |work=An Oral History of Computer Science |date=July 21, 2015 |publisher= Cornell University Library |location= |url=https://ecommons.cornell.edu/handle/1813/40560 }} See segment at 16:30.</ref> A second version, PL/CV2, was released in 1978 and was presented at the [[Symposium on Principles of Programming Languages]] in 1979.<ref name="popl-plcv">{{cite conference | author-first=Robert L. | author-last=Constable | author2-first= Scott D. | author2-last=Johnson | year=1979 | contribution= A PL/CV Precis | title= Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages (POPL '79) | publisher=Association for Computing Machinery | pages= 7β20 | doi=10.1145/567752.567754 }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)