Topic: software portability

topics > computer science > programming > Group: goals for a programming system

operating system
program representation

bootstrapped systems
builtin functions
computer architecture
conditional compilation
decomposition of a system into levels
design for change
function library
interface between program modules
machine independent programming
natural language translation
programming language standards
Thesa as a database of modules
reusable programming
software components
user profile
symbolic representation
virtualized hardware
virtual machine


Portability measures the level of a program's representation. Is the program machine independent or is it tied to a specific computer? In either case, the program must execute on a specific computer. This contradiction between generality and specificity has been a guideline in the development of Thesa. Thesa's goal is portability at the operation level, with machine independence provided by an abstract code sequence.

The normal approach to portability is to standardize an abstract machine which can be implemented on many computers. A practical, completely abstract, machine probably doesn't exist, but some attempts have been fairly successful. One of the best known is COBOL with its careful environment section and relative freedom from efficiency requirements. COBOL carefully specifies all program I/O and defines the operating system interface. Many other language systems define their operating system interface through library procedures. More portable alternatives are transportable operating systems, and bootstrapped stand-alone programming systems such as Forth and UCSD Pascal. (cbb 5/80, 1/90)

Subtopic: portability up

Quote: portability is a result of few concepts and complete definition [»palmJ5_1973, OK]
Quote: portability may measure the representation level of a program; e.g., octal code is not portable [»cbb_1973, OK]
Quote: cameras are portable with self-describing film packages, similar operating characteristics, interchangeable lenses by informal standards [»feldS_1990]
Quote: most successful portability efforts depend on an ideal system; implementations are either subsets or supersets [»feldS_1990]
Quote: for portability, the least common multiple approach is better yet more difficult than the greatest common divisor approach
Quote: current, computerized systems need finer and broader distinctions about portability (gives examples); many systems are hand-crafted [»feldS_1990]

Subtopic: integration up

Quote: C++ is just one language in a system; it must work with program fragments written in other languages [»stroB_1994]
Quote: Piccola is a composition language for expressing configuration, connectors, coordination, and glue abstractions [»acheF9_2000]
Quote: need to compose large and complex applications from separately developed parts without modification [»stroB_1994]

Subtopic: internationalization up

Quote: a software development system needs European character sets; great quote [»ljunS2_1988]
Quote: user interface call-backs often use text labels for arguments; must edit the code if the natural language changes [»myerBA11_1991]

Subtopic: data portability up

Quote: the variety of data formats for simple facts makes it difficult to interchange data between sites and applications [»kentW2_1989]

Subtopic: language portability up

Quote: wrong output despite the conversion of Cobol arithmetic into C [»tereAA11_2000]
Quote: an endless list of annoying issues for converting between programming languages; e.g., different dialects of Cobol [»tereAA11_2000]
Quote: converting programs from Cobol is difficult because of Cobol's rich set of constructions for sophisticated data-processing [»tereAA11_2000]
Quote: converting a program to another language is always difficult; particularly with semantic equivalence and a rich source language [»tereAA11_2000]
Quote: need sophisticated data type analysis to convert Cobol's fixed-length records into Visual Basic; can not use one type for all contexts [»tereAA11_2000]

Subtopic: opcode portability up

Quote: Inferno provides a complete operating system with identical, distributed applications on a wide variety of machines [»dorwSM1_1997]
Quote: .NET's common language specification (CLS) is a subset of its type system; unique, Unicode names, no static and instance methods or fields, properties, events, predefined types, closed
Quote: use the same order code for new machines since the library of subroutines may be as valuable as the machine itself
Note: opcodes define a language; a portability layer [»cbb_1990, OK]

Subtopic: computer portability up

Quote: gain machine independence through custom, abstract machines for each application [»poolPC10_1969]
Quote: an operating system should be written in a high-level language for portability [»ritcDM7_1978b]
Quote: a program is portable if it costs significantly less to modify it than to rewrite it for a different computer [»cherDR2_1979]
Quote: improved a machine-independent debugger [»hansDR8_1999]
Quote: non-portable constructs and tools restrict a project to older computers [»stroB_1991]

Subtopic: testing for portability up

Quote: a good test program is crucial for implementing machine independent macros [»poolPC10_1969]
Quote: SQL comparison across database systems not effective for testing NULL, strings, and numeric type coercion; needed for portability [»slutD8_1998, OK]

Subtopic: configuration up

Quote: C's INT_MAX limit effects the design of a program but rarely leads to errors [»ritcDM_1996]
Quote: a manuscript should refer to files through indirect symbolic names; prevents dependence on a particular installation [»reidBK_1980]
Quote: should not compile configuration information into code; avoids recompilation, avoids minor modifications [»allmE7_1983]
Quote: DIALOGUE can use advanced terminal features because its Record definition language does not specify form presentation [»vaskD_1982]
Quote: Scribe has a database of definitions for producing a document type on a printing device [»reidBK_1980]

Subtopic: examples up

Quote: Thoth is the first operating system designed for portability [»cherDR2_1979]
Quote: PL.8 was highly portable; most bugs occurred on all machines
Quote: Forth is easy to port because of the small size of its kernel [»rathED10_1976]
Quote: BCPL was designed as a portable language [»richM_1974, OK]
Quote: Amoeba implements remote procedure calls on each processor and in UNIX; allows transparent use of Amoeba [»vanrR10_1988]
Quote: Scribe is a successful page formatter; portable and easily taught [»reidBK_1980]
QuoteRef: ganaM10_1981 ;;Bibliography on automated retargetable code generation
Quote: C++ is a superset of C

Subtopic: limitations of portability up

Quote: domain code is easy to port while presentation code is tied to the operating system and hardware [»fowlM3_2001]
Quote: users tend to compensate for deficiencies in software; these habits are difficult to change once established

Related Topics up

Group: operating system   (27 topics, 924 quotes)
Group: program representation   (25 topics, 659 quotes)

Topic: bootstrapped systems (7 items)
Topic: builtin functions (6 items)
Topic: computer architecture (46 items)
Topic: conditional compilation (1 item)
Topic: decomposition of a system into levels (49 items)
Topic: design for change (76 items)
Topic: function library (50 items)
Topic: interface between program modules (55 items)
Topic: machine independent programming (13 items)
Topic: natural language translation (8 items)
Topic: programming language standards (10 items)
Topic: Thesa as a database of modules (23 items)
Topic: renaming (10 items)
Topic: reusable programming (77 items)
Topic: software components (11 items)
Topic: user profile (16 items)
Topic: symbolic representation (26 items)
Topic: virtualized hardware (5 items)
Topic: virtual machine
(13 items)

Updated barberCB 9/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.