Search NASA⌕ Search

SEARCH · Search NASA

Results for “programing languages”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 1,711 records · Page 95

Space Station Software Recommendations

Four panels of invited experts and NASA representatives focused on the following topics: software management, software development environment, languages, and software standards. Each panel deliberated in private, held two open sessions with audience participation, and developed recommendations for the NASA Space Station Program. The major thrusts of the recommendations were as follows: (1) The software management plan should establish policies, responsibilities, and decision points for software acquisition; (2) NASA should furnish a uniform modular software support environment and require its use for all space station software acquired (or developed); (3) The language Ada should be selected for space station software, and NASA should begin to address issues related to the effective use of Ada; and (4) The space station software standards should be selected (based upon existing standards where possible), and an organization should be identified to promulgate and enforce them. These and related recommendations are described in detail in the conference proceedings.

Voigt, S.↗

Unsteady thermotechnical model of a closed flat plate solar collector–storage tank system

The main provisions of the developed numerical unsteady model of the flat plate solar collector–storage tank (SC–ST) system are given. The model takes into account all of the main parameters of the SC (receiver parameters, radiative properties of the transparent fence for solar radiation, and thermophysical properties of the thermal insulation of the bottom) and the ST (thermophysical parameters of thermal insulation). An algorithm and a program for calculating the thermal properties of a closed SC–ST system have been developed based on this model in the Delphi language. The results of the calculated estimates of the time variation of water heating temperatures in the ST and the efficiency of the closed SC–ST system as a function of the ST volume are given for the case where the water temperature at the SC inlet is equal to the mean water temperature in the ST. The model and the program also make it possible to determine the time variation of temperatures of SC elements and water in individual sections along the length of the SC as well as the thermal losses of the SC sections. The model makes it possible to estimate the effect of the thermal properties of SC elements and the water velocity on the thermal properties of the SC–ST system. The program can be modified for the case of the open SC–ST system, i.e., where the water temperature at the SC inlet does not depend on the water temperature in the ST.

14 SOLAR ENERGY↗

Correct Compilation of Concurrent C Code

The CompCert compiler represents a landmark effort in program verification as both a piece of verified software and as a compiler for verified C programs. A key shortcoming of CompCert however is that it does not support multithreaded programs. Prior work to add threads to CompCert has either required major rewrites of parts of the proof or only works for well synchronized programs. The problem is that CompCert’s backward simulation derives from a forward simulation via the determinism of the semantics of intermediate representation languages. This makes the proofs in CompCert easier but also makes them incompatible with standard models of multithreading which are non-deterministic. Here we propose an alternate formulation of CompCert’s proof structure that parameterizes the existing single threaded semantics with nondeterministic behavior generated at the multithreading level. While this is an old trick where program equivalence is concerned, performing it in the context of CompCert is quite subtle. Our approach allows for expressive concurrent semantics and does not require major proof rewrites but still results in a global backward simulation for multithreaded programs.

97 MATHEMATICS AND COMPUTING↗

Automatic inspection of program state in an uncooperative environment

Abstract The program state is formed by the values that the program manipulates. These values are stored in the stack, in the heap, or in static memory. The ability to inspect the program state is useful as a debugging or as a verification aid. Yet, there exists no general technique to insert inspection points in type‐unsafe languages such as C or C++. The difficulty comes from the need to traverse the memory graph in a so‐called uncooperative environment. In this article, we propose an automatic technique to deal with this problem. We introduce a static code transformation approach that inserts in a program the instrumentation necessary to report its internal state. Our technique has been implemented in LLVM. It is possible to adjust the granularity of inspection points trading precision for performance. In this article, we demonstrate how to use inspection points to debug compiler optimizations; to augment benchmarks with verification code; and to visualize data structures.

Magalhães, José Wesley de Souza↗

Execution-Based Model Checking of Interrupt-Based Systems

Execution-based model checking (EMC) is a verification technique based on executing a multi-threaded/multiprocess program repeatedly in a systematic manner in order to explore the different interleavings of the program. This is in contrast to traditional model checking, where a model of a system is analyzed Several execution-based model-checking tools exist at this point, such as for example Verisoft and Java PathFinder. The most common formal specification languages used by EMC tools are un- timed, either just assertions, or linear-time temporal logic (LTL). An alternative verification technique is Runtime Execution Monitoring (REM), which is based on monitor- ing the execution of a program, checking that the execution trace conforms to a requirement specification. The Temporal Rover and DBRover are such tools. They provide a very rich specification language, being an extension of LTL with real-time constraints and time-series. We show how execution-based model checking, combined with runtime execution monitoring, can be used for the verification of a large class of safety critical systems commonly known as interrupt-based systems. The proposed approach is novel in that: (i) it supports model checking of a large class of applications not practically verifiable using conventional EMC tools, (ii) it supports verification of LTL assertions extended with real-time and time-series constraints, and (iii) it supports the verification of custom schedulers.

Drusinsky, Doron↗

Algorithms and programming tools for image processing on the MPP

Topics addressed include: data mapping and rotational algorithms for the Massively Parallel Processor (MPP); Parallel Pascal language; documentation for the Parallel Pascal Development system; and a description of the Parallel Pascal language used on the MPP.

Reeves, A. P.↗

Federal Workplace Charging Program Guide

This report serves as a program guide to support federal agencies in developing their own policy documents for workplace charging. It provides suggested language that agencies can incorporate into their own policies to define requirements for charging privately owned vehicles (POVs) on government-owned or leased property. The Fixing America's Surface Transportation Act authorizes the U.S. General Services Administration (GSA) and other federal agencies to install, operate, and maintain electric vehicle supply equipment (EVSE) for POVs in parking areas used by federal employees and authorized users, and it requires the collection of fees to recover the costs of installing, operating, and maintaining this equipment. This guide offers details for agency facility managers, transportation personnel, employees, and vendors regarding the charging of electric vehicles (EVs) for use by employees and personnel at government-owned and leased buildings. This guide describes the requirements associated with federal agencies providing EV charging in publicly accessible sites. The policy also describes when and how fees may be imposed to cover costs of electricity, as well as EVSE units and installations in various scenarios.

29 ENERGY PLANNING, POLICY, AND ECONOMY↗

The fault-tree compiler

The Fault Tree Compiler Program is a new reliability tool used to predict the top event probability for a fault tree. Five different gate types are allowed in the fault tree: AND, OR, EXCLUSIVE OR, INVERT, and M OF N gates. The high level input language is easy to understand and use when describing the system tree. In addition, the use of the hierarchical fault tree capability can simplify the tree description and decrease program execution time. The current solution technique provides an answer precise (within the limits of double precision floating point arithmetic) to the five digits in the answer. The user may vary one failure rate or failure probability over a range of values and plot the results for sensitivity analyses. The solution technique is implemented in FORTRAN; the remaining program code is implemented in Pascal. The program is written to run on a Digital Corporation VAX with the VMS operation system.

Martensen, Anna L.↗

A computer program for calculating aerodynamic characteristics of low aspect-ratio wings with partial leading-edge separation

The necessary information for using a computer program to predict distributed and total aerodynamic characteristics for low aspect ratio wings with partial leading-edge separation is presented. The flow is assumed to be steady and inviscid. The wing boundary condition is formulated by the Quasi-Vortex-Lattice method. The leading edge separated vortices are represented by discrete free vortex elements which are aligned with the local velocity vector at midpoints to satisfy the force free condition. The wake behind the trailing edge is also force free. The flow tangency boundary condition is satisfied on the wing, including the leading and trailing edges. The program is restricted to delta wings with zero thickness and no camber. It is written in FORTRAN language and runs on CDC 6600 computer.

Mehrotra, S. C.↗

Computing the Power-Density Spectrum for an Engineering Model

Computer program for calculating of power-density spectrum (PDS) from data base generated by Advanced Continuous Simulation Language (ACSL) uses algorithm that employs fast Fourier transform (FFT) to calculate PDS of variable. Accomplished by first estimating autocovariance function of variable and then taking FFT of smoothed autocovariance function to obtain PDS. Fast-Fourier-transform technique conserves computer resources.

Dunn, H. J.↗

On Why It Is Impossible to Prove that the BDX90 Dispatcher Implements a Time-sharing System

The Software Implemented Fault Tolerance SIFT system, is written in PASCAL except for about a page of machine code. The SIFT system implements a small time sharing system in which PASCAL programs for separate application tasks are executed according to a schedule with real time constraints. The PASCAL language has no provision for handling the notion of an interrupt such as the B930 clock interrupt. The PASCAL language also lacks the notion of running a PASCAL subroutine for a given amount of time, suspending it, saving away the suspension, and later activating the suspension. Machine code was used to overcome these inadequacies of PASCAL. Code which handles clock interrupts and suspends processes is called a dispatcher. The time sharing/virtual machine idea is completely destroyed by the reconfiguration task. After termination of the reconfiguration task, the tasks run by the dispatcher have no relation to those run before reconfiguration. It is impossible to view the dispatcher as a time-sharing system implementing virtual BDX930s running concurrently when one process can wipe out the others.

Boyer, R. S.↗

Schedule-Report-Generator Computer Program

Schedule Report Generator provides simple method for generating periodic schedule reports. Enables engineering manager to monitor tasks assigned to staff members on weekly basis. Sorts three types of reports by use of one or more data fields as sorting keys. Schedule Organizer (SO) (COSMIC program MSC-21525), Schedule Tracker (ST) (COSMIC program MSC-21526), and Schedule Report Generator (SRG) computer programs manipulating data-base files in ways advantageous in scheduling. Written in PL/1 and DEC Command Language (DCL).

Collazo, Fernando F.↗

Schedule-Organizer Computer Program

Schedule Organizer provides simple method for generating distribution lists. Contains readers' names for each task schedule defined by input files. Schedule Organizer (SO), Schedule Tracker (ST) (COSMIC program MSC-21526), and Schedule Report Generator (SRG) (COSMIC program MSC-21527) computer programs manipulating data-base files in ways advantageous in scheduling. Written in PL/1 and DEC Command Language (DCL).

Collazo, Fernando F.↗

Schedule-Tracker Computer Program

Schedule Tracker provides effective method for tracking tasks "past due" and/or "near term". Generates reports for each responsible staff member having one or more assigned tasks falling within two listed categories. Schedule Organizer (SO) (COSMIC program MSC-21525), Schedule Tracker (ST), and Schedule Report Generator (SRG) (COSMIC program MSC-21527) computer programs manipulating data-base files in ways advantageous in scheduling. Written in PL/1 and DEC Command Language (DCL).

Collazo, Fernando F.↗

Mission-Clock-Display Software Tool

Displays including images of alarm clocks illustrate temporal statuses of multiple events. MCLK is customizable clock-display computer program with Motif user interface. Used to keep track of such multiple "milestone" events as those occurring during countdowns in spacecraft launches, and alerts user when event time reached. In addition, program displays time from several time zones. Real time measured in Coordinated Universal Time. Written in C language.

Aguilera, Christine↗

A Generalized-Compliant-Motion Primitive

Computer program bridges gap between planning and execution of compliant robotic motions developed and installed in control system of telerobot. Called "generalized-compliant-motion primitive," one of several task-execution-primitive computer programs, which receives commands from higher-level task-planning programs and executes commands by generating required trajectories and applying appropriate control laws. Program comprises four parts corresponding to nominal motion, compliant motion, ending motion, and monitoring. Written in C language.

Backes, Paul G.↗

Situated Control Rules

The plan net formalism presented in this paper is a language for expressing possible actions independent of any particular plan. Plan nets encode non-deterministic control programs which specify the local conditions under which actions may be taken. A two stage analysis synthesizes situated control rules which act to reduce this non-deterministic choice such that all remaining alternatives for action necessarily satisfy any given goals. Action execution can precede situated control rule synthesis: situated control rules simply help ensure that actions are first steps on the way to eventual goal satisfaction. Situated control rules inform action; they do not define it.

Drummond, Mark↗

Initial Kernel Timing Using a Simple PIM Performance Model

This presentation will describe some initial results of paper-and-pencil studies of 4 or 5 application kernels applied to a processor-in-memory (PIM) system roughly similar to the Cascade Lightweight Processor (LWP). The application kernels are: * Linked list traversal * Sun of leaf nodes on a tree * Bitonic sort * Vector sum * Gaussian elimination The intent of this work is to guide and validate work on the Cascade project in the areas of compilers, simulators, and languages. We will first discuss the generic PIM structure. Then, we will explain the concepts needed to program a parallel PIM system (locality, threads, parcels). Next, we will present a simple PIM performance model that will be used in the remainder of the presentation. For each kernel, we will then present a set of codes, including codes for a single PIM node, and codes for multiple PIM nodes that move data to threads and move threads to data. These codes are written at a fairly low level, between assembly and C, but much closer to C than to assembly. For each code, we will present some hand-drafted timing forecasts, based on the simple PIM performance model. Finally, we will conclude by discussing what we have learned from this work, including what programming styles seem to work best, from the point-of-view of both expressiveness and performance.

BRIEFING CHARTS↗