114,394 research outputs found

    SCRATCH LANGUAGE OF PROGRAMMING VS ENGLISH LANGUAGE: COMPARING MATHEMATICAL AND LINGUISTIC FEATURES

    Get PDF
    This paper focuses on Scratch language of programming and traces its math and linguistic features. From a complex consideration about Scratch language programming in linguistic paradigm, focusing on structural, semantic and syntactic features and logic of its narration, this research attempts to clarify specifics of the language and correlate it with the English language features. Global integration of ideas and sciences underline the crucial importance of programming and language conglomerate. Human-computer interfaces, software systems, and development of various programming languages depend on well-balanced structure, shape, logic, and appearance of the actual code. Dynamic characteristics of the Scratch programming environment sustain the creation of interactive and media-rich projects. Ad expansion of Scratch for mediation of animated stories, music videos, science projects, tutorials, and other contents necessitates multifaceted analysis of this programming environment and evokes the interest of researching Scratch from the math and linguistic perspective as one possible projection on various aspects of the considered programming language

    A Visual Language for Keyboardless Programming

    Get PDF
    A visual language Show and Tell is introduced as a programming language for home information systems, integrating the computer capabilities of managing computation, communications, and database. It is shown that keyboardless programming is possible with Show and Tell. The language is implemented on the Apple Macintosh personal computer. The semantic model of the language is based on the concepts of dataflow and completion. A Show and Tell program is a partially ordered set of nested boxes and arrows. Traditional programming constructs such as subroutine, iteration, record structure recursion, exception, concurrency and so forth, are represented by two-dimensional graphical structures of boxes and arrows. The design philosophy, conceptual model, syntax, and semantics of major language constructs are described. Various research problems in the visual programming area are discussed

    From Process Calculi to Klaim and Back

    Get PDF
    We briefly describe the motivations and the background behind the design of Klaim, a process description language that has proved to be suitable for describing a wide range of distributed applications with agents and code mobility. We argue that a drawback of Klaim is that it is neither a programming language, nor a process calculus. We then outline the two research directions we have pursued more recently. On the one hand we have evolved Klaim to a full-fledged language for distributed mobile programming. On the other hand we have distilled the language into a number of simple calculi that we have used to define new semantic theories and equivalences and to test the impact of new operators for network aware programming

    Toward Semantic Foundations for Program Editors

    Get PDF
    Programming language definitions assign formal meaning to complete programs. Programmers, however, spend a substantial amount of time interacting with incomplete programs - programs with holes, type inconsistencies and binding inconsistencies - using tools like program editors and live programming environments (which interleave editing and evaluation). Semanticists have done comparatively little to formally characterize (1) the static and dynamic semantics of incomplete programs; (2) the actions available to programmers as they edit and inspect incomplete programs; and (3) the behavior of editor services that suggest likely edit actions to the programmer based on semantic information extracted from the incomplete program being edited, and from programs that the system has encountered in the past. This paper serves as a vision statement for a research program that seeks to develop these "missing" semantic foundations. Our hope is that these contributions, which will take the form of a series of simple formal calculi equipped with a tractable metatheory, will guide the design of a variety of current and future interactive programming tools, much as various lambda calculi have guided modern language designs. Our own research will apply these principles in the design of Hazel, an experimental live lab notebook programming environment designed for data science tasks. We plan to co-design the Hazel language with the editor so that we can explore concepts such as edit-time semantic conflict resolution mechanisms and mechanisms that allow library providers to install library-specific editor services

    Semantic Web Languages and Semantic Web Services as Application Areas for Answer Set Programming

    Get PDF
    In the Semantic Web and Semantic Web Services areas there are still unclear issues concerning an appropriate language. Answer Set Programming and ASP engines can be particularly interesting for Ontological Reasoning, especially in the light of ongoing discussions of non-Monotonic extensions for Ontology Languages. Previously, the main concern of discussions was around OWL and Description Logics. Recently many extensions and suggestions for Rule Languages and Semantic Web Languages pop up, particularly in the the context of Semantic Web Services, which involve the meta-data description of Services instaead of static data on the Web only. These lanuages involve SWRL, WSML, SWSL-Rules, etc. I want to give an outline of languages, challenges and initiatives in this area and where I think Answer Set Programming research can hook in. (30min)

    Combining NLP and Semantics for Mining Software Technologies from Research Publications

    Get PDF
    The natural language processing (NLP) community has developed a variety of methods for extracting and disambiguating information from research publications. However, they usually focus only on standard research entities such as authors, affiliations, venues, references and keywords. We propose a novel approach, which combines NLP and semantic technologies for generating from the text of research publications an OWL ontology describing software technologies used or introduced by researchers, such as applications, systems, frameworks, programming languages, and formats. The method was tested on a sample of 300 publications in the Semantic Web field, yielding promising results

    Modelling programming language semantics using a common semantic model

    Get PDF
    Software Engineers are interested in understanding software structure in order to manage its complexity, and to assure and improve its quality. Semantic models can inform tools to communicate this information to humans. The .NET framework provides a common semantic underpinning for a wide range of programming languages in an intermediate language. Nevertheless, there is a semantic gap between the intermediate language and specific programming languages. This research aims to model the mapping between the common semantic concepts and programming language specific concepts. The main benefit of the mapping is to allow us to define metrics, heuristics and visualizations on a set of common semantics and to compare them rigourously across various programming languages. We propose an architecture for mapping the semantics of multiple programming languages to .NET. In addition, we analyze and design a bidirectional mapping between Java and .NET as part of this architecture. The mapping model is implemented based on existing Java and .NET semantic models, and has been verified on a number of Java and .NET applications

    Towards Semantic Clone Detection, Benchmarking, and Evaluation

    Get PDF
    Developers copy and paste their code to speed up the development process. Sometimes, they copy code from other systems or look up code online to solve a complex problem. Developers reuse copied code with or without modifications. The resulting similar or identical code fragments are called code clones. Sometimes clones are unintentionally written when a developer implements the same or similar functionality. Even when the resulting code fragments are not textually similar but implement the same functionality they are still considered to be clones and are classified as semantic clones. Semantic clones are defined as code fragments that perform the exact same computation and are implemented using different syntax. Software cloning research indicates that code clones exist in all software systems; on average, 5% to 20% of software code is cloned. Due to the potential impact of clones, whether positive or negative, it is essential to locate, track, and manage clones in the source code. Considerable research has been conducted on all types of code clones, including clone detection, analysis, management, and evaluation. Despite the great interest in code clones, there has been considerably less work conducted on semantic clones. As described in this thesis, I advance the state-of-the-art in semantic clone research in several ways. First, I conducted an empirical study to investigate the status of code cloning in and across open-source game systems and the effectiveness of different normalization, filtering, and transformation techniques for detecting semantic clones. Second, I developed an approach to detect clones across .NET programming languages using an intermediate language. Third, I developed a technique using an intermediate language and an ontology to detect semantic clones. Fourth, I mined Stack Overflow answers to build a semantic code clone benchmark that represents real semantic code clones in four programming languages, C, C#, Java, and Python. Fifth, I defined a comprehensive taxonomy that identifies semantic clone types. Finally, I implemented an injection framework that uses the benchmark to compare and evaluate semantic code clone detectors by automatically measuring recall
    • …
    corecore