11,036 research outputs found
Continuation-Passing C: compiling threads to events through continuations
In this paper, we introduce Continuation Passing C (CPC), a programming
language for concurrent systems in which native and cooperative threads are
unified and presented to the programmer as a single abstraction. The CPC
compiler uses a compilation technique, based on the CPS transform, that yields
efficient code and an extremely lightweight representation for contexts. We
provide a proof of the correctness of our compilation scheme. We show in
particular that lambda-lifting, a common compilation technique for functional
languages, is also correct in an imperative language like C, under some
conditions enforced by the CPC compiler. The current CPC compiler is mature
enough to write substantial programs such as Hekate, a highly concurrent
BitTorrent seeder. Our benchmark results show that CPC is as efficient, while
using significantly less space, as the most efficient thread libraries
available.Comment: Higher-Order and Symbolic Computation (2012). arXiv admin note:
substantial text overlap with arXiv:1202.324
Program representation size in an intermediate language with intersection and union types
The CIL compiler for core Standard ML compiles whole programs using a novel typed intermediate language (TIL) with intersection and union types and flow labels on both terms and types. The CIL term representation duplicates portions of the program where intersection types are introduced and union types are eliminated. This duplication makes it easier to represent type information and to introduce customized data representations. However, duplication incurs compile-time space costs that are potentially much greater than are incurred in TILs employing type-level abstraction or quantification. In this paper, we present empirical data on the compile-time space costs of using CIL as an intermediate language. The data shows that these costs can be made tractable by using sufficiently fine-grained flow analyses together with standard hash-consing techniques. The data also suggests that non-duplicating formulations of intersection (and union) types would not achieve significantly better space complexity.National Science Foundation (CCR-9417382, CISE/CCR ESS 9806747); Sun grant (EDUD-7826-990410-US); Faculty Fellowship of the Carroll School of Management, Boston College; U.K. Engineering and Physical Sciences Research Council (GR/L 36963, GR/L 15685
Exploration technology prioritization
A series of outlines and graphs describing NASA's Space Exploration Initiative (SEI) technology prioritization are presented. Prioritization criteria and preliminary critical technology priorities for a first lunar outpost and a Mars and permanently-manned lunar mission are addressed
Translating HOL to Dedukti
Dedukti is a logical framework based on the lambda-Pi-calculus modulo
rewriting, which extends the lambda-Pi-calculus with rewrite rules. In this
paper, we show how to translate the proofs of a family of HOL proof assistants
to Dedukti. The translation preserves binding, typing, and reduction. We
implemented this translation in an automated tool and used it to successfully
translate the OpenTheory standard library.Comment: In Proceedings PxTP 2015, arXiv:1507.0837
Advanced propulsion concepts
A variety of Advanced Propulsion Concepts (APC) is discussed. The focus is on those concepts that are sufficiently near-term that they could be developed for the Space Exploration Initiative. High-power (multi-megawatt) electric propulsion, solar sails, tethers, and extraterrestrial resource utilization concepts are discussed. A summary of these concepts and some general conclusions on their technology development needs are presented
Recommended from our members
Manufacturing Metallic Parts with Designed Mesostructure via Three-Dimensional Printing of Metal Oxide Powder
Cellular materials, metallic bodies with gaseous voids, are a promising class of materials that offer
high strength accompanied by a relatively low mass. In this paper, the authors investigate the use of ThreeDimensional Printing (3DP) to manufacture metallic cellular materials by selectively printing binder into a
bed of metal oxide ceramic powder. The resulting green part undergoes a thermal chemical post-process in
order to convert it to metal. As a result of their investigation, the authors are able to create cellular
materials made of maraging steel that feature wall sizes as small as 400 µm and angled trusses and channels
that are 1 mm in diameter.Mechanical Engineerin
- …