Creează un cont pentru a te abona la acest blog și a-i urmări articolele pe pagina Lectură.
-
Automated Crash Reproduction (ACR) is an area of software testing research that aims to reproduce software crashes to improve developers’ ability to debug programs.
-
Dala is a novel capability-based programming model that ensures data-race freedom while also supporting efficient inter-thread communication.
-
Self-hosted software language systems need to bootstrap core components such as data structure libraries, parsers, type checkers, or even compilers.
-
Programming languages have been trapped in a world of linear textual representations fundamentally unchanged for half a century.
-
Dala is an ``as simple as possible’’ concurrent object-oriented language designed to avoid data races.
-
Dala is a design for a concurrent dynamic object-oriented language.
-
Teaching fundamental aspects of computer science at pre-university levels has been a relevant topic for several years.
-
Concatenative programming inherently expresses composition of sub-tasks of a pipeline, but one uncommonly seen model of this paradigm includes all data values inline within the program.
-
Software bugs often lead to software crashes, which cost US companies upwards of $2.08 trillion annually.
-
jq is a widely-used command-line tool for filtering and transforming JSON data, in the vein of sed and awk, including a bespoke programming language for writing the filters.
-
Many tasks that end users want to accomplish with a computer program are fundamentally data-flow transformations, and both visual and textual programming systems have been created to fill this need, but these are often inflexible, unapproachable, or cumbe…
-
Programming on touch-screen devices is notoriously difficult, with conventional programming affordances typically unavailable or unhelpful.
-
This system started out as an experiment in making an obtuse programming paradigm more approachable.
-
Blocks-based programming is a common way to teach novices how to program.
-
Data engineering pipelines process large amounts of information, and ensuring that the quality and integrity of the data is maintained throughout is critical for technical, business, and social reasons.
-
Concatenative languages use implicit argument passing to provide a concise expression of programs comprising many composed transformation functions.
-
Functional Reactive Programming (FRP) is a powerful abstraction for building deterministic concurrent systems.
-
Creating a program that performs even a simple task and shows the result is unapproachable to most people, and even trained programmers face a burden to create a new program.
-
This paper is a partial reproduction of work by Soltani et al. which presented EvoCrash, a tool for replicating software failures in Java by reproducing stack traces.
-
Dynamic languages like Erlang, Clojure, JavaScript, and E adopted data-race freedom by design.
-
Transient gradual type systems often depend on type-based cast insertion to achieve good performance: casts are inserted whenever the static checker detects that a dynamically-typed value may flow into a statically-typed context.
-
Hybrid and visual programming interfaces I created Tiled Grace, the first dual-mode block-based/textual hybrid programming system, and continue to explore further interfaces for programming beyond the conventional lines-of-text editor.
-
Cellular automata are simulations of cells interacting with each other based on simple rules.
-
domejs is a minimal proxying shortcut DOM library.
-
Package management is instrumental for programming languages and operating systems, and yet it is neglected by both areas as an implementation detail.
-
Since LISP, dynamic languages have supported dynamically-checked type annotations.
-
One form of type checking used in gradually typed language is transient type checking: whenever an object “flows” through code with a type annotation, the object is dynamically checked to ensure it has the methods required by the annotation.
-
With the increasing need to teach programming to novices using collaborative methods like pair programming, it is important to understand how different input devices can help support collaborative learning.
-
Transient gradual typing imposes run-time type tests that typically cause a linear slowdown.
-
GoboLinux is a Linux distribution with an alternative filesystem hierarchy, where “the filesystem is the package manager”.
-
Tiled Grace is a drag-and-drop combined visual and textual editor for Grace using the Minigrace compiler as a backend.
-
Grace is an object-oriented programming language intended for use in education.
-
Kihi is a concatenative, compositional, functional programming language with a minimal core of only six operations.
-
Function composition is a very natural operation, but most language paradigms provide poor support for it.
-
The Information and Communications Technology (ICT) industry in New Zealand is growing rapidly.
-
Journals I have undertaken reviews for in this PBRF cycle: Journal of Computer Languages (2025) SoftwareX (2022) Journal of Computer Languages (2022) Journal of Computer Languages (2019) Grant and other reviews Invited referee for Netherlands Resarch Offi…
-
Programme and Artifact Evaluation Committees I have been or am a member of: Onward!
-
My Honours report was completed in 2010, titled Lively JavaScript, and supervised by James Noble.
-
Slide deck All of the various tools, links, and data mentioned in the talk are below.
-
Block-based programming environments are typically designed for desktop machines or mobile devices.
-
IEEE 802.11 wireless backhaul networks (WBNs) have emerged as a practical solution for bridging access points and backbone networks with low cost and ease of installation.
-
Wireless mesh networks (WMNs) have many attractive characteristics, such as auto-configuration, self-management, and self-healing.
-
Tiled Grace is a block-based programming system backed by a conventional textual language that allows switching back and forth between block-based and textual editing of the same code at any time.
-
We adapt SOMns, a Truffle-based interpreter for Newspeak, to the Grace programming language.
-
This article is an apologia for the design of inheritance in the Grace educational programming language: it explains how the design of Grace’s inheritance draws from inheritance mechanisms in predecessor languages, and defends that design as the best of t…
-
When is one object equal to another object?
-
Which comes first: the object or the class?
-
The gradual guarantee lets us understand gradual typing: a system is gradually typed if removing a type annotation cannot change the semantics of a correct program.
-
The aspiration of gradual typing — that typed and untyped code can coexist happily, with errors reported at runtime when the types are found to be wrong — has led many languages, including our own, to adopt the paradigm.
-
Method names with multiple separate parts are a feature of many dynamic languages derived from Smalltalk.