666 research outputs found

    In Praise of Impredicativity: A Contribution to the Formalization of Meta-Programming

    Get PDF
    Processing programs as data is one of the successes of functional and logic programming. Higher-order functions, as program-processing programs are called in functional programming, and meta-programs, as they are called in logic programming, are widespread declarative programming techniques. In logic programming, there is a gap between the meta-programming practice and its theory: The formalizations of meta-programming do not explicitly address its impredicativity and are not fully adequate. This article aims at overcoming this unsatisfactory situation by discussing the relevance of impredicativity to meta-programming, by revisiting former formalizations of meta-programming, and by defining Reflective Predicate Logic, a conservative extension of first-order logic, which provides a simple formalization of meta-programming

    Preemptive type checking in dynamically typed programs

    No full text
    With the rise of languages such as JavaScript, dynamically typed languages have gained a strong foothold in the programming language landscape. These languages are very well suited for rapid prototyping and for use with agile programming methodologies. However, programmers would benefit from the ability to detect type errors in their code early, without imposing unnecessary restrictions on their programs.Here we describe a new type inference system that identifies potential type errors through a flow-sensitive static analysis. This analysis is invoked at a very late stage, after the compilation to bytecode and initialisation of the program. It computes for every expression the variable’s present (from the values that it has last been assigned) and future (with which it is used in the further program execution) types, respectively. Using this information, our mechanism inserts type checks at strategic points in the original program. We prove that these checks, inserted as early as possible, preempt type errors earlier than existing type systems. We further show that these checks do not change the semantics of programs that do not raise type errors.Preemptive type checking can be added to existing languages without the need to modify the existing runtime environment. We show this with an implementation for the Python language and demonstrate its effectiveness on a number of benchmarks

    Mapping the Focal Points of WordPress: A Software and Critical Code Analysis

    Get PDF
    Programming languages or code can be examined through numerous analytical lenses. This project is a critical analysis of WordPress, a prevalent web content management system, applying four modes of inquiry. The project draws on theoretical perspectives and areas of study in media, software, platforms, code, language, and power structures. The applied research is based on Critical Code Studies, an interdisciplinary field of study that holds the potential as a theoretical lens and methodological toolkit to understand computational code beyond its function. The project begins with a critical code analysis of WordPress, examining its origins and source code and mapping selected vulnerabilities. An examination of the influence of digital and computational thinking follows this. The work also explores the intersection of code patching and vulnerability management and how code shapes our sense of control, trust, and empathy, ultimately arguing that a rhetorical-cultural lens can be used to better understand code\u27s controlling influence. Recurring themes throughout these analyses and observations are the connections to power and vulnerability in WordPress\u27 code and how cultural, processual, rhetorical, and ethical implications can be expressed through its code, creating a particular worldview. Code\u27s emergent properties help illustrate how human values and practices (e.g., empathy, aesthetics, language, and trust) become encoded in software design and how people perceive the software through its worldview. These connected analyses reveal cultural, processual, and vulnerability focal points and the influence these entanglements have concerning WordPress as code, software, and platform. WordPress is a complex sociotechnical platform worthy of further study, as is the interdisciplinary merging of theoretical perspectives and disciplines to critically examine code. Ultimately, this project helps further enrich the field by introducing focal points in code, examining sociocultural phenomena within the code, and offering techniques to apply critical code methods

    Interactive Technologies for the Public Sphere Toward a Theory of Critical Creative Technology

    Get PDF
    Digital media cultural practices continue to address the social, cultural and aesthetic contexts of the global information economy, perhaps better called ecology, by inventing new methods and genres that encourage interactive engagement, collaboration, exploration and learning. The theoretical framework for creative critical technology evolved from the confluence of the arts, human computer interaction, and critical theories of technology. Molding this nascent theoretical framework from these seemingly disparate disciplines was a reflexive process where the influence of each component on each other spiraled into the theory and practice as illustrated through the Constructed Narratives project. Research that evolves from an arts perspective encourages experimental processes of making as a method for defining research principles. The traditional reductionist approach to research requires that all confounding variables are eliminated or silenced using methods of statistics. However, that noise in the data, those confounding variables provide the rich context, media, and processes by which creative practices thrive. As research in the arts gains recognition for its contributions of new knowledge, the traditional reductive practice in search of general principles will be respectfully joined by methodologies for defining living principles that celebrate and build from the confounding variables, the data noise. The movement to develop research methodologies from the noisy edges of human interaction have been explored in the research and practices of ludic design and ambiguity (Gaver, 2003); affective gap (Sengers et al., 2005b; 2006); embodied interaction (Dourish, 2001); the felt life (McCarthy & Wright, 2004); and reflective HCI (Dourish, et al., 2004). The theory of critical creative technology examines the relationships between critical theories of technology, society and aesthetics, information technologies and contemporary practices in interaction design and creative digital media. The theory of critical creative technology is aligned with theories and practices in social navigation (Dourish, 1999) and community-based interactive systems (Stathis, 1999) in the development of smart appliances and network systems that support people in engaging in social activities, promoting communication and enhancing the potential for learning in a community-based environment. The theory of critical creative technology amends these community-based and collaborative design theories by emphasizing methods to facilitate face-to-face dialogical interaction when the exchange of ideas, observations, dreams, concerns, and celebrations may be silenced by societal norms about how to engage others in public spaces. The Constructed Narratives project is an experiment in the design of a critical creative technology that emphasizes the collaborative construction of new knowledge about one's lived world through computer-supported collaborative play (CSCP). To construct is to creatively invent one's world by engaging in creative decision-making, problem solving and acts of negotiation. The metaphor of construction is used to demonstrate how a simple artefact - a building block - can provide an interactive platform to support discourse between collaborating participants. The technical goal for this project was the development of a software and hardware platform for the design of critical creative technology applications that can process a dynamic flow of logistical and profile data from multiple users to be used in applications that facilitate dialogue between people in a real-time playful interactive experience

    The Language of Paul Muldoon

    Get PDF
    This book interprets the multifarious writing of the Irish-American word wizard, Paul Muldoon, who has been described by The Times Literary Supplement as ‘the most significant English-language poet born since the second World War’. Readership: All interested in poetry and writing from Ireland and the English-speaking world, and in the enigma of language

    A cognitive model of fiction writing.

    Get PDF
    Models of the writing process are used to design software tools for writers who work with computers. This thesis is concerned with the construction of a model of fiction writing. The first stage in this construction is to review existing models of writing. Models of writing used in software design and writing research include behavioural, cognitive and linguistic varieties. The arguments of this thesis are, firstly, that current models do not provide an adequate basis for designing software tools for fiction writers. Secondly, research into writing is often based on questionable assumptions concerning language and linguistics, the interpretation of empirical research, and the development of cognitive models. It is argued that Saussure's linguistics provides an alternative basis for developing a model of fiction writing, and that Barthes' method of textual analysis provides insight into the ways in which readers and writers create meanings. The result of reviewing current models of writing is a basic model of writing, consisting of a cycle of three activities - thinking, writing, and reading. The next stage is to develop this basic model into a model of fiction writing by using narratology, textual analysis, and cognitive psychology to identify the kinds of thinking processes that create fictional texts. Remembering and imagining events and scenes are identified as basic processes in fiction writing; in cognitive terms, events are verbal representations, while scenes are visual representations. Syntax is identified as another distinct object of thought, to which the processes of remembering and imagining also apply. Genette's notion of focus in his analysis of text types is used to describe the role of characters in the writer's imagination: focusing the imagination is a process in which a writer imagines she is someone else, and it is shown how this process applies to events, scenes, and syntax. It is argued that a writer's story memory, influences his remembering and imagining; Todorov's work on symbolism is used to argue that interpretation plays the role in fiction writing of binding together these two processes. The role of naming in reading and its relation to problem solving is compared with its role in writing, and names or signifiers are added to the objects of thought in fiction writing. It is argued that problem solving in fiction writing is sometimes concerned with creating problems or mysteries for the reader, and it is shown how this process applies to events, scenes, signifiers and syntax. All these findings are presented in the form of a cognitive model of fiction writing. The question of testing is discussed, and the use of the model in designing software tools is illustrated by the description of a hypertextual aid for fiction writers

    2012 Research Day Abstract Listing

    Get PDF
    Abstracts of oral and poster presentations from student researchers, presented at UNC\u27s Annual Research Conference during Academic Excellence Week

    Technology Made Legible: A Cultural Study of Software as a Form of Writing in the Theories and Practices of Software Engineering

    Get PDF
    My dissertation proposes an analytical framework for the cultural understanding of the group of technologies commonly referred to as 'new' or 'digital'. I aim at dispelling what the philosopher Bernard Stiegler calls the 'deep opacity' that still surrounds new technologies, and that constitutes one of the main obstacles in their conceptualization today. I argue that such a critical intervention is essential if we are to take new technologies seriously, and if we are to engage with them on both the cultural and the political level. I understand new technologies as technologies based on software. I therefore suggest that a complex understanding of technologies, and of their role in contemporary culture and society, requires, as a preliminary step, an investigation of how software works. This involves going beyond studying the intertwined processes of its production, reception and consumption - processes that typically constitute the focus of media and cultural studies. Instead, I propose a way of accessing the ever present but allegedly invisible codes and languages that constitute software. I thus reformulate the problem of understanding software-based technologies as a problem of making software legible. I build my analysis on the concept of software advanced by Software Engineering, a technical discipline born in the late 1960s that defines software development as an advanced writing technique and software as a text. This conception of software enables me to analyse it through a number of reading strategies. I draw on the philosophical framework of deconstruction as formulated by Jacques Derrida in order to identify the conceptual structures underlying software and hence 'demystify' the opacity of new technologies. Ultimately, I argue that a deconstructive reading of software enables us to recognize the constitutive, if unacknowledged, role of technology in the formation of both the human and academic knowledge. This reading leads to a self-reflexive interrogation of the media and cultural studies' approach to technology and enhances our capacity to engage with new technologies without separating our cultural understanding from our political practices

    Knowledge elicitation, semantics and inference

    Get PDF
    • …
    corecore