Frame-based editor

Last updated
Frame-based editor
Stride-screen.png

A frame-based editor is a specific kind of structure editor, typically used as a source code editor for the manipulation of computer programs. Program elements are represented by frames, which form the standard atomic unit of manipulation in the editor.

Contents

Frames in the editor represent nodes in the underlying syntax tree of the language being written, such as simple statements, control structures, or methods, and are manipulated as single entities in the user interface.

The representation of frame-based programs on screen makes use of graphical and textual elements. Most fundamentally, scope is presented by graphical boxes (the "frames" that give these editors their name), but other graphical elements, including color and graphical presentation, are also employed. Manipulation of frames in frame-based editors is typically supported equally via mouse-based gestures and keyboard manipulation.

Origin

The concept of Frame-based editing was developed at King's College London as a combination of features of standard text editors and block-based editing systems, such as Blockly and Scratch. [1] The concept attempts to merge beneficial aspects of block and text programming in a single system. [2]

Relation to block-based editors and text editors

Frame-based editors are technically hybrid structure/text editors which support editing at the higher level of the syntax tree in structure mode, while allowing expression edits in text mode. [3] They copy a number of concepts from block-based editors, such as the graphical representation of statements, which are manipulated as atomic units, presented graphically with distinct colouring, can be dragged-and-dropped with mouse gestures, and the provision of statement palettes from which statements may be chosen.

Other elements are modelled on traditional text editors, such as display of the program as linear text, keyboard-driven editing, and free-form editing at the expression level.

An academic study has compared effectiveness of frame-based editors to text editors for beginning programmers. [4]

Application

Currently, frame-based editors are used in educational systems to facilitate entry into programming for novice programmers, or to support the transition for learners from educational block-based systems, such as App Inventor, Scratch, Snap!, or Alice, to professional, text based programming environments. [5]

Theoretically, these types of editors can be used for manipulation of any structured text, including computer programs, web pages, and XML files. The editor benefits especially non-professional users, such as novices or casual programmers, due to its support for discoverability of statements and reduction of syntax errors.

Examples

Two examples of frame-based editors are the BlueJ and Greenfoot educational development environments. Both support frame-based editing for the Stride programming language. [6]

Related Research Articles

Computer programming is the process of performing particular computations, usually by designing and building executable computer programs. Programming involves tasks such as analysis, generating algorithms, profiling algorithms' accuracy and resource consumption, and the implementation of algorithms. The source code of a program is written in one or more languages that are intelligible to programmers, rather than machine code, which is directly executed by the central processing unit. The purpose of programming is to find a sequence of instructions that will automate the performance of a task on a computer, often for solving a given problem. Proficient programming thus usually requires expertise in several different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.

An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

<span class="mw-page-title-main">Macro (computer science)</span> Rule for substituting a set input with a set output

In computer programming, a macro is a rule or pattern that specifies how a certain input should be mapped to a replacement output. Applying a macro to an input is known as macro expansion. The input and output may be a sequence of lexical tokens or characters, or a syntax tree. Character macros are supported in software applications to make it easy to invoke common command sequences. Token and tree macros are supported in some programming languages to enable code reuse or to extend the language, sometimes for domain-specific languages.

<span class="mw-page-title-main">Programming language</span> Language for communicating instructions to a machine

A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.

PL/I is a procedural, imperative computer programming language initially developed by IBM. The PL/1 ANSI standard, X3.53-1976, was published in 1976. It is designed for scientific, engineering, business and system programming. It has been in continuous use by academic, commercial and industrial organizations since it was introduced in the 1960s.

<span class="mw-page-title-main">Text editor</span> Computer software used to edit plain text documents

A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code.

<span class="mw-page-title-main">Syntax highlighting</span> Tool of editors for programming, scripting, and markup

Syntax highlighting is a feature of text editors that is used for programming, scripting, or markup languages, such as HTML. The feature displays text, especially source code, in different colours and fonts according to the category of terms. This feature facilitates writing in a structured language such as a programming language or a markup language as both structures and syntax errors are visually distinct. This feature is also employed in many programming related contexts, either in the form of colorful books or online websites to make understanding code snippets easier for readers. Highlighting does not affect the meaning of the text itself; it is intended only for human readers.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

<span class="mw-page-title-main">Code folding</span> Tool of editors for programming, scripting and markup

Code or text folding, or less commonly holophrasting, is a feature of some graphical user interfaces that allows the user to selectively hide ("fold") or display ("unfold") parts of a document. This allows the user to manage large amounts of text while viewing only those subsections that are currently of interest. It is typically used with documents which have a natural tree structure consisting of nested elements. Other names for these features include expand and collapse, code hiding, and outlining. In Microsoft Word, the feature is called "collapsible outlining".

<span class="mw-page-title-main">Graphical widget</span> Element of interaction in a graphical user interface

A graphical widget in a graphical user interface is an element of interaction, such as a button or a scroll bar. Controls are software components that a computer user interacts with through direct manipulation to read or edit information about an application. User interface libraries such as Windows Presentation Foundation, Qt, GTK, and Cocoa, contain a collection of controls and the logic to render these.

IMP is an early systems programming language that was developed by Edgar T. Irons in the late 1960s through early 1970s, at the National Security Agency (NSA). Unlike most other systems languages, IMP supports syntax-extensible programming.

<span class="mw-page-title-main">OpenEdge Advanced Business Language</span> Business application development language

OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation (PSC). The language, typically classified as a fourth-generation programming language, uses an English-like syntax to simplify software development. The language was called PROGRESS or Progress 4GL up until version 9, but in 2006 PSC changed the name to OpenEdge Advanced Business Language in order to overcome a presumed industry perception that 4GLs were less capable than other languages. A subset of the language, called SpeedScript, is used in the development of web applications.

<span class="mw-page-title-main">SK8 (programming language)</span>

SK8 was a multimedia authoring environment developed in Apple's Advanced Technology Group from 1988 until 1997. It was described as "HyperCard on steroids", combining a version of HyperCard's HyperTalk programming language with a modern object-oriented application platform. The project's goal was to allow creative designers to create complex, stand-alone applications. The main components of SK8 included the object system, the programming language, the graphics and components libraries, and the Project Builder, an integrated development environment.

<span class="mw-page-title-main">Snippet (programming)</span> Small region of re-usable source code, machine code, or text

Snippet is a programming term for a small region of re-usable source code, machine code, or text. Ordinarily, these are formally defined operative units to incorporate into larger programming modules. Snippet management is a feature of some text editors, program source code editors, IDEs, and related software. It allows the user to avoid repetitive typing in the course of routine edit operations.

<span class="mw-page-title-main">Greenfoot</span>

Greenfoot is an integrated development environment using Java or Stride designed primarily for educational purposes at the high school and undergraduate level. It allows easy development of two-dimensional graphical applications, such as simulations and interactive games.

The SemWare Editor (TSE) is a text editor computer program for MS-DOS, OS/2, Windows and Linux.

A structure editor, also structured editor or projectional editor, is any document editor that is cognizant of the document's underlying structure. Structure editors can be used to edit hierarchical or marked up text, computer programs, diagrams, chemical formulas, and any other type of content with clear and well-defined structure. In contrast, a text editor is any document editor used for editing plain text files.

Emacs, originally named EMACS, is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, is ongoing; its latest version is 29.1, released July 2023.

<span class="mw-page-title-main">Goto</span> One-way control statement in computer programming

Goto is a statement found in many computer programming languages. It performs a one-way transfer of control to another line of code; in contrast a function call normally returns control. The jumped-to locations are usually identified using labels, though some languages use line numbers. At the machine code level, a goto is a form of branch or jump statement, in some cases combined with a stack adjustment. Many languages support the goto statement, and many do not.

The following outline is provided as an overview of and topical guide to the Perl programming language:

References

  1. Kölling, Michael; Brown, Neil C. C.; Altadmri, Amjad (July 2017). "Kölling, Brown & Altadmri: Frame-Based Editing". Journal of Visual Languages and Sentient Systems. 3: 40–67. doi: 10.18293/VLSS2017-009 . Retrieved 2019-01-27.
  2. Brown, Neil Cc C.; Altadmri, Amjad; Kölling, Michael (31 March 2016). "Frame-Based Editing: Combining the Best of Blocks and Text Programming". 2016 International Conference on Learning and Teaching in Computing and Engineering (LaTICE). pp. 47–53. doi:10.1109/LaTiCE.2016.16. ISBN   978-1-5090-2504-6. S2CID   18128297.
  3. "Frame-Based Editing (web site)".
  4. Price, Thomas W.; Brown, Neil C.C.; Lipovac, Dragan; Barnes, Tiffany; Kölling, Michael (25 August 2016). "Evaluation of a Frame-based Programming Editor" (PDF). Proceedings of the 2016 ACM Conference on International Computing Education Research: 33–42. doi:10.1145/2960310.2960319. ISBN   9781450344494. S2CID   3690159 . Retrieved 14 November 2022.
  5. Kölling, Michael; Brown, Neil Christopher Charles (9 November 2015). "Frame-Based Editing: Easing the Transition from Blocks to Text-Based Programming". The 10th Workshop in Primary and Secondary Computing Education (Wipsce 2015). doi:10.1145/2818314.2818331. S2CID   15209878.
  6. "The Stride Programming Language" . Retrieved 2019-01-27.