Jim Mooney
Dept. of Computer Science and Electrical Engineering
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, 1988.
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), pp. 18-26.
Describes experience in porting a wordprocessor to 12 different environments, relying on a modular structure with replaceable modules..
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 issues.
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, Mass. (1989).
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), pp. 12-46.
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, Indiana, 1975.
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, 1989.
An interesting commentary discussing why the portability problem is not as easily solved as may have been thought in the past.
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, 1996.
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), pp. 1009-1027.
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 Press, 1988.
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 standard.
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 standard.
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, applications.
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), pp. 380-385.
Describes the porting of MS-DOS 2.0 to the British Microframe microcomputer system. The complete system was adapted in about six weeks.
Neal, D. and Wallentine, V. Experiences with the Portability of Concurrent PASCAL. Software -- Practice and Experience 8(1978), 341-353.
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, June 1993.
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 11(1981), 479-489.
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 Hall, 1990.
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 each architecture.
Richards, M., BCPL: A tool for compiler writing and system programming, Proc. Spring Joint Comp. Conf., 34 (1969), pp. 557-566.
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 abstract machine.
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 constraints.
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 architecture.
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 problem areas.
Snow, C.R. An Exercise in the Transportation of an Operating System. Software -- Practice and Experience 8(1978), pp. 41-50
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 (1993).
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), pp. 633-643.
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 and cultures.
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 & Sons (1982).
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 architecture.
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.