• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 3
  • Tagged with
  • 3
  • 3
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

ElmSr: A Structure Editor for Elm

Osmani, Narges January 2024 (has links)
Structure editors have been available for many decades, and for multiple programming languages. Historically, they have been recommended for teaching new programmers. Currently, they are recommended by advocates of Model Driven Development. However, they are not widely used, except for the special case of graphical structure editors commonly referred to as "block-based editors" such as Scratch. Although structure editors were first introduced for procedural languages, and they could be used for any type of language, current structure editors target object-oriented languages, almost exclusively, and build in many assumptions related to object orientation. The notable exception, Hazel, targets a functional language, exploits the strong typing typical of functional languages and emphasizes the use of typed holes. This thesis introduces ElmSr, a structure editor developed for teaching the Elm programming language to novice programmers. As with most structure editors, ElmSr allows the developer to directly edit the Abstract Syntax Tree, without the intermediary of a compiler. As with Hazel, ElmSr's AST is typed, and transformations preserve types. Also typical of tree editors written in functional languages, ElmSr uses a zipper data structure to encode both the tree and a cursor position, making for efficient tree edits. Like other structure editors, ElmSr is designed to make common tasks simple and efficient. In our case, common tasks match the steps students are taught in the "Algebraic Thinking" curriculum developed at McMaster University. Some steps are common to almost all programming, such as arithmetic expression entry and modification (which has been previously identified as a weak point for structure editors). Other steps, like definition integration, and support for function calls and control structures are specific to our curriculum. This aspect of usability was evaluated by comparing the number of keystrokes necessary for a benchmark task, using ElmSr, using VS Code following our structured development approach, and using VS Code solely for text entry. ElmSr was much more efficient than VS Code for structured editing, and still more efficient than linear code entry. / Thesis / Master of Science (MSc)
2

Formalisation of edit operations for structure editors

Holmquist, Johan January 2005 (has links)
<p>Although several systems with structure editors have been built, no model exist to formally describe the edit operations used in such editors. This thesis introduces such a model --- a formalism to describe general structure edit operations for text oriented documents. The model allows free bottom-up editing for any tree-based structural document with a textual content. It can also handle attribute and erroneous structures. Some classes of common structures have been identified and structure editor specifications constructed for them, which can be used and combined in the creation of other structure editors.</p>
3

Formalisation of edit operations for structure editors

Holmquist, Johan January 2005 (has links)
Although several systems with structure editors have been built, no model exist to formally describe the edit operations used in such editors. This thesis introduces such a model --- a formalism to describe general structure edit operations for text oriented documents. The model allows free bottom-up editing for any tree-based structural document with a textual content. It can also handle attribute and erroneous structures. Some classes of common structures have been identified and structure editor specifications constructed for them, which can be used and combined in the creation of other structure editors.

Page generated in 0.0437 seconds