3,573 research outputs found
Scrap your boilerplate with object algebras
htmlabstractTraversing complex Abstract Syntax Trees (ASTs) typically requires large amounts of tedious boilerplate code. For many operations most of the code simply walks the structure, and only a small portion of the code implements the functional- ity that motivated the traversal in the first place. This paper presents a type-safe Java framework called Shy that removes much of this boilerplate code. In Shy Object Algebras are used to describe complex and extensible AST structures. Using Java annotations Shy generates generic boilerplate code for various types of traversals. For a concrete traversal, users of Shy can then inherit from the generated code and over- ride only the interesting cases. Consequently, the amount of code that users need to write is significantly smaller. Moreover, traversals using the Shy framework are also much more structure shy, becoming more adaptive to future changes or extensions to the AST structure. To prove the effectiveness of the approach, we applied Shy in the implementation of a domain-specific questionnaire language. Our results show that for a large number of traversals there was a significant reduction in the amount of user-defined code
Speculative Staging for Interpreter Optimization
Interpreters have a bad reputation for having lower performance than
just-in-time compilers. We present a new way of building high performance
interpreters that is particularly effective for executing dynamically typed
programming languages. The key idea is to combine speculative staging of
optimized interpreter instructions with a novel technique of incrementally and
iteratively concerting them at run-time.
This paper introduces the concepts behind deriving optimized instructions
from existing interpreter instructions---incrementally peeling off layers of
complexity. When compiling the interpreter, these optimized derivatives will be
compiled along with the original interpreter instructions. Therefore, our
technique is portable by construction since it leverages the existing
compiler's backend. At run-time we use instruction substitution from the
interpreter's original and expensive instructions to optimized instruction
derivatives to speed up execution.
Our technique unites high performance with the simplicity and portability of
interpreters---we report that our optimization makes the CPython interpreter up
to more than four times faster, where our interpreter closes the gap between
and sometimes even outperforms PyPy's just-in-time compiler.Comment: 16 pages, 4 figures, 3 tables. Uses CPython 3.2.3 and PyPy 1.
Systems aspects of COBE science data compression
A general approach to compression of diverse data from large scientific projects has been developed and this paper addresses the appropriate system and scientific constraints together with the algorithm development and test strategy. This framework has been implemented for the COsmic Background Explorer spacecraft (COBE) by retrofitting the existing VAS-based data management system with high-performance compression software permitting random access to the data. Algorithms which incorporate scientific knowledge and consume relatively few system resources are preferred over ad hoc methods. COBE exceeded its planned storage by a large and growing factor and the retrieval of data significantly affects the processing, delaying the availability of data for scientific usage and software test. Embedded compression software is planned to make the project tractable by reducing the data storage volume to an acceptable level during normal processing
Process Monitoring of Continuous Flow Organic Syntheses by means of Inline Fiber Optical Raman Spectroscopy
The objective of the current study was to investigate the feasibility of the inline optical fiber Raman spectroscopy as a tool for the process monitoring of the continuous flow organic syntheses. The synthesis of 2-bromo-3,4,5- trimethoxytoluene (product) was studied as a model reaction under a set of different conditions. The reaction was carried out under the batch as well as in the multi jet oscillating disc (MJOD) milli reactor. The reaction was varied by doubling the concentration of the substrate; 3,4,5- trimethoxytoluene (0.15M, 0.3M and 0.6M) whereas the concentration of the solvent (acetic anhydride) was kept constant. The Raman instrument was adjusted to record five spectra per minute. The recorded spectral data was then preprocessed employing the second order differentiation to minimize the band overlapping in the spectra. Multivariate data analysis namely, Principal Component Analysis (PCA), was used to evaluate the spectra due to the presence of overlapping bands for the purpose of process monitoring. The measurement system was tested against the possible process disturbances, the oscillator and the feeding pumps. PCA showed that these disturbances had no impact on the measurement system. The Raman instrument successfully monitored the different organic reactions and discriminated them on the basis of the type of variation occurred. The Raman frequencies; 675, 1050 and 550 cm-1 were assigned to the solvent, substrate and the product. The various reactions undergoing any disagreement were differentiated from the normal reactions mainly due to the temperature effect, malfunctioning of the pump, lower conversion of the substrate, lower yield of the product, formation of the intermediates etc. The offline results obtained from the NMR spectroscopy verified the outcomes of Raman measurements. Thus, it was concluded that the optical fiber Raman spectroscopy proved to be a reliable, rapid and sensitive inline analytical method for the monitoring of the organic processes. Raman spectroscopy along with an appropriate chemometric tool could be employed as a Process Analytical Technology (PAT) in the pharmaceutical and fine chemical industry.JMAMN-QALQAL39
- âŠ