Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 62
  1. Automated Crash Reproduction (ACR) is an area of software testing research that aims to reproduce software crashes to improve developers’ ability to debug programs.

  2. Dala is a novel capability-based programming model that ensures data-race freedom while also supporting efficient inter-thread communication.

  3. Self-hosted software language systems need to bootstrap core components such as data structure libraries, parsers, type checkers, or even compilers.

  4. Programming languages have been trapped in a world of linear textual representations fundamentally unchanged for half a century.

  5. Dala is an ``as simple as possible’’ concurrent object-oriented language designed to avoid data races.

  6. Dala is a design for a concurrent dynamic object-oriented language.

  7. Teaching fundamental aspects of computer science at pre-university levels has been a relevant topic for several years.

  8. 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.

  9. Software bugs often lead to software crashes, which cost US companies upwards of $2.08 trillion annually.

  10. 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.

  11. 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…

  12. Swipe-and-Tap Functional Programming

    Programming on touch-screen devices is notoriously difficult, with conventional programming affordances typically unavailable or unhelpful.

  13. Live 2D Compositional Programming

    This system started out as an experiment in making an obtuse programming paradigm more approachable.

  14. Blocks-based programming is a common way to teach novices how to program.

  15. 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.

  16. Concatenative languages use implicit argument passing to provide a concise expression of programs comprising many composed transformation functions.

  17. Functional Reactive Programming (FRP) is a powerful abstraction for building deterministic concurrent systems.

  18. 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.

  19. 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.

  20. Dynamic languages like Erlang, Clojure, JavaScript, and E adopted data-race freedom by design.

  21. 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.

  22. Research areas

    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.

  23. Cellular automata are simulations of cells interacting with each other based on simple rules.

  24. domejs

    domejs is a minimal proxying shortcut DOM library.

  25. Package management is instrumental for programming languages and operating systems, and yet it is neglected by both areas as an implementation detail.

  26. First-Class Dynamic Types

    Since LISP, dynamic languages have supported dynamically-checked type annotations.

  27. 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.

  28. 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.

  29. Transient Typechecks are (Almost) Free

    Transient gradual typing imposes run-time type tests that typically cause a linear slowdown.

  30. GoboLinux

    GoboLinux is a Linux distribution with an alternative filesystem hierarchy, where “the filesystem is the package manager”.

  31. Tiled Grace

    Tiled Grace is a drag-and-drop combined visual and textual editor for Grace using the Minigrace compiler as a backend.

  32. Grace

    Grace is an object-oriented programming language intended for use in education.

  33. Kihi

    Kihi is a concatenative, compositional, functional programming language with a minimal core of only six operations.

  34. Function composition is a very natural operation, but most language paradigms provide poor support for it.

  35. The Information and Communications Technology (ICT) industry in New Zealand is growing rapidly.

  36. Other Reviews

    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…

  37. Committees

    Programme and Artifact Evaluation Committees I have been or am a member of: Onward!

  38. Honours Report

    My Honours report was completed in 2010, titled Lively JavaScript, and supervised by James Noble.

  39. Slide deck All of the various tools, links, and data mentioned in the talk are below.

  40. Block-based programming environments are typically designed for desktop machines or mobile devices.

  41. 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.

  42. Wireless mesh networks (WMNs) have many attractive characteristics, such as auto-configuration, self-management, and self-healing.

  43. 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.

  44. We adapt SOMns, a Truffle-based interpreter for Newspeak, to the Grace programming language.

  45. Grace's Inheritance

    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…

  46. The Left Hand of Equals

    When is one object equal to another object?

  47. Object Inheritance Without Classes

    Which comes first: the object or the class?

  48. 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.

  49. 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.

  50. Method names with multiple separate parts are a feature of many dynamic languages derived from Smalltalk.