Results 1 -
9 of
9
Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers
- ACM COMPUT. SURV
, 2005
"... Since the early 1960’s, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice pr ..."
Abstract
-
Cited by 61 (2 self)
- Add to MetaCart
Since the early 1960’s, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages. The systems are organized by their primary goal, either to teach programming or to use programming to empower their users, and then, by each system’s authors ’ approach, to making learning to program easier for novice programmers. The article explains all categories in the taxonomy, provides a brief description of the systems in each category, and suggests some avenues for future work in novice programming environments and languages.
Modeling and Forecasting the Information Sciences
- Information Sciences
, 1991
"... A model of the development of the information sciences is described and used to account for past events and predict future trends, particularly fifth and sixth generation priorities. The information sciences came into prominence as electronic device technology enabled the social need to cope with an ..."
Abstract
-
Cited by 16 (3 self)
- Add to MetaCart
A model of the development of the information sciences is described and used to account for past events and predict future trends, particularly fifth and sixth generation priorities. The information sciences came into prominence as electronic device technology enabled the social need to cope with an increasingly complex world to be satisfied. Underlying all developments in computing is a tiered succession of learning curves which make up the infrastructure of the computing industry. The paper provides a framework for the information sciences based on this logical progression of developments. It links this empirically to key events in the development of computing. It links it theoretically to a model of economic, social, scientific and individual development as related learning processes with a simple phenomenological model. The fifth generation development program with its emphasis on human-computer interaction and artificial intelligence, and the sixth generation research program with...
On designing a language for electronic commerce
- International Journal of Electronic Commerce
, 1997
"... This paper surveys practical issues in the design of a formal language for business communication (FLBC) in which transactions are put together by combining meaningful elements, much as a programming language encodes algorithms. Such a language is preferable to existing codes such as ANSI X12 and UN ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This paper surveys practical issues in the design of a formal language for business communication (FLBC) in which transactions are put together by combining meaningful elements, much as a programming language encodes algorithms. Such a language is preferable to existing codes such as ANSI X12 and UN EDIFACT because of its much greater versatility. The new language is tentatively named LEC (Language for Electronic Commerce). 1 The problem 1.1 Why a new language? Electronic data interchange (EDI) is the automated exchange between computers of the messages needed to carry out business transactions. Examples include electronic funds transfers, purchase orders, invoices, and various kinds of administrative information. EDI users range from corporations to armed forces to museums and libraries. Present-day EDI messages look like Figure 1, and I want to make them look like Figure 2. The difference is more than cosmetic. Current EDI 1
Relationships for object-oriented programming languages
"... This thesis is submitted for the degree of Doctor of Philosophy Object-oriented approaches to software design and implementation have gained enormous popularity over the past two decades. However, whilst models of soft-ware systems routinely allow software engineers to express relationships between ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This thesis is submitted for the degree of Doctor of Philosophy Object-oriented approaches to software design and implementation have gained enormous popularity over the past two decades. However, whilst models of soft-ware systems routinely allow software engineers to express relationships between objects, object-oriented programming languages lack this ability. Instead, rela-tionships must be encoded using complex reference structures. When the model cannot be expressed directly in code, it becomes more difficult for programmers to see a correspondence between design and implementation — the model no longer faithfully documents the code. As a result, programmer intuition is lost, and error becomes more likely, particularly during maintenance of an unfamiliar software system. This thesis explores extensions to object-oriented languages so that relation-ships may be expressed with the same ease as objects. Two languages with rela-tionships are specified: RelJ, which offers relationships in a class-based language
Teaching History of Programming Languages to Undergraduate Students,” Frontiers in Education
, 1998
"... Abstract-More emphasis should be placed on the history of computing in university curricula. The area of Programming Languages is no exception and has lots of history to study. This paper discusses the approach followed to study the history of programming languages ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract-More emphasis should be placed on the history of computing in university curricula. The area of Programming Languages is no exception and has lots of history to study. This paper discusses the approach followed to study the history of programming languages
Summary A Virtual Machine Framework for Domain-Specific Languages
, 2007
"... Experts in a field regularly apply a defined set of rules or procedures to carry out a problem-solving task or analysis on a given problem. Often the problem can be represented as a computer model, be it mathematical, chemical, or physics based, and so on. It would certainly be advantageous for a do ..."
Abstract
- Add to MetaCart
Experts in a field regularly apply a defined set of rules or procedures to carry out a problem-solving task or analysis on a given problem. Often the problem can be represented as a computer model, be it mathematical, chemical, or physics based, and so on. It would certainly be advantageous for a domain expert who is not proficient in software development to express solutions to problems in a domain-specific notation that can be executed as a program. Many new ideas aim to make software development easier and shift the development role closer to the end-user. One such means of development is the use of a small, intuitive programming language called a Domain-Specific Language (DSL.) This dissertation examines a generic approach to constructing a Virtual Machine (VM) to provide the runtime semantics for a particular DSL. It proposes a generic, object-oriented framework, called a VM Framework, in which to build a VM by subtyping abstract instruction and environment classes that are part of the VM Framework. The subtyped classes constitute an environment and an interface called an instruction set architecture and the instructions can access and operate on the environment in a deterministic way to provide the runtime semantics of a DSL program. Both instruction classes and environment classes encapsulate
Functions, Frames, and Interactions -- completing a λ-calculus-based purely functional language with respect to programming-in-the-large and interactions with runtime environments
, 1998
"... The original aim of the work that led to this dissertation was to extend an existing, purely functional language with facilities for input/output and modular programming. The language is based on an untyped -calculus, i.e., program execution is defined as program transformation according to a fixed ..."
Abstract
- Add to MetaCart
The original aim of the work that led to this dissertation was to extend an existing, purely functional language with facilities for input/output and modular programming. The language is based on an untyped -calculus, i.e., program execution is defined as program transformation according to a fixed set of reduction rules including fi-reduction. Consistently, the implementation comprises an interactive reduction system which is integrated with a syntax-oriented editor: any sub-expression or program result can be submitted for (stepwise) reduction. There is no distinguished main program, no `global' environment and no explicit static part of the language -- in particular, there is no static type system. It is therefore not clear how to add one of the known solutions for input/output or modular programming to such a programming environment. Furthermore, simply adding features to the language would lead to a complex language design with weakly integrated parts, thus losing much of the appe...
Threaded Language As a Form of Partial Evaluator
"... This work describes a class of language called Threaded Language and its implementation. An interpreter for this language allows it to be easily extended. Higher order functions and local variables are introduced into the language as extensions. Exploiting the dynamic nature of an interpreter, it is ..."
Abstract
- Add to MetaCart
This work describes a class of language called Threaded Language and its implementation. An interpreter for this language allows it to be easily extended. Higher order functions and local variables are introduced into the language as extensions. Exploiting the dynamic nature of an interpreter, it is shown how to do a program transformation. Using the "unfold " technique, a partial evaluation in this language is demonstrated. The partial evaluation generates a specialised version of the input program that runs faster. Finally, the implication of using this language to bootstrap a language on a new environment is discussed. Key Words: threaded language, partial evaluation 1.

