Mishchenko UDC 681.3.068The development of the theory and practice of compiler design has led to the emergence of various strategies, methods, and tools of program optimization [1]. Traditionally, optimization is performed internally by the compiler based on analysis of data, control, and context conditions. The L2B-L2C optimizing multialternative compiler is proposed in [2] for compiling the procedural subset of the interpreted tmtyped language APLAN of the algebraic programming system APS [3] (the language L2B) into an extension of C for manipulation of algebraic objects (the language L2C). In addition to traditional optimization, APS provides external control of compiling and optimization based on hierarchical algebraic specifieatious of name types and optimal translations of algebraic operations. The specifications are defined by the user in the source program. The process of compiling is treated as one of the phases of the programming process [4] in an algebraic programming environment intended to optimize APLAN programs. The L2B-L2C compiler analyzes the information environment of the compiled objects extended by these specifications and represented in dictionaries and type arrays, and also selects on the basis of the analysis the best translation for each expression and operator. SUPPORT ENVIRONMENTThe choice of the support environment for compiler implementation has been decisively influenced by the following features: expandability of the source language --heterogeneous processing of the source code, specifically translation of the procedural subset and processing of the information environment of the procedures; nonunique translation of operators and expressions; skipping of tmcompiled language constructs.The implementation of these features requires the following tools of compiler construction systems:--dynamically generated grammar;--construction and analysis of the compiling environment;--double scanning of context-dependent constructs representing algebraic expressions (to determine the appropriate translation mode based on preliminary analysis of its information environment); --single scanning of all other coustructs; --definition of multialternative translations of L2B operators and expressions, and choice of the translation;--skipping tmcompiled phrases. These possibilities are provided by the TEREM expandable programming system (EPS) [5], which is endowed with properties of dynamic modification of the grammar, syntax-controlled multialternative translation, controlled number of scans within each phase, definition of alternative translations and selection of the appropriate translation. The TEREM EPS is a prototype of the sought compiler generated from ready-made software components that can be adapted to a particular language by means of generation parameters, compiler specification, and software extension of the prototype basis.
Software development today emphasizes flexible open distributed systems that evolve in response to application requirements and hardware capabilities. One of the main current technological ideas in programming is integration (assembly, composition) of programs from software components and coordination of computations in the process of execution of the integrated software system. The intellectual focus of programming activity has shifted to comprehension, selection, and correct and efficient use of prefabricated software components.The idea of reusable software products was advanced about 30 years ago [1]. Considerable progress with practical implementation of this idea was accomplished in the 1980s in connection with the rapid spread of object-oriented systems as an efficient methodology and technology of software development. However, these accomplishments are mainly restricted to homogeneous systems and are of essentially limited scope. The creation of large libraries of reusable components involves major difficulties with specification, retrieval, and specialization [2].Natural extension of the reuse paradigm to application generators, transformation systems, new architectures [3], and new paradigms has led to multiparadigm languages [4,5], megaprogramming [6], and interest in social and legal issues of software reuse [7]. Large-scale support of reuse requires new tools and technologies that promote further development of computer hardware and meet the criteria of efficient integration of the accumulated intellectual software potential in the world computer space. New forms of information systems are needed for storage and management of reusable software products in a software environment. In this article, we propose a dictionary approach to information processing for software components, highlighting the information aspect of software development from components. SOFTWARE COMPONENT AS A BASIC UNIT OF MODERN PROGRAM DEVELOPMENTThe reuse paradigm envisages the creation of a composite software product from several building blocks, which many authors intuitively and independently have called components [1,2,8,9]. The concept of software component is not rigorous, and it is not restricted to a specific structured software unit; this concept may be used in modular, procedural, object-oriented, or any other programming paradigm. Components may be functions, procedures, objects, classes, modules, and so on. A software component is an abstraction denoting a constituent part of a more complex software product.To identify a software component and to ensure the necessary conditions for its existence and operation in a complex software environment, we need an information model that adequately represents the basic notions of a component, as well as support tools and a technology for manipulating this model in the framework of programming tasks. ONTOLOGY AS A CONCEPTUAL FOUNDATION FOR THE STUDY OF soFrWARE COMPONENTSOntology endows multicomponent software systems with intelligence. Ontology makes it possible to represent th...
51:681.3.068 INTRODUCTION The algebraic programming system APS [1, 2] has been developed at the Institute of Cybernetics of the National Academy of Sciences of Ukraine. The system integrates four basic computation paradigms: algebraic, logical, functional, and procedural. The four paradigms are used at four different levels of system organization [3]. The main programming technique is based on rewriting rules and allows design and application of various rewrite strategies. At present, the system is successfully applied in computer algebra [4, 5], and its development is continuing toward applied software design based on algebraic and logical models of application domains [6, 7].Algebraic programs are written in the algebraic programming language APLAN. Each algebraic program contains 1) a signature of operations W with a syntax for constructing algebraic expressions (terms); the signature operations are introduced by the description of marks, defining the form and use of marks (prefix or infix), their priority, and arity;2) names and the name values; names are introduced by the description of names, and their values are formed by an initial assignment operator; values are equal to the term represented by the algebraic expression in the right-hand side of the operator;3) atoms, which are words used in the program that are not described as marks or names. Names, atoms, and also numbers and strings constitute the set of primary objects Z. The algebra of terms generated by the set Z and by the operations of the signature W defines the basic data type in APS.An algebraic program is a generator of a dynamic algebraic module: it defines the module type and the initial name values. The algebraic module includes an internal representation of the data structures described in the program. Algebraic objects are created in the algebraic module from the expressions in the program using the operations of the signature W and the primary objects Z defined in the program. Procedures provide the main tool for transformation of algebraic objects.Procedures are ir~oduced in algebraic programs by an initial assignment sentence. When called, a procedure is executed by a procedure interpreter, which invokes interpreters of operations and system procedures. The interpreters have been developed in the language L2C, an extended version of C that includes a library of functions and data types for manipulation of internal representations of system data structures [10]. The interpreters are developed for classes of problems and are linked with the application domains in which they are used.The tunable interpretation of algebraic transformers permits using polymorphic operations, which create the prerequisites for broad and diverse application of APS. However, interpretation lowers the efficiency of the system. A number of experiments have confirmed that APLAN programs execute more efficiently when procedures are replaced with the corresponding C functions. Therefore, higher efficiency in APS can be achieved through optimization of APLAN progr...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.