196,743 research outputs found

    Open Programming Language Interpreters

    Get PDF
    Context: This paper presents the concept of open programming language interpreters and the implementation of a framework-level metaobject protocol (MOP) to support them. Inquiry: We address the problem of dynamic interpreter adaptation to tailor the interpreter's behavior on the task to be solved and to introduce new features to fulfill unforeseen requirements. Many languages provide a MOP that to some degree supports reflection. However, MOPs are typically language-specific, their reflective functionality is often restricted, and the adaptation and application logic are often mixed which hardens the understanding and maintenance of the source code. Our system overcomes these limitations. Approach: We designed and implemented a system to support open programming language interpreters. The prototype implementation is integrated in the Neverlang framework. The system exposes the structure, behavior and the runtime state of any Neverlang-based interpreter with the ability to modify it. Knowledge: Our system provides a complete control over interpreter's structure, behavior and its runtime state. The approach is applicable to every Neverlang-based interpreter. Adaptation code can potentially be reused across different language implementations. Grounding: Having a prototype implementation we focused on feasibility evaluation. The paper shows that our approach well addresses problems commonly found in the research literature. We have a demonstrative video and examples that illustrate our approach on dynamic software adaptation, aspect-oriented programming, debugging and context-aware interpreters. Importance: To our knowledge, our paper presents the first reflective approach targeting a general framework for language development. Our system provides full reflective support for free to any Neverlang-based interpreter. We are not aware of any prior application of open implementations to programming language interpreters in the sense defined in this paper. Rather than substituting other approaches, we believe our system can be used as a complementary technique in situations where other approaches present serious limitations

    A Domain Specific Language Based Approach for Generating Deadlock-Free Parallel Load Scheduling Protocols for Distributed Systems

    Get PDF
    In this dissertation, the concept of using domain specific language to develop errorree parallel asynchronous load scheduling protocols for distributed systems is studied. The motivation of this study is rooted in addressing the high cost of verifying parallel asynchronous load scheduling protocols. Asynchronous parallel applications are prone to subtle bugs such as deadlocks and race conditions due to the possibility of non-determinism. Due to this non-deterministic behavior, traditional testing methods are less effective at finding software faults. One approach that can eliminate these software bugs is to employ model checking techniques that can verify that non-determinism will not cause software faults in parallel programs. Unfortunately, model checking requires the development of a verification model of a program in a separate verification language which can be an error-prone procedure and may not properly represent the semantics of the original system. The model checking approach can provide true positive result if the semantics of an implementation code and a verification model is represented under a single framework such that the verification model closely represents the implementation and the automation of a verification process is natural. In this dissertation, a domain specific language based verification framework is developed to design parallel load scheduling protocols and automatically verify their behavioral properties through model checking. A specification language, LBDSL, is introduced that facilitates the development of parallel load scheduling protocols. The LBDSL verification framework uses model checking techniques to verify the asynchronous behavior of the protocol. It allows the same protocol specification to be used for verification and the code generation. The support to automatic verification during protocol development reduces the verification cost post development. The applicability of LBDSL verification framework is illustrated by performing case study on three different types of load scheduling protocols. The study shows that the LBDSL based verification approach removes the need of debugging for deadlocks and race bugs which has potential to significantly lower software development costs

    A prototype mobile money implementation in Nigeria

    Get PDF
    Researchers have shown that majority of the populace in the developing nations are rural dwellers that do not have access to basic financial services and are poor. This class of people are peasant farmers and petty traders who rely mostly on remittances from their wards and relations in major cities and abroad to meet their financial obligations at home. The methods of remittances are encumbered with challenges. Mobile money is a tool that allows individuals to make financial transactions using mobile cell phones. Nigeria is one of the fastest growing telecoms nations of the world and the adoption of mobile money will help a great deal to solve the problems associated with remittances. In this paper, we present a short messages services (SMS) and unstructured supplementary service data (USSD) implementation of mobile money implementation in Nigeria modelled using Django and Python as the programming language, MySQL as the data store and Apache hypertext transfer protocol (HTTP) as the Web server. The system made comparative analysis with M-PESA implementation in Kenya: the first mobile money implantation in Africa. Furthermore, the system was tested among a selected few of the populace to evaluate the usability of the design. Findings revealed that the prototype implementation is user-friendly and can be used by all without many problems except for the illiterate populace; hence, the need to have a combined bank and agent-based implementation. This approach will help with time to reduce the number of unbanked populace, which is currently at 80%

    WinCE-based embedded system for control of an industrial screw machine

    Get PDF
    Nowadays, industrial systems frequently require the control of some industrial process and monitoring of relevant data about the process, using a friendly visual environment. Normally, is used a PLC (Programmable Logical Controller) to control the process and assure that the timing requirements (deadlines) are satisfied and a PC to monitor the data. However, the implementation of such solution presents the following drawbacks to the system programmer: (1) he or she needs to know the communication protocol between the two platforms - PLC and the PC; (2) he or she needs to learn two different programming languages - the low level PLC language and a high level PC language. On the other hand, in some cases, the reserved space to control the systems is reduced, making the implementation of such solution very hard. This paper presents an approach based on an embedded PC with real-time processing capability and data monitoring facility. The proposed system runs the Windows CE operating system and allows all software development in C/C++, using the Microsoft Visual Studio environment. The system was tested on an industrial screw machine for PCBs

    A Stepwise Approach to Developing Languages for SIP Telephony Service Creation

    Get PDF
    International audienceDeveloping a SIP-based telephony service requires a programmer to have expertise in telephony rules and constraints, the SIP protocol, distributed systems, and a SIP API, which is often large and complex. These requirements make the development of telephony software an overwhelming challenge. To overcome this challenge, various programming languages have been proposed to develop telephony services. Nevertheless, none of these languages as yet has a formal semantics. Therefore, the reference implementation, which may not be available, becomes the only source of information for the programmer to understand the subtleties of the language. Furthermore, this situation makes it difficult for third-party developers to port the language to another runtime system or to provide another implementation of the runtime system. This paper presents a semantics-based stepwise approach for designing and developing a scripting language dedicated to the development of telephony services. This approach enables critical properties of services to be guaranteed and captures expertise on the operational behavior of a service. We have applied this approach to developing the Session Processing Language (SPL) [3] dedicated to SIP-based service creation. A variety of services have been written in SPL for our university department

    Use of Drawing to Improve Word Retrieval in Chronic Nonfluent Aphasia

    Get PDF
    Aphasia disrupts multiple language processes with anomia often being the most common problem. Compensatory strategies have been utilized for individuals with severe anomia, including writing, gesturing, and drawing (Farias, Davis, & Harrington, 2006). However, few formal programs have focused on promoting drawing as a means of communication. These typically use drawing as a substitute for language rather than a tool to enhance verbal expression (Sacchett, 2002). Furthermore, training usually emphasizes ability to recognize drawing rather than information exchange (Morgan & Helm-Estabrooks, 1987; Trupe, 1986 as cited in Sacchett, 2002). Semantic Feature Analysis (SFA) is a treatment approach based on the premise that although individuals with anomia have difficulty retrieving words, ability to access features related to targets is often somewhat intact (Beeson, Holland, & Murray, 1995). The semantic system is accessed by producing words related to targets, with individuals incorporating these strategies as self-cues to retrieve target words (Boyle, 2004; Chapey, 2001; Rider & Wright, 2008). To date, this approach has aimed to enhance only verbal output. The purpose of this investigation was to examine if an individual with chronic mixed aphasia could clinically improve ability to name pictured objects through implementation of a drawing protocol. RE underwent a brief but intense treatment program incorporating drawing with SFA to improve word retrieval
    • …
    corecore