Macintosh Programmer's Workshop

Macintosh Programmer's Workshop

Infobox Software
name = Macintosh Programmer's Workshop



caption = MPW version 3.5
developer = Apple Computer
latest_release_version = 3.6d7
latest_release_date =
latest_preview_version =
latest_preview_date =
operating_system = Mac OS
platform =
genre = Software development tool
license =
website = [http://developer.apple.com/tools/mpw-tools/ Official MPW website]

Macintosh Programmer's Workshop or MPW, is a software development environment for the Classic Mac OS, written by Apple Computer. For Macintosh developers, it was one of the primary tools for building applications for System 7.x and Mac OS 8.x and 9.x. Initially, MPW was sold as a commercial product but Apple eventually made it a free download. MPW can still be used to develop for Mac OS X, but support is limited to Carbon applications for PowerPC-based computers. To develop Mac OS X applications based on other technologies, one must use either Xcode or CodeWarrior. MPW also included a version control system called Projector; this has been superseded by CVS and is no longer supported in Mac OS X.

MPW provided a command line environment and tools, including 68k and PowerPC assemblers as well as Pascal, C and C++ compilers. The shell environment is somewhat similar to Unix shells in design, but is designed around the Macintosh's character set and GUI, replacing the usual terminal environment with a "worksheet" interface, allowing the user to select and run arbitrary sections of a shell script or to redo commands with no retyping. In addition, command line tools were commonly provided with a somewhat standardized graphical interface named Commando that provided limited access to the command line capabilities of the program. The debuggers were not integrated into MPW like most IDEs of today but the language compilers supported the symbolic debugging information file format used by the debugger. MPW supported a source-level debugger called SADE (Symbolic Application Debugging Environment). SADE was not an MPW Tool, but ran as a separate application with a user interface similar to MPW.

Apple's compilers had some features that were not common on other platforms—for example, the Pascal compiler was object-oriented, while the C and C++ compilers included support for length-prefixed strings (needed for Pascal-oriented APIs). In addition, the original MPW C compiler was known for its casual and frequently humorous error messages, [http://www.ralentz.com/old/mac/humor/mpw-c-errors.html] a quirk not carried on after the PowerPC transition, when Apple moved to a front-end developed by Symantec. Pascal support was no longer provided by the mid-90s due to declining popularity of the language.

MPW was always targeted to a professional audience and was seldom used by hobbyist developers due to the considerable price for the package; by the time it was made freeware it had long since been superseded by offerings from Symantec and Metrowerks, as well as Apple's own development tools inherited from NeXT and distributed for free with OS X. It was also occasionally available as a wrapper environment for third-party compilers, a practice used by both Metrowerks and Absoft among others. Apple has officially discontinued further development of MPW (it has difficulties running on recent versions of Mac OS and requires the Classic environment on OS X) but does maintain a web site for the software.

MPW Shell

The MPW Shell featured redirection of output to files, and to windows. If a file were open, the output would go to the file and to the open window. This redirection of output required significant patching out of the file system calls so that tools need not do anything special to inherit this feature: the MPW Shell did all of the work.

The MPW Shell command language was based on the Unix csh language, but was extended to support the main features of the Macintosh GUI. It had simple commands to create menus, dialogs (prompts), and new shell windows. The cursor could be controlled, and MPW scripts or tools could easily be attached to a menu item. Command key shortcuts could be specified. Window size and location could be controlled. These features were popular in commercial production environments, where complicated build and packaging processes were all controlled by elaborate scripts.

The shell had some important differences from its Unix counterparts. For instance, the classic Mac OS had nothing comparable to Unix fork(), so MPW tools were effectively called as subroutines of the shell; only one could be running at any one time, and tools could not themselves run other tools.

Look and feel

Functionally, a "worksheet" is a cross between a text editor document and an xterm window. Each worksheet window is persistently bound to a file. The user may type anything anywhere in the window, including commands, which can be executed via the keyboard's Enter key; command output appears at the insertion point. Unlike an xterm window, an MPW worksheet is always in visual editing mode and can be freely reorganized by its user. Hence a worksheet can be purely a command script or purely a text document or a mixture of the two, an integrated document describing the history and state and maintenance procedures and test results of a software project.

Other tools

MPW included a version of make. Its syntax was conceptually similar to that of Unix make, but it used a special 8-bit character for dependencies. More significantly, since the limitations of the shell precluded the make program from running tools itself, it had to work by composing a script of compile/link actions to be run, then delivering that to the shell for execution. While this was good enough most of the time, it precluded makefiles that could make on-the-fly decisions based on the results of a previous action.

Writing MPW tools

MPW included a set of standard C libraries sufficient for developers to build their own MPW tools. Many Unix utilities could be ported with little change. One point of difficulty was the Mac OS newline convention, which was different from Unix. Another was the pathname separator, ":" in Mac OS, but many Unix utilities assumed "/". Many Unix utilities also assumed pathnames would not have embedded spaces, a common practice on Macs.

For a number of years, the GNU toolchain included portability support for MPW as part of libiberty. This was used to support MPW-hosted cross-compilers used by General Magic and several other developers.

History of MPW

MPW was started in late 1985 by Rick Meyers, Jeff Parrish, and Dan Smith (now Dan Keller). It was going to be called the Macintosh Programmer's System, or MPS. (Notice that coincidentally the three last names start with MPS.) 'MPS ' has always been the creator signature of the MPW Shell as a result of this. Since MPW was to be the successor to the Lisa Workshop, they decided to rename it the Macintosh Programmer's Workshop.

Early contributors included Rick Meyers (project lead and MPW Shell command interpreter), Jeff Parrish (MPW Shell editor), Dan Smith (MPW Shell commands), Ira Ruben (assembler and many of the tools including Backup, PasMat, and more), Al Hoffman (Pascal compiler), Roger Lawrence (Pascal and C compilers), Ken Friedenbach (linker), Johan Strandberg (Rez, DeRez, RezDet), Steve Hartwell (C libraries), and Dan Allen (MacsBug, editor). The Apple Numerics Group also contributed math libraries. During MPW's twilight years, Greg Branche supported MPW unofficially through Apples MPW-dev mailing list.

MPW 1.0 was completed on September 24, 1986. A shell memory leak was fixed in October 10, 1986 and MPW 1.0.1 was born. MPW 2.0 was completed on July 20, 1987, and MPW 3.0 was done November 30, 1988. MPW 3.1, 3.2, and 3.3 came in the next few years. MPW 3.4 was completed July 14, 1995, and MPW 3.5 was done December 17, 1999. Work was being done on MPW 3.6 when work was halted in late 2001.

ee also

*Jasik debugger
*Comparison of computer shells

References

External links

* [http://developer.apple.com/tools/mpw-tools/ Official MPW website]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Macintosh Programmer's Workshop — abrégé MPW est un environnement de développement de logiciel pour le Mac OS classic. Pour les développeur Macintosh, il fut l un des premiers outil permettant de créer des applications pour Système 7, Mac OS 8 et 9. MPW était initialement vendu… …   Wikipédia en Français

  • Macintosh File System — (MFS)  файловая система, разработанная Apple Computer Inc. на дискетах 400 КБ. Впервые введена в компьютерах Maintosh 128k в январе 1984 года. Данная файловая система поддерживает до 4094 файлов, максимальный размер файла  256 МБ, все… …   Википедия

  • Macintosh — This article is about Apple personal computers. For other uses, see McIntosh. The original Macintosh, the first commercially successful personal computer to use a graphical user interface, rather than a command line …   Wikipedia

  • Macintosh —  Pour les articles homophones, voir McIntosh. Un modèle d iMac lancé en octobre 2009 Macintosh …   Wikipédia en Français

  • Macintosh — Para otros usos de este término, véase Mac (desambiguación). Macintosh 128K, la primera computadora Macintosh, lanzada en 1984. El Macintosh es el nombre con el que actualmente nos referimos a cualquier computadora personal diseñada, desarrollada …   Wikipedia Español

  • Macintosh startup — The Macintosh startup behaviors characteristic of Macintosh computers include the startup chime, Happy Mac, Sad Mac, and Chimes of Death (also known as Hawaiian Death Chimes). Contents 1 Startup chime 2 Happy Mac 3 Sad Mac …   Wikipedia

  • List of Macintosh software — Contents 1 Audio 2 Computer aided design (CAD) 3 CD and DVD authoring …   Wikipedia

  • List of old Macintosh software — This is a list of Apple Macintosh software which no longer runs on current machines for example, because it may require Mac OS 9 which doesn t run anymore on Intel machines. Note that most old programs can still be run using emulators, such as… …   Wikipedia

  • Resource fork — The resource fork is a construct of the Mac OS operating system used to store structured data in a file, alongside unstructured data stored within the data fork. A resource fork stores information in a specific form, such as icons, the shapes of… …   Wikipedia

  • Apple GS/OS — Infobox OS name = GS/OS caption = GS/OS running. developer = Apple Computer family = GS/OS version number = Varies source model = Closed source working state = Historic latest release version = GS/OS v4.02 (System Software 6.0.1) latest release… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”