Group: operating system
Group: program representation
Topic: bootstrapped systems
Topic: builtin functions
Topic: computer architecture
Topic: conditional compilation
Topic: decomposition of a system into levels
Topic: design for change
Topic: function library
Topic: interface between program modules
Topic: machine independent programming
Topic: natural language translation
Topic: programming language standards
Topic: Thesa as a database of modules
Topic: renaming
Topic: reusable programming
Topic: software components
Topic: user profile
Topic: symbolic representation
Topic: virtualized hardware
Topic: virtual machine
| |
Summary
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
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
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
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
Quote: the variety of data formats for simple facts makes it difficult to interchange data between sites and applications [»kentW2_1989]
| Subtopic: language portability
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
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
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
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
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
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
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 [»boehBW_1979]
|
Related Topics
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)
|