bluuebunny/crossref_metadata_2025 huggingface dataset:
Transcriptional regulation of fatty acid biosynthesis in Streptococcus pneumoniae
Authors: Lu Ying‐Jie , Rock Charles O.
Published: November 2005

The transcriptional regulation of membrane fatty acid composition in the human pathogen Streptococcus pneumoniae is distinct from the systems utilized in the model organisms Escherichia coli and Bacillus subtilis. The genes encoding the components of type II fatty acid biosynthesis cluster at a single location within the S. pneumoniae genome, and the second gene in this cluster (SPR0376) encodes a transcription factor (FabT) that belongs to the MarR superfamily. Derivatives of S. pneumoniae strain D39 were constructed that lacked functional FabT. This strain had significantly elevated levels of saturated fatty acids and longer chain lengths than the control strain, was unable to grow at pH 5.5 and had increased sensitivity to detergent. Eliminating FabT function increased the expression levels of all of fab genes with the notable exception of fabM. FabT was purified and bound to the DNA palindrome located within the promoter regions of the fabT and fabK genes within the cluster. The analysis of cells with increased expression of individual genes leads to a model where the physical properties of the S. pneumoniae membrane is controlled primarily by the activity of FabK, the enoyl reductase, which diverts intermediates to saturated fatty acid formation, in contrast to E. coli where FabB, an elongation condensing enzyme, pulls the pathway in the direction of unsaturated acid synthesis.
The Use of Qualitative Methods in Large-Scale Evaluation: Improving the Quality of the Evaluation and the Meaningfulness of the Findings
Authors: Slayton Julie , Llosa Lorena
Published: November 2005

In light of the current debate over the meaning of scientifically based research, we argue that qualitative methods should be an essential part of large-scale program evaluations if program effectiveness is to be determined and understood. This article chronicles the challenges involved in incorporating qualitative methods into the large-scale evaluation of the Waterford Early Reading Program and the decisions made in light of those challenges. We demonstrate that, in spite of the challenges, there are significant benefits associated with using qualitative methods on a large scale. More specifically, by using qualitative methods, we were able to improve the evaluation and generate findings that were meaningful and useful to stakeholders. It is our hope that our experiences can be used by others to inform their work as they seek to incorporate qualitative methods into their large-scale evaluations.
Getting My Education: Teen Mothers’ Experiences in School before and after Motherhood
Authors: Zachry Elizabeth M.
Published: November 2005

In this study, I have examined how teenagers who become pregnant experience school and how their beliefs about school are affected by their pregnancy and motherhood. Using a grounded theory approach, the perspectives of 9 young mothers in a teen parents’ program were analyzed to determine how these women reflected on their educational experience both before and after their pregnancy and on how having a child may have affected their self-understanding, particularly in relation to their schooling. The overarching theme that arose from participants’ responses was that having a child substantially influenced their perspectives of both their schooling and their future. Although each stated that her pregnancy initially led her to drop out of school, the participants argued that having a child increased their interest in their education and pushed them to see how education would help them provide a better future for their children, increase their employment opportunities, and help them get off public assistance. In contrast to previous research, which has argued that teen motherhood puts women at a greater risk for school difficulties, this study reveals that motherhood may also be a factor in helping women reevaluate their perspective of school and school's importance for their lives.
A theoretical study of intraocular lens tilt and decentration on perceptual image quality
Authors: Turuwhenua Jason
Published: November 2005

Maps of perceptual image quality were generated for a range of intraocular (IOL) tilts and decentrations, using a perceptually based metric i.e. the square integral (SQRI) metric. Maps were generated for a well‐corrected eye, and for hyperopic (−0.1 mm) and myopic (+0.1 mm) image planes (for 2 and 4 mm pupils). These perceptually based results were compared with a standard optical measure (i.e. the equivalent SQRI for given spectacle power added at the cornea). The image quality changes in maps were small, but detectable (exceeding the perceptual just noticeable difference (jnd) or 1 jnd threshold). Clockwise (negative) tilt combined with decenter fell below the ‘contrast reserve’ modulation transfer functions (MTFs) for 0.25 and 0.5 D defocus, 4 mm pupil. These errors were larger than those found previously, probably because of the shape‐factor of the IOL used. Pupil size contributed the largest drop in SQRI value, followed by clockwise tilt combined with decenter. Anticlockwise tilt with decenter produced image quality improvements for the hyperopic eye. Spot diagrams confirmed defocus and the balance of coma‐like aberration and astigmatism as causes of the changes in SQRI values. The SQRI maps conveniently summarize imaging, and may be a useful tool in assessing image quality in eye modelling applications.
Visual function assessment and metamorphopsia after macular hole surgery*,†
Authors: Wittich Walter , Overbury Olga , Kapusta Michael A. , Faubert Jocelyn
Published: November 2005

The purpose of this study was to develop a new resolution acuity measure for patients after macular hole surgery. Fifty eyes of 44 patients who had undergone successful treatment were tested. Visual acuity was measured with the Snellen, Early Treatment of Diabetic Retinopathy Study and Landolt‐C charts. A Line Resolution Test was performed as part of their follow‐up exam where a vertical line was presented. Participants were categorized by their perception of the line as solid, bent or broken. The line could be distorted into a sine‐wave pattern in order to determine the participants’ detection threshold for the distortion. Chart acuities did not differ among the three groups, as categorized by their line perception. Only the distortion measure was sensitive enough to differentiate the solid‐ from the broken‐line group. The distortion measure assesses resolution power of the macula in smaller increments than acuity charts. This hyperacuity approach is more appropriate in the assessment of functional outcome after microsurgery.
Accuracy of accommodation in heterophoric patients: testing an interaction model in a large clinical sample
Authors: Hasebe Satoshi , Nonaka Fumitaka , Ohtsuki Hiroshi
Published: November 2005

A model of the cross‐link interactions between accommodation and convergence predicted that heterophoria can induce large accommodation errors (Schor, Ophthalmic Physiol. Opt. 1999;19:134–150). In 99 consecutive patients with intermittent tropia or decompensated phoria, we tested these interactions by comparing their accommodative responses to a 2.50‐D target under binocular fused conditions (BFC) and monocular occluded conditions (MOC). The accommodative response in BFC frequently differed from that in MOC. The magnitude of the accommodative errors in BFC, ranging from an accommodative lag of 1.80 D (in an esophoric patient) to an accommodative lead of 1.56 D (in an exophoric patient), was correlated with distance heterophoria and uncorrected refractive errors. These results indicate that heterophoria affects the accuracy of accommodation to various degrees, as the model predicted, and that an accommodative error larger than the depth of focus of the eye occurs in exchange for binocular single vision in some heterophoric patients.
Increase in central corneal thickness in dry and normal eyes with application of artificial tears: a new diagnostic and follow‐up criterion for dry eye*
Authors: Karadayi Koray , Ciftci Ferda , Akin Tugrul , Bilge Ahmet Hamdi
Published: November 2005

Aims:  To investigate the effect of artificial tear application on central corneal thickness (CCT) in dry and normal eyes.

Methods:  Forty eyes of 40 patients with symptomatic dry eyes and 20 eyes of 20 controls were included in the study. A combination artificial tear therapy was given to both groups for 1 week. The CCT was measured with ultrasonic pachymetry before and after the therapy. In addition, at the beginning of the study, 11 dry eye patients and eight control patients were evaluated separately as a subgroup: they received artificial tears every 10 min for an hour to determine whether this might constitute a diagnostic criterion. Results were analysed with a Wilcoxon test, accepting p < 0.01 as significant.

Results:  The mean CCT in the dry eye group before and after 1‐week therapy was 531.5 ± 16.5 and 559.6 ± 26.1 μm, respectively (p < 0.0001); thus yielding an average CCT increase of 28.1 ± 9.4 μm (=5.30%: 1.65% minimum; 7.03% maximum) from baseline. The mean CCT in the control group before and after 1‐week therapy was 549.2 ± 37.8 and 552.3 ± 39.8 μm, respectively (p = 0.001); thus, yielding an average CCT increase of 3.1 ± 1.9 μm (=0.56%: 0.00% minimum; 1.18% maximum) from baseline. When the subgroup was evaluated separately, the average increase from baseline in 11 dry eye patients was 10.4 ± 4.0 μm (=1.89%: 0.60% minimum; 4.26% maximum) after 1 h of artificial tear application, while it was 2.9 ± 2.0 μm (=0.51%: 0.00% minimum; 0.58% maximum) in eight control patients (p < 0.0001).

Conclusion:  The CCT in dry eyes increases rapidly and significantly compared to normal eyes after application of artificial tears. It is suggested that this increase could be used as a criterion in the diagnosis and follow up of dry eyes, and that this increase in thickness should be considered in intra‐ocular pressure measurements as well as in refractive surgical procedures.
Compensation of aniseikonia in astigmatic pseudophakic eyes*
Authors: MacKenzie Graeme E.
Published: November 2005

Purpose:  A recently published manuscript addressed the problem of compensating for aniseikonia between pseudophakic astigmatic eyes using a least‐squares calculation scheme. The purpose of this paper is to revisit this topic with the specific aim of providing explicit formulae for the determination of the intra‐ocular lens required to produce a specified transverse image size at the plane of the retina and the characteristics of the contact or spectacle lens required to realize some desired refractive outcome.

Methods:  The 4 × 4 ray transference is central to the development of all formulae presented in this paper. Specifically, the formula for the determination of the power of the intra‐ocular lens required to achieve some transverse image size at the retina is derived directly from the disjugacy of the pseudophakic eye.

Results:  The formula is applicable to both stigmatic and astigmatic systems without restriction. A detailed numerical example for an unusual eye is provided.

Conclusion:  A formula for the determination of the intra‐ocular lens required to produce any given transverse image size at the retina is derived. This approach does not require the application of the Moore‐Penrose pseudo‐inverse and one is able to work rather with the properties of the optical system directly without further modification.
Evaluation of retinal function using the Dynamic Focal Cone ERG
Authors: Binns Alison , Margrain Tom H.
Published: November 2005

The development of effective means of assessing visual function in retinal disease holds the key to improved understanding of pathogenesis, and better monitoring of treatment outcomes. In diseases such as age‐related macular degeneration, in which the primary locus of dysfunction is the outer retina, tests which provide a direct measure of the functional integrity of the photoreceptor/retinal pigment epithelium (RPE) complex are of great importance. Recovery of retinal function following adaptation to a bright light requires the healthy function of photoreceptors, RPE, Bruch's membrane and choroidal circulation, making an assessment of this recovery a potentially useful clinical tool. However, current techniques are either subjective in nature, or are influenced by post‐retinal processing of visual information. This report describes a novel technique, the ‘Dynamic Focal Cone Electro‐retinogram (ERG)’, which allows direct, objective assessment of the recovery of macular function following photopigment bleach. A series of 41 Hz ERGs was recorded, and ERG amplitude was plotted as a function of time following cessation of the bleach. Normative data was collected from 10 healthy subjects. For all subjects, there was no measurable ERG immediately after the bleach, but the amplitude had returned to a pre‐bleach level within 4 min. The amplitude recovery data were adequately described both by an exponential recovery function and by a model based on a rate‐limited recovery process. We conclude that this technique provides a clinically applicable, objective measure of outer retinal recovery.
Refining Biodiversity Conservation Priorities
Authors: HARRIS GRANT M. , JENKINS CLINTON N. , PIMM STUART L.
Published: November 2005

Abstract: Although there is widespread agreement about conservation priorities at large scales (i.e., biodiversity hotspots), their boundaries remain too coarse for setting practical conservation goals. Refining hotspot conservation means identifying specific locations (individual habitat patches) of realistic size and scale for managers to protect and politicians to support. Because hotspots have lost most of their original habitat, species endemic to them rely on what remains. The issue now becomes identifying where this habitat is and these species are. We accomplished this by using straightforward remote sensing and GIS techniques, identifying specific locations in Brazil's Atlantic Forest hotspot important for bird conservation. Our method requires a regional map of current forest cover, so we explored six popular products for mapping and quantifying forest: MODIS continuous fields and a MODIS land cover (preclassified products), AVHRR, SPOT VGT, MODIS (satellite images), and a GeoCover Landsat thematic mapper mosaic (jpg). We compared subsets of these forest covers against a forest map based on a Landsat enhanced thematic mapper. The SPOT VGT forest cover predicted forest area and location well, so we combined it with elevation data to refine coarse distribution maps for forest endemic birds. Stacking these species distribution maps enabled identification of the subregion richest in threatened birds—the lowland forests of Rio de Janeiro State. We highlighted eight priority fragments, focusing on one with finer resolved imagery for detailed study. This method allows prioritization of areas for conservation from a region >1 million km2to forest fragments of tens of square kilometers. To set priorities for biodiversity conservation, coarse biological information is sufficient. Hence, our method is attractive for tropical and biologically rich locations, where species location information is sparse.
Multi‐family treatment for patients with persistent auditory hallucinations and their relatives: a pilot study
Authors: Jenner J. A. , van de Willige G. , Wiersma D.
Published: November 2005

Objective:  To test feasibility and effectiveness of multi‐family treatment (MFT) for patients with persistent auditory hallucinations.

Method:  A naturalistic pilot study with 6‐month follow‐up of 12 patients and 10 relatives. Pre‐ and post‐treatment assessment concerned compliance, satisfaction, subjective burden, and control of voices, psychopathology, quality of life, social functioning and burden on the family.

Results:  Significant improvements were found in all domains. Compliance and satisfaction with treatment were satisfactory. Self‐help contacts outside treatment sessions increased over time.

Conclusion:  MFT may be considered a potentially effective form of additional treatment for refractory voice hearers.
Platelet‐rich plasma and fibrin as delivery systems for recombinant human bone morphogenetic protein‐2
Authors: Jung Ronald E. , Schmoekel Hugo G. , Zwahlen Roger , Kokovic Vladimir , Hammerle Christoph H. F. , Weber Franz E.
Published: November 2005

Abstract: The aim of the present study was (1) to test whether or not platelet‐rich plasma (PRP) or commercially available fibrin can increase bone regeneration compared with non‐treated defects and (2) to test whether or not PRP or fibrin increases bone regeneration when used as a delivery system for recombinant human bone morphogenetic protein‐2 (rhBMP‐2). In 16 New Zealand White rabbits, four evenly distributed 6 mm diameter defects were drilled into the calvarial bone. The following five treatment modalities were randomly allocated to all 64 defects: (0) untreated control, (1) fibrin alone, (2) PRP alone, (3) fibrin with 15 μg rhBMP‐2 and (4) PRP with 15 μg rhBMP‐2. For the fibrin gels and the PRP containing rhBMP‐2, the 15 μg rhBMP‐2 was incorporated by precipitation within the matrices before their gelation. After 4 weeks, the animals were sacrificed and the calvarial bones were removed for histological preparation. The area fraction of newly formed bone was determined in vertical sections from the middle of the defect by applying histomorphometrical analysis. A mean area fraction of newly formed bone was found within the former defect of 23.4% (±13.5%) in the control sites, of 28.4% (±17.4%) in the fibrin sites and of 34.5% (±17.4%) in the PRP sites. The statistical analysis revealed no significant difference in bone formation between the three groups (ANOVA). Addition of 15 μg rhBMP‐2 in the fibrin gel (59.9±20.3%) and the PRP gels (63.1±25.3%) increased bone formation significantly. No significant difference was observed between sites, where PRP or fibrin has been used as a delivery system for rhBMP‐2 (ANOVA). In conclusion, the application of fibrin gels or PRP gels to bone defects is not superior to leaving the defect untreated. Regarding the amount of bone formation, the application of 15 μg rhBMP‐2 in bone defects enhances the healing significantly at 4 weeks. In this animal model, commercially available fibrin and autologous PRP gels are equally effective as delivery systems for rhBMP‐2.
Adaptation of muscle size and myofascial force transmission: a review and some new experimental results
Authors: Huijing P. A. , Jaspers R. T.
Published: November 2005

This paper considers the literature and some new experimental results important for adaptation of muscle fiber cross‐sectional area and serial sarcomere number. Two major points emerge: (1) general rules for the regulation of adaptation (for in vivo immobilization, low gravity conditions, synergist ablation, tenotomy and retinaculum trans‐section experiments) cannot be derived. As a consequence, paradoxes are reported in the literature. Some paradoxes are resolved by considering the interaction between different levels of organization (e.g. muscle geometrical effects), but others cannot. (2) An inventory of signal transduction pathways affecting rates of muscle protein synthesis and/or degradation reveals controversy concerning the pathways and their relative contributions.

A major explanation for the above is not only the inherently limited control of the experimental conditions in vivo, but also of in situ experiments.

Culturing of mature single Xenopus muscle fibers at high and low lengths (allowing longitudinal study of adaptation for periods up to 3 months) did not yield major changes in the fiber cross‐sectional area or the serial sarcomere number. This is very different from substantial effects (within days) of immobilization in vivo. It is concluded that overall strain does not uniquely regulate muscle fiber size.

Force transmission, via pathways other than the myotendinous junctions, may contribute to the discrepancies reported: because of substantial serial heterogeneity of sarcomere lengths within muscle fibers creating local variations in the mechanical stimuli for adaptation. For the single muscle fiber, mechanical signalling is quite different from the in vivo or in vitro condition. Removal of tensile and shear effects of neighboring tissues (even of antagonistic muscle) modifies or removes mechanical stimuli for adaptation.

It is concluded that the study of adaptation of muscle size requires an integrative approach taking into account fundamental mechanisms of adaptation, as well as effects of higher levels of organization. More attention should be paid to adaptation of connective tissues within and surrounding the muscle and their effects on muscular properties.
Myotendinous alterations and effects of resistive loading in old age
Authors: Narici M.V. , Maganaris C. , Reeves N.
Published: November 2005

The loss of muscle mass associated with ageing only partly explains the observed decline in muscle strength. This paper provides evidence of the contribution of muscular, tendinous and neural alterations to muscle weakness in old age and discusses the complex interplay between the changes of the contractile tissue with those of the tendinous tissue in relation to the mechanical behavior of the muscle as a whole. Despite the considerable structural and functional alterations, the elderly musculoskeletal system displays remarkable adaptability to training in old age and many of these adverse effects may be substantially mitigated, if not reversed, by resistive loading. The interplay between these muscular and tendinous adaptations has an impact both on the length–force and force–velocity relationships of the muscle and is likely to affect the range of motion, rate of force development, maximum force development and speed of movement of the older individual.
Debugging "level"
Authors: Hamlet Dick
Published: November 2005

Debugging techniques originated with low-level programming languages, where the memory dump and interactive word-by-word examination of memory were the primary tools. "High-level" debugging is often no more than low-level techniques adapted to high-level languages. For example, to examine the execution of an operational specification one state at a time by setting breakpoints, is superior to doing the same thing to a machine-language program, but only because the language level has improved; the debugging remains primitive. This paper attempts a radical definition of debugging level, and illustrates it with a technique for ordering the execution of concurrent processes in a way that follows their design structure.

Division of a program into a collection of cooperating processes is a means of controlling the complexity of each process. However, in execution the program--development structure is ignored, with the result that the advantages of decomposition are lost. What the designer has divided and conquered, the debugger sees as an overwhelming monolith. The technique proposed here causes the focus of execution to follow the design structure, in a way that does not require detailed user direction.
A database model of debugging
Authors: Powell Michael L. , Linton Mark A.
Published: November 2005

Debugging a program can be viewed as performing queries and updates on a database that contains both program source and execution state information. This model of debugging simplifies a "debugger" to a database interface for runtime information and allows the debugger to be easily integrated into a programming environment.

We are currently designing a programming environment in which all program information is stored in a relational database system. This system will include debugging capabilities to provide the programmer a simple yet powerful mechanism for describing debugging requests
An integrated Lisp programming environment
Authors: Wertz Harald
Published: November 2005

We are currently implementing a system to help experienced programmers during the development, implementation and debugging of their programs. This system, built on top of a screen oriented structural editor, offers possibilities to attach descriptors to every portion of the program and to maintain - simultaneously - different versions of the program being written, including tentative hypothetical versions. It comprises a mecanism to maintain minimal consistency between modified parts of code, the non-modified parts of code and the attached descriptors, as well as an evaluation module functioning in different modes:
normal evaluation, symbolic evaluation
and
checking evaluation
.

The standard programming aids, such as indexors, pretty printers, trace packages, undo- and history-facilities are generalized to handle the descriptors and unfinished programs as well
SIMOB
Authors: Barra Knut , Dahle Hans Petter
Published: November 2005

To reason correctly over what is happening during an execution is often hard just by looking at the program text. To assist programmers and others to understand what really is going on, a portable tool for observation of SIMULA executions has been designed at the Norwegian Computing Center. In this article the S-PORT project and the main features of the tool are described.
DYMOS
Authors: Cook Robert P. , Lee Insup
Published: November 2005

Programs are frequently modified during their lifetime. Furthermore, modifications to some systems have to be made on the fly; that is, without stopping their execution. For example, changes to airline reservation systems, telephone switching systems, and on-line banking systems have to performed dynamically. Other continuously running systems, such as operating systems, may be modified on the fly to increase their availability.

DYMOS is a programming system that supports a programmer modifying a StarMod program dynamically. StarMod [2] is an extension of Modula [3]. To modify procedures dynamically, the programmer modifies and recompiles the source code of the procedures to be replaced and then requests the system to change the current core image to incorporate new code and data.
Notes on termination of OCCAM processes
Authors: Talla D.
Published: November 2005

A typical problem of concurrent programming is to ensure the correct termination of the concurrent processes which implement a program. The concurrent language Occam 2 does not provide explicit mechanisms to handle the program termination. This paper describes how to implement the distributed termination of Occam programs expressed as a network of parallel processes, avoiding deadlock situations or never-ending execution. The technique is based on the propagation of a termination message down the network of processes. Some Occam 2 programs which use this technique are described.
20 years of industrial functional programming
Authors: Wiger Ulf
Published: November 2005

It is now 20 years since the Ericsson Computer Science Laboratory (CSLab) was formed, and 20 years since CSLab started performing the programming language experiments that eventually led to the development of the Erlang programming language. For 15 years, Ericsson has conducted experiments with Erlang in an industrial setting, and for 12 years, actual commercial products have been developed.This talk summarizes some of the lessons learned from this work. It is well known that it is difficult to introduce a new programming technology. Even so, engineers often fail to realize that the reasons for resisting change are more often social/political than technical, even though the objections may seem technical in nature. This talk will highlight a few of the common objections to Erlang, and measure them against practical experience. In addition, it will suggest some topics for research that could result in significant cost savings in the near future, as well as inspire closer cooperation between industry and academia.
Implementing functional logic languages using multiple threads and stores
Authors: Tolmach Andrew , Antoy Sergio , Nita Marius
Published: November 2005

Recent functional logic languages such as Curry and Toy combine lazy functional programming with logic programming features including logic variables, non-determinism, unification, narrowing, fair search, concurrency, and residuation. In this paper, we show how to extend a conventional interpreter for a lazy functional language to handle these features by adding support for reference cells, process-like and thread-like concurrency mechanisms, and a novel form of multi-versioned store. Our interpretation scheme is practical, and can be easily extended to perform compilation. The language specified by our interpreter is designed so that programs are deterministic in a novel and useful sense.
Types, potency, and idempotency
Authors: Neergaard Peter Møller , Mairson Harry G.
Published: November 2005

Useful type inference must be faster than normalization. Otherwise, you could check safety conditions by running the program. We analyze the relationship between bounds on normalization and type inference. We show how the success of type inference is fundamentally related to the
amnesia
of the type system: the
nonlinearity
by which all instances of a variable are constrained to have the same type.Recent work on
intersection types
has advocated their usefulness for static analysis and modular compilation. We analyze System-I (and some instances of its descendant, System E), an intersection type system with a type inference algorithm. Because System-I lacks
idempotency
, each occurrence of a variable requires a distinct type. Consequently, type inference is equivalent to normalization in
every single case
, and time bounds on type inference and normalization are identical. Similar relationships hold for other intersection type systems without idempotency.The analysis is founded on an investigation of the relationship between
linear logic
and intersection types. We show a lockstep correspondence between normalization and type inference. The latter shows the promise of intersection types to facilitate static analyses of varied granularity, but also belies an immense challenge: to add amnesia to such analysis without losing all of its benefits.
A nanopass infrastructure for compiler education
Authors: Sarkar Dipanwita , Waddell Oscar , Dybvig R. Kent
Published: November 2005

Compilers structured as a small number of monolithic passes are difficult to understand and difficult to maintain. Adding new optimizations often requires major restructuring of existing passes that cannot be understood in isolation. The steep learning curve is daunting, and even experienced developers find it hard to modify existing passes without introducing subtle and tenacious bugs. These problems are especially frustrating when the developer is a student in a compiler class.An attractive alternative is to structure a compiler as a collection of many small passes, each of which performs a single task. This "micropass" structure aligns the actual implementation of a compiler with its logical organization, simplifying development, testing, and debugging. Unfortunately, writing many small passes duplicates code for traversing and rewriting abstract syntax trees and can obscure the meaningful transformations performed by individual passes.To address these problems, we have developed a methodology and associated tools that simplify the task of building compilers composed of many fine-grained passes. We describe these compilers as "nanopass" compilers to indicate both the intended granularity of the passes and the amount of source code required to implement each pass. This paper describes the methodology and tools comprising the nanopass framework.
Scrap more boilerplate
Authors: Lämmel Ralf , Jones Simon Peyton
Published: November 2005

Writing boilerplate code is a royal pain. Generic programming promises to alleviate this pain by allowing the programmer to write a generic "recipe" for boilerplate code, and use that recipe in many places. In earlier work we introduced the "Scrap your boilerplate" approach to generic programming, which exploits Haskell's existing type-class mechanism to support generic transformations and queries.This paper completes the picture. We add a few extra "introspective" or "reflective" facilities, that together support a rich variety of serialisation and de-serialisation. We also show how to perform generic "zips", which at first appear to be somewhat tricky in our framework. Lastly, we generalise the ability to over-ride a generic function with a type-specific one.All of this can be supported in Haskell with independently-useful extensions: higher-rank types and type-safe cast. The GHC implementation of Haskell readily derives the required type classes for user-defined data types.
An overview of Fortran 2003
Authors: Reid John
Published: November 2005

There is plenty happening just now with respect to Fortran. Two sets of features (for exception handling and for enhancements to allocatable arrays) were defined in Technical Reports as extensions to Fortran 95 and have become widely available in compilers.

The features of Fortran 2003 have been chosen and the standard is essentially complete. As well as the contents of the two Technical Reports, this adds interoperability with C, parameterized derived types, procedure pointers, type extension and polymorphism, access to the computing environment, support of international character sets, and many other enhancements.

A new Technical Report is essentially complete. This enhances the module features and avoids the 'compilation cascade' that can mar the development of very large programs. It is written as an extension of Fortran 2003, but is expected to be widely implemented as an extension to Fortran 95 compilers.

We will summarize all these developments, which will make Fortran even more suitable for large numerically-demanding applications.
Converting Java classes to use generics
Authors: von Dincklage Daniel , Diwan Amer
Published: November 2005

Generics offer significant software engineering benefits since they provide code reuse without compromising type safety. Thus generics will be added to the Java language in the next release. While this extension to Java will help programmers when they are writing new code, it will not help legacy code unless it is rewritten to use generics. In our experience, manually modifying existing programs to use generics is complex and can be error prone and labor intensive.

We describe a system, Ilwith, that (i) converts non-generic classes to generic classes and (ii) rewrites their clients to use the newly generified classes. Our experiments with a number of Java container classes show that our system is effective in modifying legacy code to use generics.
A unified theory of garbage collection
Authors: Bacon David F. , Cheng Perry , Rajan V. T.
Published: November 2005

Tracing and reference counting are uniformly viewed as being fundamentally different approaches to garbage collection that possess very distinct performance properties. We have implemented high-performance collectors of both types, and in the process observed that the more we optimized them, the more similarly they behaved - that they seem to share some deep structure.

We present a formulation of the two algorithms that shows that they are in fact duals of each other. Intuitively, the difference is that tracing operates on live objects, or "matter", while reference counting operates on dead objects, or "anti-matter". For every operation performed by the tracing collector, there is a precisely corresponding anti-operation performed by the reference counting collector.

Using this framework, we show that all high-performance collectors (for example, deferred reference counting and generational collection) are in fact hybrids of tracing and reference counting. We develop a uniform cost-model for the collectors to quantify the trade-offs that result from choosing different hybridizations of tracing and reference counting. This allows the correct scheme to be selected based on system performance requirements and the expected properties of the target application.
Resolving feature convolution in middleware systems
Authors: Zhang Charles , Jacobsen Hans-Arno
Published: November 2005

Middleware provides simplicity and uniformity for the development of distributed applications. However, the modularity of the architecture of middleware is starting to disintegrate and to become complicated due to the interaction of too many orthogonal concerns imposed from a wide range of application requirements. This is not due to bad design but rather due to the limitations of the conventional architectural decomposition methodologies. We introduce the principles of horizontal decomposition (HD) which addresses this problem with a mixed-paradigm middleware architecture. HD provides guidance for the use of conventional decomposition methods to implement the core functionalities of middleware and the use of aspect orientation to address its orthogonal properties. Our evaluation of the horizontal decomposition principles focuses on refactoring major middleware functionalities into aspects in order to modularize and isolate them from the core architecture. New versions of the middleware platform can be created through combining the core and the flexible selection of middleware aspects such as IDL data types, the oneway invocation style, the dynamic messaging style, and additional character encoding schemes. As a result, the primary functionality of the middleware is supported with a much simpler architecture and enhanced performance. Moreover, customization and configuration of the middleware for a wide-range of requirements becomes possible.
Vertical profiling
Authors: Hauswirth Matthias , Sweeney Peter F. , Diwan Amer , Hind Michael
Published: November 2005

Object-oriented programming languages provide a rich set of features that provide significant software engineering benefits. The increased productivity provided by these features comes at a justifiable cost in a more sophisticated runtime system whose responsibility is to implement these features efficiently. However, the virtualization introduced by this sophistication provides a significant challenge to understanding complete system performance, not found in traditionally compiled languages, such as C or C++. Thus, understanding system performance of such a system requires profiling that spans all levels of the execution stack, such as the hardware, operating system, virtual machine, and application.

In this work, we suggest an approach, called vertical profiling, that enables this level of understanding. We illustrate the efficacy of this approach by providing deep understandings of performance problems of Java applications run on a VM with vertical profiling support. By incorporating vertical profiling into a programming environment, the programmer will be able to understand how their program interacts with the underlying abstraction levels, such as application server, VM, operating system, and hardware.
Refactoring class hierarchies with KABA
Authors: Streckenbach Mirko , Snelting Gregor
Published: November 2005

KABA is an innovative system for refactoring Java class hierar-chies. It uses the Snelting/Tip algorithm [13] in order to determine a behavior-preserving refactoring which is optimal with respect to a given set of client programs. KABA can be based on dynamic as well as static program analysis. The static variant will preserve program behavior for all possible input values; the dynamic version guarantees preservation of behavior for all runs in a given test suite. KABA offers automatic refactoring as well as manual refactoring using a dedicated editor.

In this contribution, we recapitulate the Snelting/Tip algorithm, present the new dynamic version, and explain new extensions which allow to handle full Java. We then present five case studies which discuss the KABA refactoring proposals for programs such as javac and antlr. KABA proved that javac does not need refactoring, but generated semantics-based refactoring proposals for antlr.
Mirrors
Authors: Bracha Gilad , Ungar David
Published: November 2005

We identify three design principles for reflection and metaprogramming facilities in object oriented programming languages. Encapsulation: meta-level facilities must encapsulate their implementation. Stratification: meta-level facilities must be separated from base-level functionality. Ontological correspondence: the ontology of meta-level facilities should correspond to the ontology of the language they manipulate. Traditional/mainstream reflective architectures do not follow these precepts. In contrast, reflective APIs built around the concept of mirrors are characterized by adherence to these three principles. Consequently, mirror-based architectures have significant advantages with respect to distribution, deployment and general purpose metaprogramming.
Finding and preventing run-time error handling mistakes
Authors: Weimer Westley , Necula George C.
Published: November 2005

It is difficult to write programs that behave correctly in the presence of run-time errors. Existing programming language features often provide poor support for executing clean-up code and for restoring invariants in such exceptional situations. We present a dataflow analysis for finding a certain class of error-handling mistakes: those that arise from a failure to release resources or to clean up properly along all paths. Many real-world programs violate such resource safety policies because of incorrect error handling. Our flow-sensitive analysis keeps track of outstanding obligations along program paths and does a precise modeling of control flow in the presence of exceptions. Using it, we have found over 800 error handling mistakes almost 4 million lines of Java code. The analysis is unsound and produces false positives, but a few simple filtering rules suffice to remove them in practice. The remaining mistakes were manually verified. These mistakes cause sockets, files and database handles to be leaked along some paths. We present a characterization of the most common causes of those errors and discuss the limitations of exception handling, finalizers and destructors in addressing them. Based on those errors, we propose a programming language feature that keeps track of obligations at run time and ensures that they are discharged. Finally, we present case studies to demonstrate that this feature is natural, efficient, and can improve reliability; for example, retrofitting a 34kLOC program with it resulted in a 0.5% code size decrease, a surprising 17% speed increase (from correctly deallocating resources in the presence of exceptions), and more consistent behavior.
Spatial computation
Authors: Budiu Mihai , Venkataramani Girish , Chelcea Tiberiu , Goldstein Seth Copen
Published: November 2005

This paper describes a computer architecture,
Spatial Computation
(SC), which is based on the translation of high-level language programs directly into hardware structures. SC program implementations are completely distributed, with no centralized control. SC circuits are optimized for
wires
at the expense of computation units.In this paper we investigate a particular implementation of SC: ASH (Application-Specific Hardware). Under the assumption that computation is cheaper than communication, ASH replicates computation units to simplify interconnect, building a system which uses very simple, completely dedicated communication channels. As a consequence, communication on the datapath never requires arbitration; the only arbitration required is for accessing memory. ASH relies on very simple hardware primitives, using no associative structures, no multiported register files, no scheduling logic, no broadcast, and no clocks. As a consequence, ASH hardware is fast and extremely power efficient.In this work we demonstrate three features of ASH: (1) that such architectures can be built by automatic compilation of C programs; (2) that distributed computation is in some respects fundamentally different from monolithic superscalar processors; and (3) that ASIC implementations of ASH use three orders of magnitude less energy compared to high-end superscalar processors, while being on average only 33% slower in performance (3.5x worst-case).
An ultra low-power processor for sensor networks
Authors: Ekanayake Virantha , Kelly Clinton , Manohar Rajit
Published: November 2005

We present a novel processor architecture designed specifically for use in low-power wireless sensor-network nodes. Our sensor network asynchronous processor (SNAP/LE) is based on an asynchronous data-driven 16-bit RISC core with an extremely low-power idle state, and a wakeup response latency on the order of tens of nanoseconds. The processor instruction set is optimized for sensor-network applications, with support for event scheduling, pseudo-random number generation, bitfield operations, and radio/sensor interfaces. SNAP/LE has a hardware event queue and event coprocessors, which allow the processor to avoid the overhead of operating system software (such as task schedulers and external interrupt servicing), while still providing a straightforward programming interface to the designer. The processor can meet performance levels required for data monitoring applications while executing instructions with tens of picojoules of energy.We evaluate the energy consumption of SNAP/LE with several applications representative of the workload found in data-gathering wireless sensor networks. We compare our architecture and software against existing platforms for sensor networks, quantifying both the software and hardware benefits of our approach.
Low-overhead memory leak detection using adaptive statistical profiling
Authors: Hauswirth Matthias , Chilimbi Trishul M.
Published: November 2005

Sampling has been successfully used to identify performance optimization opportunities. We would like to apply similar techniques to check program correctness. Unfortunately, sampling provides poor coverage of infrequently executed code, where bugs often lurk. We describe an adaptive profiling scheme that addresses this by sampling executions of code segments at a rate inversely proportional to their execution frequency. To validate our ideas, we have implemented SWAT, a novel memory leak detection tool. SWAT traces program allocations/ frees to construct a heap model and uses our adaptive profiling infrastructure to monitor loads/stores to these objects with low overhead. SWAT reports 'stale' objects that have not been accessed for a 'long' time as leaks. This allows it to find all leaks that manifest during the current program execution. Since SWAT has low runtime overhead (‹5%), and low space overhead (‹10% in most cases and often less than 5%), it can be used to track leaks in production code that take days to manifest. In addition to identifying the allocations that leak memory, SWAT exposes where the program last accessed the leaked data, which facilitates debugging and fixing the leak. SWAT has been used by several product groups at Microsoft for the past 18 months and has proved effective at detecting leaks with a low false positive rate (‹10%).