ФЭНДОМ


Диалект С системы Plan 9 главным образом состоит из существенно упрощенного препроцессора и нескольких расширений языка C. Расширения коротко описаны в man-странице 2c(1) и более детально в документе «Как использовать компилятор Plan 9 C» (How to Use the Plan 9 C Compiler, /sys/doc/comp.ps).

Также в Plan 9 есть переносимая среда под названием АРЕ, ANSI/POSIX Environment, которая включает отдельные файлы, библиотеки и команды, соответствующие, насколько это возможно, более точно спецификациям ANSI С и базового POSIX.

Наибольшие различия вы, вероятно, встретите как раз на этом уровне библиотек. В Plan 9 есть различные библиотеки для многих стандартных функций. И, очевидно, многие вещи, как например, организация сети — сделаны полностью по-другому.

APE более точно соответствует среде ANSI/POSIX, чем многие современные Unix системы. Но, предпочтительной средой разработки все еще остается исконная среда Plan 9, которая обеспечивает доступ к исконным библиотекам. Их компиляция выполняется намного быстрее, в результате исполняемые файлы также получаются более быстрые. Почти весь C код в системе, как распространено (единственными исключениями являются gs и troff), написан на диалекте Plan 9 C.

Что касается других языков, то успешно портированы Perl, Python, Scheme, noweb, Haskell, newsqueak и MosML, но они не входят в дистрибутив системы, так что смотрите ссылки в конце документа. Оболочка rc(1) — великолепна, со многими улучшениями Bourne Shell, которые делают ее подходящей для программирования. В системе также присутствуют awk, acid, troff, hoc, bc, dc, gs, mp, которые также считаются языками программирования.

Утилита mk(1) широко используется в Plan 9, она описана в подробностях в документе «Поддержка файлов в Plan 9 с помощью mk» (Maintaining Files on Plan 9 with Mk, /sys/doc/mk.ps). Ее функция аналогична make (которую также обеспечивает APE), но она проще, следовательно, более мощная. Документ «Mk-файлы Plan 9» (Plan 9 Mkfiles, /sys/doc/mkfiles.ps) содержит некоторые примеры использования mk и mk-файлов.

Общей средой разработки является редактор Acme, своего рода комбинация оболочки, оконной системы, среды разработки (кстати, в Acme также можно прослушивать компакт-диски). Acme описан в man-странице acme(1) и документе «Acme: пользовательский интерфейс для программистов» (Acme: A User Interface for Programmers, /sys/doc/acme/acme.ps). Название этого документа отчасти вводит в заблуждение — он полезен также и для массы задач не из области программирования.</p>

ПрограммированиеПравить

Самая короткая C программа для 8c/8l:

#include </u.h>
#include <libc.h>
void
main(int argc, char *argv[]) {
}

Самая короткая C программа для APE:


#include <stdlib.h>
void
main(int argc, char *argv[]) {
}


перед ее компиляцией с помощью cc, выполните команду ape/psh


Эта команда запускает POSIX оболочку со средой, которая включает POSIX команды: ar89, c89, cc, basename, dirname, expr, false, grep, kill, make, rmdir, sed,sh, stty, true, uname и yacc.

ПортыПравить

Эндрю Почински (Andrew Pochinsky) частично портировал SXM (смотрите по адресу: http://www.malgil.com/sxm/).

Дэвид Гордон Хоугэн (David Gordon Hogan) портировал GCC 3.0. Всего есть 3 tar-ball файла:


  1. /n/sources/extra/gnubin.tgz
  2. /n/sources/extra/ape.tgz
  3. http://cm.bell-labs.com/cm/cs/who/dhog/gnusrc.tgz </u>
  • Первый файл должен быть извлечен в корне ФС Plan 9 для установки разного рода исполняемых файлов, библиотек и т.п.. Порт лишь для 386, так что все работает только на этой архитектуре.
  • Второй содержит исходные тексты APE библиотек, которые работают с GCC. APE распространяется на условиях лицензии Plan 9. Файлы должны быть извлечены в каталог /sys/src/gnu/ape.
  • Третий архив — набор исходных текстов для сборки GCC. Он немного в небрежном состоянии. Смотрите файл README за детальным описанием. Файлы должны быть извлечены в каталог /sys/src/gnu. GCC, Binutils и другие файлы распространяются на условиях лицензии GPL.

Первые два архива доступны на странице дополнительного ПО Plan 9: http://plan9.bell-labs.com/plan9dist/ureg.html. Мэтт Синекл (Matt Senecal) портировал виртуальную машину CVM (http://java.sun.com/products/cdc/cvm). На данный момент портированы только наиболее трудные части HPI (потоки, замки и JNI).

Недавно был портирован Kaffe — популярный Java интерпретатор/JIT-компилятор. Порт работает (слишком громко сказано) лишь на платформе Intel 386. JIT версия не полностью функциональна.

СсылкиПравить

  • Perl в Plan 9 http://www.perldoc.com/perl5.8.0/README.plan9.html.
  • Расс Кокс (Russ Cox) портировал язык MosML.
  • Порт языка Python доступен для загрузки со страницы дополнительного ПО Plan 9.
  • SXM — портабельная реализация языка программирования Scheme.
  • Дистрибутив Kaffe, пакет содержит исходники, двоичный код и детальную информацию.
  • Hugs — интерпретатор функционального языка Haskell.
  • Ocaml — еще один язык функционального программирования, чей интерпретатор был портирован в среду Plan 9

Copyright © 2003 Перевод Андрей С. Кухар. Последняя модификация 21.08.2003