52,748 research outputs found
Improving Prolog Programs: Refactoring for Prolog
Refactoring is an established technique from the OO-community to restructure
code: it aims at improving software readability, maintainability and
extensibility. Although refactoring is not tied to the OO-paradigm in
particular, its ideas have not been applied to Logic Programming until now.
This paper applies the ideas of refactoring to Prolog programs. A catalogue
is presented listing refactorings classified according to scope. Some of the
refactorings have been adapted from the OO-paradigm, while others have been
specifically designed for Prolog. Also the discrepancy between intended and
operational semantics in Prolog is addressed by some of the refactorings.
In addition, ViPReSS, a semi-automatic refactoring browser, is discussed and
the experience with applying \vipress to a large Prolog legacy system is
reported. Our main conclusion is that refactoring is not only a viable
technique in Prolog but also a rather desirable one.Comment: To appear in ICLP 200
Tortoise: Interactive System Configuration Repair
System configuration languages provide powerful abstractions that simplify
managing large-scale, networked systems. Thousands of organizations now use
configuration languages, such as Puppet. However, specifications written in
configuration languages can have bugs and the shell remains the simplest way to
debug a misconfigured system. Unfortunately, it is unsafe to use the shell to
fix problems when a system configuration language is in use: a fix applied from
the shell may cause the system to drift from the state specified by the
configuration language. Thus, despite their advantages, configuration languages
force system administrators to give up the simplicity and familiarity of the
shell.
This paper presents a synthesis-based technique that allows administrators to
use configuration languages and the shell in harmony. Administrators can fix
errors using the shell and the technique automatically repairs the higher-level
specification written in the configuration language. The approach (1) produces
repairs that are consistent with the fix made using the shell; (2) produces
repairs that are maintainable by minimizing edits made to the original
specification; (3) ranks and presents multiple repairs when relevant; and (4)
supports all shells the administrator may wish to use. We implement our
technique for Puppet, a widely used system configuration language, and evaluate
it on a suite of benchmarks under 42 repair scenarios. The top-ranked repair is
selected by humans 76% of the time and the human-equivalent repair is ranked
1.31 on average.Comment: Published version in proceedings of IEEE/ACM International Conference
on Automated Software Engineering (ASE) 201
Automated land-use mapping from spacecraft data
The author has identified the following significant results. In response to the need for a faster, more economical means of producing land use maps, this study evaluated the suitability of using ERTS-1 computer compatible tape (CCT) data as a basis for automatic mapping. Significant findings are: (1) automatic classification accuracy greater than 90% is achieved on categories of deep and shallow water, tended grass, rangeland, extractive (bare earth), urban, forest land, and nonforested wet lands; (2) computer-generated printouts by target class provide a quantitative measure of land use; and (3) the generation of map overlays showing land use from ERTS-1 CCTs offers a significant breakthrough in the rate at which land use maps are generated. Rather than uncorrected classified imagery or computer line printer outputs, the processing results in geometrically-corrected computer-driven pen drawing of land categories, drawn on a transparent material at a scale specified by the operator. These map overlays are economically produced and provide an efficient means of rapidly updating maps showing land use
Improving Prolog programs: Refactoring for Prolog
Refactoring is an established technique from the object-oriented (OO)
programming community to restructure code: it aims at improving software
readability, maintainability and extensibility. Although refactoring is not
tied to the OO-paradigm in particular, its ideas have not been applied to Logic
Programming until now.
This paper applies the ideas of refactoring to Prolog programs. A catalogue
is presented listing refactorings classified according to scope. Some of the
refactorings have been adapted from the OO-paradigm, while others have been
specifically designed for Prolog. The discrepancy between intended and
operational semantics in Prolog is also addressed by some of the refactorings.
In addition, ViPReSS, a semi-automatic refactoring browser, is discussed and
the experience with applying ViPReSS to a large Prolog legacy system is
reported. The main conclusion is that refactoring is both a viable technique in
Prolog and a rather desirable one.Comment: To appear in Theory and Practice of Logic Programming (TPLP
ACME vs PDDL: support for dynamic reconfiguration of software architectures
On the one hand, ACME is a language designed in the late 90s as an
interchange format for software architectures. The need for recon guration at
runtime has led to extend the language with speci c support in Plastik. On the
other hand, PDDL is a predicative language for the description of planning
problems. It has been designed in the AI community for the International
Planning Competition of the ICAPS conferences. Several related works have
already proposed to encode software architectures into PDDL. Existing planning
algorithms can then be used in order to generate automatically a plan that
updates an architecture to another one, i.e., the program of a recon guration.
In this paper, we improve the encoding in PDDL. Noticeably we propose how to
encode ADL types and constraints in the PDDL representation. That way, we can
statically check our design and express PDDL constraints in order to ensure
that the generated plan never goes through any bad or inconsistent
architecture, not even temporarily.Comment: 6\`eme \'edition de la Conf\'erence Francophone sur les Architectures
Logicielles (CAL 2012), Montpellier : France (2012
Expansion of CMOS array design techniques
The important features of the multiport (double entry) automatic placement and routing programs for standard cells are described. Measured performance and predicted performance were compared for seven CMOS/SOS array types and hybrids designed with the high speed CMOS/SOS cell family. The CMOS/SOS standard cell data sheets are listed and described
Some data processing requirements for precision Nap-Of-the-Earth (NOE) guidance and control of rotorcraft
Nap-Of-the-Earth (NOE) flight in a conventional helicopter is extremely taxing for two pilots under visual conditions. Developing a single pilot all-weather NOE capability will require a fully automatic NOE navigation and flight control capability for which innovative guidance and control concepts were examined. Constrained time-optimality provides a validated criterion for automatically controlled NOE maneuvers if the pilot is to have confidence in the automated maneuvering technique. A second focus was to organize the storage and real-time updating of NOE terrain profiles and obstacles in course-oriented coordinates indexed to the mission flight plan. A method is presented for using pre-flight geodetic parameter identification to establish guidance commands for planned flight profiles and alternates. A method is then suggested for interpolating this guidance command information with the aid of forward and side looking sensors within the resolution of the stored data base, enriching the data content with real-time display, guidance, and control purposes. A third focus defined a class of automatic anticipative guidance algorithms and necessary data preview requirements to follow the vertical, lateral, and longitudinal guidance commands dictated by the updated flight profiles and to address the effects of processing delays in digital guidance and control system candidates. The results of this three-fold research effort offer promising alternatives designed to gain pilot acceptance for automatic guidance and control of rotorcraft in NOE operations
- …