The ALGOL-68 compiler of the University of Paris-XI (Orsay) has been implemented for Univac's 1110-series, under EXEC-VIII. It can compile the “full language” (including formats, unions, flexible arrays, recursive modes, parallel computation, etc.). It consists in 8 passes and yields usual relocatable code. Minor restrictions concern equivalence recognition of crossed recursive modes, multiple precision and short modes, and scope checking.
{"title":"The ALGOL 68 compiler of Paris-XI University (Orsay)","authors":"D. Taupin","doi":"10.1145/800238.807150","DOIUrl":"https://doi.org/10.1145/800238.807150","url":null,"abstract":"The ALGOL-68 compiler of the University of Paris-XI (Orsay) has been implemented for Univac's 1110-series, under EXEC-VIII. It can compile the “full language” (including formats, unions, flexible arrays, recursive modes, parallel computation, etc.). It consists in 8 passes and yields usual relocatable code. Minor restrictions concern equivalence recognition of crossed recursive modes, multiple precision and short modes, and scope checking.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"69 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122838448","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The problems concerning SIZETY definitions in an Unabridged Machine-Independent Standard Prelude for ALGOL 68 are examined and tentative solutions are given.
研究了ALGOL 68的未删节的机器无关标准序曲中有关大小定义的问题,并给出了初步的解。
{"title":"Towards the design of a super-language of ALGOL 68 for the Standard Prelude (Excerpt)","authors":"D. Grune","doi":"10.1145/872738.807146","DOIUrl":"https://doi.org/10.1145/872738.807146","url":null,"abstract":"The problems concerning SIZETY definitions in an Unabridged Machine-Independent Standard Prelude for ALGOL 68 are examined and tentative solutions are given.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126708730","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A method is described of introducing to absolute beginners basic concepts of structured programming, including constructing programs by “step-wise refinement”. This is interleaved with a “top-down” description of a simple mini-subset of ALGOL 68, which is closely followed by the concepts of data structuring and procedurisation, as expressed in this language. Emphasis throughout is on the programming philosophy behind the approach controlling the teaching of ALGOL 68, rather than vice versa.
{"title":"ALGOL 68 and structured programming for learner-programmers","authors":"B. Ratcliff","doi":"10.1145/800238.807156","DOIUrl":"https://doi.org/10.1145/800238.807156","url":null,"abstract":"A method is described of introducing to absolute beginners basic concepts of structured programming, including constructing programs by “step-wise refinement”. This is interleaved with a “top-down” description of a simple mini-subset of ALGOL 68, which is closely followed by the concepts of data structuring and procedurisation, as expressed in this language. Emphasis throughout is on the programming philosophy behind the approach controlling the teaching of ALGOL 68, rather than vice versa.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115805227","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The use of 'functors' is proposed to generalise the ideas of abstract data and representation, and it is shown that these ideas have further uses in setting up libraries of algorithms. The properties of functors are discussed.
{"title":"Abstract data and functors","authors":"J. Foster, P. Foster","doi":"10.1145/800238.807157","DOIUrl":"https://doi.org/10.1145/800238.807157","url":null,"abstract":"The use of 'functors' is proposed to generalise the ideas of abstract data and representation, and it is shown that these ideas have further uses in setting up libraries of algorithms. The properties of functors are discussed.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131966562","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The relative merits of LL and LR parsing methods are compared, particular reference being made to ALGOL 68. The fact that LR methods can be applied to a wider class of languages does not seem to give them a significant advantage in practice.
{"title":"LL versus LR parsing with illustrations from ALGOL 68","authors":"R. Hunter, A. McGettrick, R. Patel","doi":"10.1145/800238.807142","DOIUrl":"https://doi.org/10.1145/800238.807142","url":null,"abstract":"The relative merits of LL and LR parsing methods are compared, particular reference being made to ALGOL 68. The fact that LR methods can be applied to a wider class of languages does not seem to give them a significant advantage in practice.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130524172","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
By making use of its advanced and highly expressive facilities, Algol 68 can be used to implement interpretive language processors with an unusual degree of conceptual clarity and machine independence. The internal representations of source programs in such a processor consist of high-level data structures which are interpreted by means of a set of readable, mutually recursive Algol 68 procedures. The technique is illustrated by applying it to the implementation of a miniature sample language. Efficiency considerations and aspects of the relevant programming methodology are discussed.
{"title":"Algol 68 as an implementation language for portable interpreters","authors":"F. G. Pagan","doi":"10.1145/800238.807143","DOIUrl":"https://doi.org/10.1145/800238.807143","url":null,"abstract":"By making use of its advanced and highly expressive facilities, Algol 68 can be used to implement interpretive language processors with an unusual degree of conceptual clarity and machine independence. The internal representations of source programs in such a processor consist of high-level data structures which are interpreted by means of a set of readable, mutually recursive Algol 68 procedures. The technique is illustrated by applying it to the implementation of a miniature sample language. Efficiency considerations and aspects of the relevant programming methodology are discussed.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125369292","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Algol 68 is a very suitable language for tackling problems which lie somewhere between numerical calculation and algebraic manipulation. An algorithm is presented which evaluates a function of n variables and its n partial derivatives using at most C.m operations, where m is the number of operations required to evaluate the function and C is a constant independent of n. By altering mode declarations, an ordinary piece of program text written to evaluate the function can be made instead to generate the expression tree required for calculation of derivatives.
{"title":"Derivatives without tears in Algol 68","authors":"P. Craven","doi":"10.1145/800238.807138","DOIUrl":"https://doi.org/10.1145/800238.807138","url":null,"abstract":"Algol 68 is a very suitable language for tackling problems which lie somewhere between numerical calculation and algebraic manipulation. An algorithm is presented which evaluates a function of n variables and its n partial derivatives using at most C.m operations, where m is the number of operations required to evaluate the function and C is a constant independent of n. By altering mode declarations, an ordinary piece of program text written to evaluate the function can be made instead to generate the expression tree required for calculation of derivatives.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124977523","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This paper is an introduction to the portable ALGOL 68 implementation currently developed at the Technical University of Berlin. An overview over the compiler and the other system components is given and the facilities for separate compilation and precompilation are described. Finally, the current state of the implementation is sketched.
{"title":"The Berlin ALGOL 68 implementation","authors":"Wilfried Koch, Christoph Oeters","doi":"10.1145/800238.807149","DOIUrl":"https://doi.org/10.1145/800238.807149","url":null,"abstract":"This paper is an introduction to the portable ALGOL 68 implementation currently developed at the Technical University of Berlin. An overview over the compiler and the other system components is given and the facilities for separate compilation and precompilation are described. Finally, the current state of the implementation is sketched.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123859687","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The implementation in Algol 68R of a cross assembler for the PDP11 minicomputer to run on the ICL1900 is described. The assembler duplicates the features of the PAL11 assembler. RRE's Syntax Improving Device was used for a two pass assembly system. The cross assembler uses a tree structured symbol table, a lexical analyser to read in basic assembler items and code generation routines that use Algol 68 modes and operators to map the 8 bit bytes and 16 bit words of the mini onto the ICL1900 words. The cross assembler reproduces the error diagnostics of PAL11 with more detailed diagnostics available if required by the user. The assembler outputs binary program on paper tape for loading directly onto the mini.
{"title":"Implementation of a PDP11/ICL1900 cross assembler in Algol 68R","authors":"M. W. Bennett","doi":"10.1145/800238.807155","DOIUrl":"https://doi.org/10.1145/800238.807155","url":null,"abstract":"The implementation in Algol 68R of a cross assembler for the PDP11 minicomputer to run on the ICL1900 is described. The assembler duplicates the features of the PAL11 assembler. RRE's Syntax Improving Device was used for a two pass assembly system. The cross assembler uses a tree structured symbol table, a lexical analyser to read in basic assembler items and code generation routines that use Algol 68 modes and operators to map the 8 bit bytes and 16 bit words of the mini onto the ICL1900 words. The cross assembler reproduces the error diagnostics of PAL11 with more detailed diagnostics available if required by the user. The assembler outputs binary program on paper tape for loading directly onto the mini.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123762255","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Information concerning the run-time behaviour of programs (“program profiling”) can be of the greatest assistance in improving program efficiency. Two software devices have been developed for use on ICL 1900 Series machines to provide such information. DIDYMUS is probabilistic in approach and uses multitasking facilities to sample the instruction addresses used by a program at run time. It will work regardless of the source language of the program and matches the detected addresses against a loader map to produce a histogram. SCAMP is restricted to profiling Algol 68-R programs, but provides deterministic information concerning those language constructs that are monitored. Procedure calls to appropriate counting routines are inserted into the source text in a pre-pass prior to compilation. The profile information is printed out at the end of the program run. It has been found that these two approaches complement each other very effectively.
{"title":"'Run-time profiling of Algol 68-R programs using DIDYMUS and SCAMP'","authors":"D. Brailsford, E. Foxley, K. Mander, D. Morgan","doi":"10.1145/800238.807139","DOIUrl":"https://doi.org/10.1145/800238.807139","url":null,"abstract":"Information concerning the run-time behaviour of programs (“program profiling”) can be of the greatest assistance in improving program efficiency. Two software devices have been developed for use on ICL 1900 Series machines to provide such information.\u0000 DIDYMUS is probabilistic in approach and uses multitasking facilities to sample the instruction addresses used by a program at run time. It will work regardless of the source language of the program and matches the detected addresses against a loader map to produce a histogram.\u0000 SCAMP is restricted to profiling Algol 68-R programs, but provides deterministic information concerning those language constructs that are monitored. Procedure calls to appropriate counting routines are inserted into the source text in a pre-pass prior to compilation. The profile information is printed out at the end of the program run.\u0000 It has been found that these two approaches complement each other very effectively.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122362829","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}