79 resultados para Subroutines in Procedural Programming Languages
em BORIS: Bern Open Repository and Information System - Berna - Sui
Resumo:
This volume focuses on word formation processes in smaller and so far underrepresented indigenous languages of South America. The data for the analyses have been mainly collected in the field by the authors. The several language families described here, among them Arawakan, Takanan, and Guaycuruan, as well as language isolates, such as Yurakaré and Cholón, reflect the linguistic diversity of South America. Equally diverse are the topics addressed, relating to word formation processes like reduplication, nominal and verbal compounding, clitic compounding, and incorporation. The traditional notions of the processes are discussed critically with respect to their implementation in minor indigenous languages. The book is therefore not only of interest to readers with an Amerindian background but also to typologists and historical linguists, and it is a supplement to more theory-driven approaches to language and linguistics.
Resumo:
The demands of developing modern, highly dynamic applications have led to an increasing interest in dynamic programming languages and mechanisms. Not only applications must evolve over time, but the object models themselves may need to be adapted to the requirements of different run-time contexts. Class-based models and prototype-based models, for example, may need to co-exist to meet the demands of dynamically evolving applications. Multi-dimensional dispatch, fine-grained and dynamic software composition, and run-time evolution of behaviour are further examples of diverse mechanisms which may need to co-exist in a dynamically evolving run-time environment How can we model the semantics of these highly dynamic features, yet still offer some reasonable safety guarantees? To this end we present an original calculus in which objects can adapt their behaviour at run-time to changing contexts. Both objects and environments are represented by first-class mappings between variables and values. Message sends are dynamically resolved to method calls. Variables may be dynamically bound, making it possible to model a variety of dynamic mechanisms within the same calculus. Despite the highly dynamic nature of the calculus, safety properties are assured by a type assignment system.
Resumo:
The demands of developing modern, highly dynamic applications have led to an increasing interest in dynamic programming languages and mechanisms. Not only must applications evolve over time, but the object models themselves may need to be adapted to the requirements of different run-time contexts. Class-based models and prototype-based models, for example, may need to co-exist to meet the demands of dynamically evolving applications. Multi-dimensional dispatch, fine-grained and dynamic software composition, and run-time evolution of behaviour are further examples of diverse mechanisms which may need to co-exist in a dynamically evolving run-time environment. How can we model the semantics of these highly dynamic features, yet still offer some reasonable safety guarantees? To this end we present an original calculus in which objects can adapt their behaviour at run-time. Both objects and environments are represented by first-class mappings between variables and values. Message sends are dynamically resolved to method calls. Variables may be dynamically bound, making it possible to model a variety of dynamic mechanisms within the same calculus. Despite the highly dynamic nature of the calculus, safety properties are assured by a type assignment system.
Resumo:
Java Enterprise Applications (JEAs) are large systems that integrate multiple technologies and programming languages. Transactions in JEAs simplify the development of code that deals with failure recovery and multi-user coordination by guaranteeing atomicity of sets of operations. The heterogeneous nature of JEAs, however, can obfuscate conceptual errors in the application code, and in particular can hide incorrect declarations of transaction scope. In this paper we present a technique to expose and analyze the application transaction scope in JEAs by merging and analyzing information from multiple sources. We also present several novel visualizations that aid in the analysis of transaction scope by highlighting anomalies in the specification of transactions and violations of architectural constraints. We have validated our approach on two versions of a large commercial case study.
Resumo:
Grammars for programming languages are traditionally specified statically. They are hard to compose and reuse due to ambiguities that inevitably arise. PetitParser combines ideas from scannerless parsing, parser combinators, parsing expression grammars and packrat parsers to model grammars and parsers as objects that can be reconfigured dynamically. Through examples and benchmarks we demonstrate that dynamic grammars are not only flexible but highly practical.
Resumo:
Context-dependent behavior is becoming increasingly important for a wide range of application domains, from pervasive computing to common business applications. Unfortunately, mainstream programming languages do not provide mechanisms that enable software entities to adapt their behavior dynamically to the current execution context. This leads developers to adopt convoluted designs to achieve the necessary runtime flexibility. We propose a new programming technique called Context-oriented Programming (COP) which addresses this problem. COP treats context explicitly, and provides mechanisms to dynamically adapt behavior in reaction to changes in context, even after system deployment at runtime. In this paper we lay the foundations of COP, show how dynamic layer activation enables multi-dimensional dispatch, illustrate the application of COP by examples in several language extensions, and demonstrate that COP is largely independent of other commitments to programming style.
Resumo:
Concurrency control is mostly based on locks and is therefore notoriously difficult to use. Even though some programming languages provide high-level constructs, these add complexity and potentially hard-to-detect bugs to the application. Transactional memory is an attractive mechanism that does not have the drawbacks of locks, however the underlying implementation is often difficult to integrate into an existing language. In this paper we show how we have introduced transactional semantics into Smalltalk by using the reflective facilities of the language. Our approach is based on method annotations, incremental parse tree transformations and an optimistic commit protocol. The implementation does not depend on modifications to the virtual machine and therefore can be changed at the language level. We report on a practical case study, benchmarks and further and on-going work.
Resumo:
Subtype polymorphism is a cornerstone of object-oriented programming. By hiding variability in behavior behind a uniform interface, polymorphism decouples clients from providers and thus enables genericity, modularity and extensi- bility. At the same time, however, it scatters the implementation of the behavior over multiple classes thus potentially hampering program comprehension. The extent to which polymorphism is used in real programs and the impact of polymorphism on program comprehension are not very well understood. We report on a preliminary study of the prevalence of polymorphism in several hundred open source software systems written in Smalltalk, one of the oldest object-oriented programming languages, and in Java, one of the most widespread ones. Although a large portion of the call sites in these systems are polymorphic, a majority have a small number of potential candidates. Smalltalk uses polymorphism to a much greater extent than Java. We discuss how these findings can be used as input for more detailed studies in program comprehension and for better developer support in the IDE.
Resumo:
Java Enterprise Applications (JEAs) are large systems that integrate multiple technologies and programming languages. With the purpose to support the analysis of JEAs we have developed MooseJEE an extension of the \emphMoose environment capable to model the typical elements of JEAs.
Resumo:
After decades of development in programming languages and programming environments, Smalltalk is still one of few environments that provide advanced features and is still widely used in the industry. However, as Java became prevalent, the ability to call Java code from Smalltalk and vice versa becomes important. Traditional approaches to integrate the Java and Smalltalk languages are through low-level communication between separate Java and Smalltalk virtual machines. We are not aware of any attempt to execute and integrate the Java language directly in the Smalltalk environment. A direct integration allows for very tight and almost seamless integration of the languages and their objects within a single environment. Yet integration and language interoperability impose challenging issues related to method naming conventions, method overloading, exception handling and thread-locking mechanisms. In this paper we describe ways to overcome these challenges and to integrate Java into the Smalltalk environment. Using techniques described in this paper, the programmer can call Java code from Smalltalk using standard Smalltalk idioms while the semantics of each language remains preserved. We present STX:LIBJAVA - an implementation of Java virtual machine within Smalltalk/X - as a validation of our approach
Resumo:
OBJECTIVES: With more children receiving cochlear implants during infancy, there is a need for validated assessments of pre-verbal and early verbal auditory skills. The LittlEARS Auditory Questionnaire is presented here as the first module of the LittlEARS test battery. The LittlEARS Auditory Questionnaire was developed and piloted to assess the auditory behaviour of normal hearing children and hearing impaired children who receive a cochlear implant or hearing aid prior to 24 months of age. This paper presents results from two studies: one validating the LittlEARS Auditory Questionnaire on children with normal hearing who are German speaking and a second validating the norm curves found after adaptation and administration of the questionnaire to children with normal hearing in 15 different languages. METHODS: Scores from a group of 218 German and Austrian children with normal hearing between 5 days and 24 months of age were used to create a norm curve. The questionnaire was adapted from the German original into English and then 15 other languages to date. Regression curves were found based on parental responses from 3309 normal hearing infants and toddlers. Curves for each language were compared to the original German validation curve. RESULTS: The results of the first study were a norm curve which reflects the age-dependence of auditory behaviour, reliability and homogeneity as a measure of auditory behaviour, and calculations of expected and critical values as a function of age. Results of the second study show that the regression curves found for all the adapted languages are essentially equal to the German norm curve, as no statistically significant differences were found. CONCLUSIONS: The LittlEARS Auditory Questionnaire is a valid, language-independent tool for assessing the early auditory behaviour of infants and toddlers with normal hearing. The results of this study suggest that the LittlEARS Auditory Questionnaire could also be very useful for documenting children's progress with their current amplification, providing evidence of the need for implantation, or highlighting the need for follow-up in other developmental areas.
Resumo:
OBJECTIVES We sought to evaluate the strategy success and short term clinical outcomes of direct stenting via 5 French (F) diagnostic catheters using a novel bare metal stent with integrated delivery system (IDS) (Svelte Medical Systems, New Providence, NJ) and compare the results to a conventionally treated matched group. METHODS Fifteen consecutive patients with lesions deemed suitable for direct stenting using a bare metal stent were included. The primary endpoint was the strategy success defined as the ability to successfully treat a target lesion via a 5 F diagnostic catheter with a good angiographic result (TIMI III flow, residual stenosis ≤20%). Procedure and fluoroscopy times, contrast agent use, cost, and short-term clinical outcomes were compared to a matched group treated via conventional stenting. RESULTS The primary endpoint was reached in 14/15 patients (93%). There were no significant differences in procedural (58.6 min ± 12.7 vs. 57.4 min ± 14.2) or fluoroscopy times (10.0 min ± 4.3 vs.10.1 min ± 3.9) or contrast agent use (193.7 ml ± 54.8 vs. 181.4 ml ± 35.6). However, there were significant reductions in materials used in the study group compared to the control group equating to cost savings of almost US $600 per case (US $212.44 ± 258.09 vs. US $804.69 ± 468.11; P = 0.001). CONCLUSIONS Direct stenting using a novel bare metal stent with an IDS via 5 F diagnostic catheters is a viable alternative to conventional stenting in selected patients and is associated with significant cost savings.