21 research outputs found

    Design patterns for teaching type checking in a compiler construction course

    Get PDF
    A course in compiler construction seeks to develop an understanding of well-defined fundamental theory and typically involves the production of a language processor. In a graduate degree in software engineering, the development of a compiler contributes significantly to the developer's comprehension of the practical application of theoretical concepts. Different formal notations are commonly used to define type systems, and some of them are used to teach the semantic analysis phase of language processing. In the traditional approach, attribute grammars are probably the most widely used ones. This paper shows how object-oriented design patterns represented in unified modeling language (UML) can be used to both teach type systems and develop the semantic analysis phase of a compiler. The main benefit of this approach is two-fold: better comprehension of theoretical concepts because of the use of notations known by the students (UML diagrams), and improvement of software engineering skills for the development of a complete language processor

    Concurrency in modula-2

    Get PDF
    A concurrent program is one in which a number of processes are considered to be active simultaneously . It is possib l e to t hink of a process as being a separate sequential program executing independently of other processes, although perhaps communicating with them at desired pOints . The concurrent program, as a whole, can be executed in one of two ways: il ii) in true concurrent manner, wi th each process executing on a dedicated processor in a quasi - concurrent manner, where a processor's processes . time is multiplexed between single the There are two motivations for the study of concurrency in programming languages : i) concurrent programming facilities can be exploited in systems where one has more t han one processor . As technology i mproves, machines having multiple processors will proliferate ii) concurrent p r ogramming facilities may allow programs to be structured as independent , bu t co - operating, processes which can then be implemented on a single processor system . This structure may be more natural to the programmer then the traditional sequential structures. An example is provided by Conway's - 1- Clearly, languages Pascal) problem [Ben82] . by their very nature, traditional sequential- type (Fortran, Basic, Cobol and earlier versions of prove inadequate for the purposes of concurrent programming without considerable extension (which some manufacturers have provided, rendering their compilers non standard-conforming). The general convenience of high level languages provides strong motivation for their development for rea l time programming. Modula - 2 [Wir83] is but one of a number of such r ecently developed languages, designed not only to fulfil a "sequential" role but also to offer facilities for concurrent programming. Developed by Niklaus Wirth in 1979 as a successor to Pascal and Modula, it is intended to serve under the banner of a generalpurpose systems - implementation language. This thesis investigates concurrency i n Modula - 2 and takes the following form: i ) an analYSis of the concurrent facilities offered ii) problems and difficulties associated with these facilities iii) improveme nts and enhancements, including the feasibility of using Modula - 2 to simulate constructs found in other languages, such as the Hoare monitor [Hoa74] and the Ada rendezvous [Uni81]. - 2- Each section concludes with an appraisal of the work conducted in that section . The final section consists of a critical assessment of those Modula - 2 language constructs and facilities provided for the implementation of concurrency and a brief look at concurrency in Modula, Modula-2's predecessor. - Introduction.KMBT_363Adobe Acrobat 9.53 Paper Capture Plug-i

    Static conformance checking for matrices

    Get PDF
    Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1994.Includes bibliographical references (leaves 67-68).by Roy Seto.M.Eng

    The Ethical Analysis of Moral Bioenhancement:Theoretical and Normative Perspectives

    Get PDF

    Generating Programming Environments with Integrated Text and Graphics for VLSI Design Systems

    Get PDF
    The constant improvements in device integration, the development of new technologies and the emergence of new design techniques call for flexible, maintainable and robust software tools. The generic nature of compiler-compiler systems, with their semi-formal specifications, can help in the construction of those tools. This thesis describes the Wright editor generator which is used in the synthesis of language-based graphical editors (LBGEs). An LBGE is a programming environment where the programs being manipulated denote pictures. Editing actions can be specified through both textual and graphical interfaces. Editors generated by the Wright system are specified using the formalism of attribute grammars. The major example editor in this thesis, Stick-Wright, is a design entry system for the construction of VLSI circuits. Stick-Wright is a hierarchical symbolic layout editor which exploits a combination of text and graphics in an interactive environment to provide the circuit designer with a tool for experimenting with circuit topologies. A simpler system, Pict-Wright: a picture drawing system, is also used to illustrate the attribute grammar specification process. This thesis aims to demonstrate the efficacy of formal specification in the generation of software-tools. The generated system Stick-Wright shows that a text/graphic programming environment can form the basis of a powerful VLSI design tool, especially with regard to providing the designer with immediate graphical feedback. Further applications of the LBGE generator approach to system design are given for a range of VLSI design activities

    Networks and the Development of the Irish Biotechnology Sector

    Get PDF
    Biotechnology, an umbrella term describing combinations of engineering and scientific knowledge from an array of disciplines used to produce products and processes from living organisms, has been identified as a key sector for future economic developments among industrialised and industrialising nations as it blurs traditional boundaries between various industries. The Irish Government has introduced a series of initiatives to facilitate the development of an internationally competitive indigenous biotechnology sector since the late 1990s, yet no in-depth analysis of the sector relative to international sectoral characteristics, structures, or policy themes have informed their design or implementation. This thesis analyses the Irish sector in the context of global sectoral developments by studying the Post-Fordist organisational structure of the international sector, where biotechnology firms interact with various actors at different stages of the sectoral value chain in a variety of innovative networks determined by place specific actor and institution endowments that form local knowledge communities. Through qualitatively investigating the Irish sector's actors and collaborative network structure, the thesis analyses the implications of the nature and character of these elements for the sector's future sustainability and development, and appraises existing Government policies relating to sectoral developments. The thesis found that the on-going initiatives have facilitated significant advances, yet have not addressed the legacy of pre-initiative resource and skill capacity weaknesses, while the sectoral value chain is fragmented as actors have developed poor networking arrangements due to their conservative natures, and the relative absence of key sector actors, skills and resources. These issues demonstrate that a complex overarching policy framework is required so as to engender the long-term development of a regionally tailored, systems-based support ecosystem which addresses existing structural weaknesses, and which facilitates and drives entrepreneurial and innovative activities throughout the sector's value chain

    P-Pascal : a data-oriented persistent programming language

    Get PDF
    Bibliography: pages 187-199.Persistence is measured by the length of time an object is retained and is usable in a system. Persistent languages extend general purpose languages by providing the full range of persistence for data of any type. Moreover, data which remains on disk after program termination, is manipulated in the same way as transient data. As these languages are based on general purpose programming languages, they tend to be program-centred rather than data-centred. This thesis investigates the inclusion of data-oriented features in a persistent programming language. P-Pascal, a Persistent Pascal, has been designed and implemented to develop techniques for data clustering, metadata maintenance, security enforcement and bulk data management. It introduces type completeness to Pascal and in particular shows how a type-complete set constructor can be provided. This type is shown to be a practical and versatile mechanism for handling bulk data collections in a persistent environment. Relational algebra operators are provided and the automatic optimisation of set expressions is performed by the compiler and the runtime system. The P-Pascal Abstract Machine incorporates two complementary data placement strategies, automatic updating of type information, and metadata query facilities. The protection of data types, primary (named) objects and their individual components is supported. The challenges and opportunities presented by the persistent store organisation are discussed, and techniques for efficiently exploiting these properties are proposed. We also describe the effects on a data-oriented system of treating persistent and transient data alike, so that they cannot be distinguished statically. We conclude that object clustering, metadata maintenance and security enforcement can and should be incorporated in persistent programming languages. The provision of a built-in, type-complete bulk data constructor and its non-procedural operators is demonstrated. We argue that this approach is preferable to engineering such objects on top of a language, because of greater ease of use and considerable opportunity for automatic optimisation. The existence of such a type does not preclude programmers from constructing their own bulk objects using other types - this is but one advantage of a persistent language over a database system

    Lost in translation - the nexus of multi-layered housing policy gaps : the case of Ghana

    Get PDF
    Paradigms of housing policies in developing countries have undergone significant changes since the 1940s in the post-colonial era. The involvement of international development agencies such as the World Bank and the United Nations with their substantial financial and technical resources have engendered a conventional narrative of the hegemony of paradigms sponsored by these agencies. It is in this light that the “enabling principles” of housing policy emerged as the dominant policy discourse from the 1980s. This housing paradigm -“enabling shelter policies” –was actively promoted by the World Bank and the United Nations, acting through its housing agency the UN-Habitat, for adoption by developing countries to reform their housing sectors from the 1980s. One of the main instruments of the enabling principles was the withdrawal or contraction of the state from direct housing development in preference for private sector-led and community initiatives in housing development. Government involvement in direct development of housing was conceived to be an ineffective policy choice which had little geographic impact and therefore had to give way to a systematised approach to housing delivery. Ghana was one of the first African countries to adopt these principles for the reform of the housing sector in the country. Two decades later, it has been observed that the government was making housing policy choices that contradicted the ethos of the enabling principles. In particular it was observed that the state was re-engaging in direct housing development. In the light of the past conception of these activities as being defective policies, their re-emergence was characteristic of policy “reversionism”. This concept of policy reversionism is adopted from theories of theology and criminal justice (where it is known as recidivism) in which processes of reform or progression are reversed. The question explored by the thesis is why housing policy reversionism was emerging and what were the generating factors. The thesis draws on a critical realist perspective to deconstruct the conventional narratives about the homogenous state and the hegemony of international agencies such as the World Bank and the UN in the advancement of “unproblematic” enabling principles through which the housing sector reforms were designed and implemented. In doing so the thesis established the heterogeneity of the state driven by competition for domination by sectoral, intra-state as well as supra-state interests. In this process, hegemony becomes vulnerable to manipulation as these principles were translated or “indigenised”. Furthermore it is established that this nuanced perspective is further complicated by a dialectical relationship between the contexts of events and prevailing material conditions and the actions taken by policy agents. These complexities layered the housing policy sphere in ways that masked the primary motivations of class interests and political legitimisation underpinning the incidence of reversionism

    Szenarien und Strategien für die berufliche Aus- und Weiterbildung in Europa: ein Projekt von CEDEFOP/ ETF ; deutscher Bericht

    Full text link
    Der Forschungsbericht zu der zweiten Phase des länderübergreifenden Projekts 'Szenarien und Strategien für Berufliche Aus- und Weiterbildung in Europa', das vom CEDEFOP in Thessaloniki und der ETF (European Training Foundation) in Turin gemeinsam begleitet wird, stellt in einem ersten Teilabschnitt die Ergebnisse der deutschen Teilstudie vor. Sie umfassen die Auswertungen von jeweils rund 20 Experteninterviews auf Bundesebene und aus den beiden Bundesländern Brandenburg und Nordrhein-Westfalen. Den Ausführungen vorangestellt sind die Ergebnisse der ersten Projektphase als Ausgangspunkt und ein Überblick über die Dimensionen der deutschen Szenarien für berufliche Aus- und Weiterbildung: (1) Verhältnis von allgemeiner und beruflicher Bildung, (2) Verhältnis von beruflicher Aus- und Weiterbildung, (3) Beruf, Arbeitsmarkt und Beschäftigung, (4) Institutionen, Trägerschaft (öffentlich/privat) und Finanzierung beruflicher Aus- und Weiterbildung. Thematisiert werden auf dieser Grundlage die folgenden Aspekte bzw. Szenarien: (1) die wachsende Bedeutung des regionalen Übergangsmanagement als politisches Handlungsfeld, (2) die aktuellen Trends der dualen Berufsausbildung in Form von Differenzierung, Individualisierung und Flexibilisierung, (3) die mögliche Pluralisierung der Lernformen und der Lernorte, also der Wandel vom dualen zum Mischsystem, (4) der Trend der Arbeits- und Geschäftsprozessorientierung beim berufsfeldübergreifenden Lernen, (5) der Stellenwert des Berufskollegs sowie (6) das Verhältnis öffentlicher und privater Bildungsverantwortung. Im zweiten Teilabschnitt finden sich englischsprachig die Erläuterungen über die gesamte Szenario-Methode und die Vorgehensweise für die zweite Phase. (ICG2
    corecore