{"title":"Dynamic modules in higher-order languages","authors":"S. Jagannathan","doi":"10.1109/ICCL.1994.288391","DOIUrl":"https://doi.org/10.1109/ICCL.1994.288391","url":null,"abstract":"Providing programmers the ability to construct meaningful abstractions to help manage complexity is a serious language design issue. Many languages define a module system that can be used to specify distinct namespaces, and build user-defined data abstractions; however, few languages support dynamic modules, i.e., modules which are true first-class objects. We define a module semantics for a dialect of Scheme called Rascal. Modules are defined in terms of reified environments, and are first-class objects which may be dynamically created, freely assigned, used as arguments to procedures, etc. If defined naively, however, implementing modules using environments can entail the capture of unwanted bindings, leading to potentially severe violations of lexical abstraction and locality. We address these concerns by giving users great flexibility to manipulate environments, and to constrain the extent and scope of the environment reification process. We argue that the techniques and operators developed define a cohesive and semantically sound basis for building large-scale modular systems in dynamically-typed higher-order languages.<<ETX>>","PeriodicalId":137441,"journal":{"name":"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)","volume":"44 3","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120921350","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}
{"title":"Efficient incremental parsing for context-free languages","authors":"M. Ferro, B. Dion","doi":"10.1109/ICCL.1994.288376","DOIUrl":"https://doi.org/10.1109/ICCL.1994.288376","url":null,"abstract":"An incremental parsing algorithm based on dynamic programming techniques is described. The analyzer takes the automaton generated from a general class of context-free grammars as driver, and any finite string as input. Given an input string that has been modified, the algorithm cuts out the parts of the old analysis that had been generated by the parts of the input that has changed. What remains are the parts of the analysis that were generated by the stable part of the input. The new system has been baptized ICE, after Incremental Context-Free Environment. In an empirical comparison, ICE appears to be superior to the other context-free analyzers and comparable to standard deterministic parsers, when the input string is not ambiguous.<<ETX>>","PeriodicalId":137441,"journal":{"name":"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)","volume":"374 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116215459","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}
{"title":"SPiCE: a system for translating Smalltalk programs into a C environment","authors":"Kazuki Yasumatsu, N. Doi","doi":"10.1109/ICCL.1994.288388","DOIUrl":"https://doi.org/10.1109/ICCL.1994.288388","url":null,"abstract":"Smalltalk-80 is very well suited for prototyping of applications, but it is less well suited for delivering applications because applications can neither run in isolation from the Smalltalk environment nor be combined with other programs written in other languages. By translating Smalltalk into C while preserving the semantics of Smalltalk, it is possible to deliver a standalone version of Smalltalk applications, and to develop an application partly in Smalltalk and partly in C. We have implemented SPiCE (Smalltalk-Programs-into-C Environment), which is a system for translating Smalltalk into C. Our approach to the translation is, first, to create the runtime replacement classes which implement the same functionality of the Smalltalk classes that are inherently part of the Smalltalk execution model, and secondly, to provide real-time compacting garbage collection which works without language supports. This paper presents our techniques for the translation and the runtime, and some measures of the performance of the translated C code.<<ETX>>","PeriodicalId":137441,"journal":{"name":"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127686134","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}
{"title":"Abstract interpretation over algebraic data types","authors":"T. Jensen","doi":"10.1109/ICCL.1994.288374","DOIUrl":"https://doi.org/10.1109/ICCL.1994.288374","url":null,"abstract":"This paper is concerned with the static analysis of programs over recursive data structures such as lists and trees. In particular, we consider the analysis of uniform properties i.e., properties pertaining only to the content of a data structure. We first present an axiomatic description of properties of sum types and algebraic types and use the theory of powerdomains to construct lattices modelling the logic of the axiomatisations. In addition to a new analysis of sum types based on logic, this provides a systematic way of defining abstract lattices for arbitrary algebraic data types. We provide a detailed description of the lattice for analysing lists and show how our developments generalise existing frameworks proposed by Wadler (1987) and Nielson and Nielson (1992). Finally, we show how abstract interpretations of well known list operations can be defined over these lattices.<<ETX>>","PeriodicalId":137441,"journal":{"name":"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125368456","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}
{"title":"Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages)","authors":"P. Cousot, R. Cousot","doi":"10.1109/ICCL.1994.288389","DOIUrl":"https://doi.org/10.1109/ICCL.1994.288389","url":null,"abstract":"The original formulation of abstract interpretation represents program properties by sets. A property is understood as the set of semantic values satisfying it. Strongest program properties are defined by the collecting semantics which extends the standard semantics to powersets of semantic values. The approximation relation corresponding to the logical implication of program properties is subset inclusion. This was expressed using set and lattice theory in the context of transition systems. Some applications of abstract interpretation, such as strictness analysis for lazy functional languages, require infinite behaviours of higher-order functions to be taken into account. We solve the problem by returning to the sources of abstract interpretation, which consists in considering collecting semantics. By using Galois connections, properties of the standard semantics naturally transfer to the collecting and then to the abstract semantics. This set-theoretic abstract interpretation framework is formulated in a way which is independent of both the programming language and the method used to specify its semantics. It is illustrated for a higher-order monomorphically typed lazy functional language starting from its standard denotational semantics.<<ETX>>","PeriodicalId":137441,"journal":{"name":"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)","volume":"101 9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125973183","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}
M. Alpuente, M. Falaschi, María José Ramis, G. Vidal
{"title":"A compositional semantics for conditional term rewriting systems","authors":"M. Alpuente, M. Falaschi, María José Ramis, G. Vidal","doi":"10.1109/ICCL.1994.288383","DOIUrl":"https://doi.org/10.1109/ICCL.1994.288383","url":null,"abstract":"The article considers compositions of conditional term rewriting systems as a basis for a modular approach to the design and analysis of equational logic programs. In this context, an equational logic program is viewed as consisting of a set of modules, each module defining a part of the program's functions. We define a compositional semantics for conditional term rewriting systems which we show to be rich enough to capture computational properties related to the use of logical variables. We also study how such a semantics may be safely approximated, and how the results of such approximations may be composed to yield a bottom-up abstract semantics adequate for modular data-flow analysis. A compositional analysis for equational unsatisfiability illustrates the approach.<<ETX>>","PeriodicalId":137441,"journal":{"name":"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126066301","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}