PORTABILITY: AN ANNOTATED BIBLIOGRAPHY
Dept. of Computer Science and
West Virginia University
Jan. 25, 1999
- Alverson, G., and Notkin, D., Program Structuring for
Effective Parallel Portability, IEEE Trans. on Parallel
and Distr. Sys., V. 4, N 9, Sept. 1993, pp. 1041-1059.
- Describes a representation for portable parallel programs
called Chameleon, designed to support portability in explicitly
parallel programs based on interval and tree-structured algorithms,
for shared-memory architectures.
- Ballarin, E., et al, Making a Compiler Easily Portable.
IEEE Software, 5, 3, May 1988, pp. 30-38.
- Describes techniques for designing compilers for improved
portability developed at the Swiss Federal Institute of Technology.
Includes an early proposal for a standard operating system interface.
- Bentley, M., The Viewport Technician: A Guide to Portable
Software Design. Scott, Firesman & Co., Glenview IL,
- Covers techniques for porting software across a number of
small computer environments while making use of their various
GUIs. Environments include Windows, Macintosh, Gem, Amiga, and
Apple IIGS. Details are dated now but the principles remain useful.
- Blackham, G. Building Software for Portability. Dr.
Dobb's Journal of Software Tools 13, 12 (Dec. 1988),
- Describes experience in porting a wordprocessor to 12 different
environments, relying on a modular structure with replaceable
- Blinn, B. Portable Shell Programming. Prentice-Hall
PTR, Upper Saddle River, NJ, 1996.
- A good treatment of UNIX Shell programming, for portability
across many different UNIX versions. Includes detailed analysis
of many troublesome differences among current UNIX versions.
All scripts are based on the Bourne (original) shell, since it
is universally available. Software included.
- Bodenstab, D.E., et al, Unix OS Porting Experiences.
In UNIX system readings and applications. Prentice Hall,
pp. 185-206, 1987.
- A practical discussion of experiences in porting UNIX to
several different environments.
- Bradberry, J.L., Designing Portable User Interfaces,
Dr. Dobb's J., 17, 11, Nov. 1992, pp. 58 ff.
- Discusses user interface issues encountered in porting a
C application from DOS to UNIX. The author believes that good
design choices facilitated the port.
- Brandreth, M., All for one and one for all. Phys.
World, 5, 6, June 1992, pp. 47-50.
- A brief overview of TDF, an Architecture Neutral Distribution
Format (ANDF) developed by the Defense Research Agency in the
U.K. This is a low-level generic representation which offers
a common target model for compilers that can be efficiently translated
for specific architectures.
- Brown, P.J., (ed),Software Portability, Cambridge
University Press, Cambridge, England, 1977.
- This is a classic early work on portability. Presents notes
from an advanced course held in 1976. Many of the details are
dated but it remains an excellent overall treatment of portability
- Campbell, F. The portable UCSD p-System. Microprocessors
and Microsystems 7, 8 (Oct. 1983), pp. 394-398.
- An overview of the UCSD Pascal system, which consists of
a portable programming environment and compiler producing a common
intermediate code called p-code.
- Cargill, C.F. Information Technology Standardization:
Theory, Practice, and Organizations, Digital Press, Bedford,
- A comprehensive overview of standardization activities and
organizations in the computing field.
- Cheriton, D.R., et al, Thoth, a Portable Real-Time Operating
System. Communications of the ACM 22, 2 (Feb.
1979), pp. 105-115
- Describes the structure of a portable OS called Thoth, implemented
on TI 990/10 and DG Nova/2 minicomputers.
- Cheriton, D.R., UIO: A Uniform I/O System Interface for
Distributed Systems. .TOCS 5, 1 (Feb. 1987),
- Discussion of the requirements of a standard interface for
I/O functions, and its implementation in the V Kernel..
- Collis, B.A., et al, eds, Special Issue: Educational Software
Portability, J. of Res. on Computing in Education, 23,
2 (Winter 1990).
- A comprehensive collection of papers on software portability
issues for educational software, especially intended for use
in K-12 classrooms. Although focused on a particular application
domain, this is an excellent treatment of portability issues
in general. Contributions from a number of different countries
give a broad international perspective.
- Cook, R. and Brandon, J., The PICK Operating System, Part
2: System Control. .BYTE 9, 12 (Nov. 1984),
pp. 132 ff
- A structural description of the Pick system, including its
strategy for portability.
- Cox, G.W. Portability and adaptability in operating system
design, Ph.D. dissertation, Purdue University, Lafayette,
- A PhD thesis discussing issues involved in incorporating
portability in the design of opertating systems.
- Dahlstrand, I. Software Portability and Standards,
Ellis Horwood, Chichester, England (1984).
- A book covering several aspects of portability.
- DuBois, P. Software Portability with imake.
O'Reilly & Associates, Sebastopol, CA, 1993.
- This book describes the use of imake, a public-domain
version of the well-known Unix make utility. This facilitates
porting in that it automates the procedures for configuring software
for specific environments.
- Feldman, S., and Gentleman, W., Portability -- A No Longer
Solved Problem. ISO/IEC JTC1/TSG-1 working document N205,
- An interesting commentary discussing why the portability
problem is not as easily solved as may have been thought in the
- Geist, A., et al, PVM: Parallel Virtual Machine. M.I.T.
Press, Cambridge, MA, 1994.
- A user's guide and tutorial for network parallel computing
using the PVM package.
- Giencke, P., Portable C++. McGraw Hill, New York,
- A lively discussion of practical issues to consider in writing
portable C++ programs, especially for porting between Unix and
Windows. Includes a chapter on portable GUIs. Informal but useful.
- Gropp, W., Lusk, E., and Skjellum, A., Using MPI.
M.I.T. Press, Cambridge, MA, 1994.
- An introduction and tutorial on the use of the MPI message
passing standard. Includes information on MPICH, a public domain
implementation for a variety of environments.
- Hamlet, R.G. and Haralick, R.M. Transportable Package
Software. Software -- Practice and Experience 10(1980),
- Discussion of issues in porting numerical packages written
in FORTRAN. Proposes a common OS interface for each environment.
Includes an extended image-processing example.
- Henderson, J., Software Portability, Gower Technical
- A somewhat informal but comprehensive overview of available
methods for enhancing portability.
- Koelbel, C.H., et al, The High Performance Fortran Handbook.
M.I.T. Press, Cambridge, MA, 1994.
- A comprehensive guide to the use of the latest portable high-performance
version of the FORTRAN language.
- Lane, M.G. and Mooney, J.D. A Practical Approach to Operating
Systems, PWS-Kent: Boston (1989).
- A general operating system text, which includes a discussion
of portability and standardization issues, especially as related
to operating system design., in Chapter 20. Out of print; new
edition in preparation (contact the authors).
- Lapin, J.E., Portable C and Unix System Programming.
Prentice Hall, 1987.
- Discusses issues for portable programming across UNIX environments.
- LeCarme, O. and Gart, M.P. Software Portability, 2nd
ed., McGraw-Hill, (1989).
- An overview of portability problems, with some interesting
commercial case studies. This edition was apparently withdrawn
shortly after publication; an earlier edition without
the case studies is still available.
- Lowe, A., Porting Unix Applications to Windows NT, Macmillan
Technical Publishing, 1997.
- A thorough treatment of problems and issues that arise in
porting Unix applications to an NT environment.
- Merusi, D.E., Software Implementation Techniques.
Digital Press, 1992.
- A comprehensive and detailed discussion of issues involved
in migrating software across four environments: VMS, Unix, OS/2,
and MS-DOS. Systems issues are stressed, and topics include interrupts,
networking, security, user interfaces, etc.
- Mooney, J.D. Lessons from the MOSI Project. Computer
Standards and Interfaces 5(1986), 201-210.
- Suggests some guidelines for software standardization projects
based on experiences with the MOSI operating system interface
- Mooney, J.D. Pitfalls on the Road to Portability.
Proc. First Software Portability Symposium, TRON Association,
Tokyo, Japan, 1990, Invited Papers Supplement, pp. 17-32.
- Suggests some guidelines for software standardization projects
based on experiences with the MOSI operating system interface
- Mooney, J.D. Strategies for Supporting Application Portability.
IEEE Computer 23, 11 (Nov 1991), pp. 59-70.
- A survey of issues in the design of computing environments
to support application portability.
- Mooney, J.D. A Course in Software Portability, Proc.
23rd SIGCSE Tech. Symp., March 1992, pp. 163-167.
- Describes a course on the subject of software portability
developed by the author at West Virginia University.
- Mooney, J., Portability and Reusability: Common Issues
and Differences. Proc. ACM CSC 95, pp. ???
- A discussion of relationships between portability research
and reuse research.
- Muchnick, V.B., et al, F-code and its implementation:
a portable software platform for data parallelism. Computing
J., 36, 8, pp. 712-22 (1993).
- Presents a discussion of Portable Software Platforms (PSPs),
which are intermediate levels for compilers. F-code, a specific
PSP, is designed for computational, potentially data parallel,
- Murray-Lasso, M., Cultural and Social Constraints on Portability,
ISTE J. of Research on Computing in Education, V23, N2,
Winter 1990, pp. 253-271.
- An excellent analysis of the impact of cultural considerations
on transnational software portability, especially when moving
from advanced to less developed countries.
- Myers, D., Porting a new microcomputer operating system.
Microprocessors and Microsystems 7, 8 (Oct. 1983),
- Describes the porting of MS-DOS 2.0 to the British Microframe
microcomputer system. The complete system was adapted in about
- Neal, D. and Wallentine, V. Experiences with the Portability
of Concurrent PASCAL. Software -- Practice and Experience
- Describes the porting of Concurrent PASCAL from a PDP-11
standalone environment to an Interdata 8/32 OS/32-MT environment.
Differences in addressing were a major obstacle.
- Natl. Inst. of Standards and Technology (NIST). Application
Portability Profile: The U.S. Government's Open System Environment
Profile OSE/1 Version 2.0. NIST Special Publication 500-210,
- An excellent analysis of standards relating to application
portability, including descriptive information, level of usage,
level of consensus, and other factors.
- Pearse, T.T. A Study of Software Portability to Identify
Tangible Charactersitcis of Portable Programs. M.S. Thesis,
Univ. of Idaho, May 1996.
- This thesis investigates portability problems in ANSI C programs
to identify program characteristics that correlate with portability.
Conclusions include the importance of avoiding program elements
that have unspecified or implementation specific behavior, and
improving compiler diagnostics.
- Peck, J.E.L., and MacLean, M.A. The Construction of a
Portable Editor. Software -- Practice and Experience
- Describes construction of the CHEF Portable Editor.
- Poole, P.C. and Waite, W.M. Portability and Adaptability.
In Software Engineering: An Advanced Course. Springer-Verlag,
Bauer, F.L., Berlin, 1975.
- An early classic paper on portability. The volume is reprinted
from a 1973 edition.
- Rabinowitz, H., and Schaap, C., Portable C, Prentice
- Examines portability issues for C programming.
- Rashid, R. Machine-Independent Virtual Memory Management
for Paged Uniprocessor and Multiprocessor Architectures.
IEEE Trans. on Computers V 37, No. 8, Aug. 1988, pp. 896-907.
- Describes the virtual memory structure of MACH, designed
to be portable yet make effective use of the capabilities of
- Richards, M., BCPL: A tool for compiler writing and system
programming, Proc. Spring Joint Comp. Conf., 34 (1969), pp.
- Summary of the BCPL language, including discussion of the
portability (called "mobility" of the BCPL compiler.)
- Richards, M., et al, TRIPOS -- A Portable Operating System
for Mini-computers. Software -- Practice and Experience
9, 7 (Jul. 1979), pp. 513-526.
- Describes portability features of the TRIPOS operating system,
written in BCPL by BCPL's creator. .
- Ross, M., Portability by Design, Dr. Dobb's Journal,
19, 4,Mar. 1994, pp. 41 ff.
- Describes a methodology developed at MetaWare for constructing
portable compilers in C.
- Saxena, S. and Field, J.A. Portable Real-Time Software
for 8-bit Microprocessors. Software -- Practice and Experience
15, 3 (Mar. 1985), pp. 277-303.
- Describes a strategy for implementation of portable real-time
software based on an intermediate-level language (ILL) for an
- Schach, S.R. Classical and Object-Oriented Software Engineering
(3rd ed.). Richard D. Irwin, Chicago, 1996.
- A general software engineering text with a good treatment
of portability (Chapter 12).
- Schwan, K., et al, High-Performance Operating System Primitives
for Robotics and Real-Time Control Applications. ACM Trans.
on Comp. Sys. 5, 3 (Aug. 1987), pp. 189-231.
- Presents an analysis of API functionality required for robotic
control, and proposes a set of system calls.
- Sitaraman, M., A Uniform Framework for the Reusability
of Software Engineering Assets, Proc. 5th Ann. Natl. Workshop
on Softw. Reuse, Palo Alto, CA, Oct. 1992,
- Describes new models for software reusability, which have
implications for portability as well. These models may support
portability for components in an object-like form in some cases.
- Sites, R.L., et al, Binary Translation. Comm. ACM,
36, 2, Feb. 1993, pp. 69-81.
- Describes the strategy for adapting software from VAX executables
to the Alpha architecture without recompiling. A combination
of automatic translation and emulation is used. The method assumes
the programs are written for VMS or OSF-1 and meet certain other
- Skillicorn, D.B., Architecture-Independent Parallel Computation.
IEEE Computer, 23, 12, Dec. 1990, pp. 38-50.
- Develops a universal model for parallel programs based on
the Bird-Meertens formalism. Programs expressed in this formalism
are shown to be able to be mapped to four major classes of parallel
- Snook, R. Making Large C Programs Portable.. Unix
Review, V14 N1, Jan. 1996, p. 33 ff.
- Provides some practical suggestions for achieving greater
portability when porting moderately large C porgrams across different
flavors of Unix and Windows. Includes a useful table of likely
- Snow, C.R. An Exercise in the Transportation of an Operating
System. Software -- Practice and Experience 8(1978),
- Describes the process of porting the OS-6 operating system
(written in BCPL) to the Burroughs B1700. The use of BCPL, and
the modular structure of OS-6, aided success of this project.
- Sommerville, I. Software Engineering, 4th ed, Addison-Wesley
- An excellent text on software engineering, which includes
good treatment of portability issues.
- Tanenbaum, A.S., Klint, P., and Bohm, W. Guidelines for
Software Portability. Software -- Practice and Experience
8, 6 (1978), pp. 681-698.
- A valuable article for portable application designers, which
identifies dozens of potential problems due to differences in
target environments, and suggests guidelines for avoiding them.
- Tanenbaum, A.S., et al, A Practical Tool Kit for Making
Portable Compilers. Communications of the ACM 26,
9 (Sep. 1983), pp. 654-660.
- Description of the Amsterdam Compiler Kit, a system for building
portable compilers for many languages and machines based on a
common intermediate language (UNCOL).
- Theaker, C.J. and Frank, G.R. MUSS -- A Portable Operating
System. Software -- Practice and Experience 9(1979),
- Describes the structure of MUSS, an operating system designed
for portability. A building block approach is used to aid in
the adaptation process..
- Ullman, E., You Can't Run on Everything, Byte,
16, 12, Nov. 1991, pp. 255 ff.
- A cautionary look at portability, and a suggested strategy.
- Uren, E., Howard, R., and Perinotti, T., Software Internationalization
and Localization. Van Nostrand Reinhold, New York, NY, 1993.
- Discusses a broad range of issues to be considered in developing
international software and localizing it for specific countries
- Waite, W.M. Hints on Distributing Portable Software.
Software -- Practice and Experience 5(1975), 295-308.
- A discussion of issues to be considered in the physical distribution
of portable software (in source format). The issues considered
include character set, media, and maintenance..
- Wallis, P.J.L. Portable Programming, John Wiley &
- An early textbook on portability.
- Wilcox, J., Enhancing Portability of the VALI Project,
Master's thesis, Dept. of Stat. and Comp. Sci., West Virginia
Univ., Morgantown WV, 1993.
- Describes a project to improve the portability of a research
software system which simulates a language-oriented high-level
- Wolberg, J., Conversion of Computer Software. Prentice-Hall,
Englewood Cliffs, NJ, 1983.
- A detailed study of appropriate technical and management
procedures for porting software from one environment to another.
Emphasis is on prting FORTRAN and COBOL programs in large environments.
- Zabala, I. Some Feedback from PTEX Installations.
TUGboat: the TeX User's Group Newsletter 2, 2 (July
1981), pp. 16-19.
- Describes problems in porting the TeX text processing system
to various systems. Most problems were due to variations in the
extensions and limitations of Pascal compilers..
- Zwaenepoel, W. and Lantz, K. Perseus: Retrospective on
a Portable Operating System. Software -- Practice and
Experience 14(1984), 31-48.
- Detailed description of a portable, distributed OS based
on DEMOS and written in Pascal.