The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
Вперед Назад Содержание

1. Общие положения относительно Ваших программ

При написании программ для проекта GNU (или любых ваших собственных программ) ни при каких обстоятельствах не должны учитываться какие-либо особенности реализации Unix.

Если у Вас слабые представления о внутренней реализации Unix-программ, это совершенно не означает, что Вы не можете написать их имитацию; попытайтесь организовать эту имитацию таким образом, чтобы она не опиралась на особенности конкретной версии Unix с тем, чтобы это не влияло на получаемые результаты.

Например, утилиты Unix как правило оптимизировались на минимальное использование оперативной памяти; если для Вас важна скорость, ваша программа будет реализована существенно по другому. Вы можете хранить весь входной файл в памяти и просматривать его там, вместо того, чтобы использовать stdio. Следует избегать использования временных файлов: обработку необходимо выполнять в один проход вместо двух (в частности, мы так делаем в ассемблере).

Или, напротив, придавайте особое значение простоте за счет скорости. Для многих приложений скорость современных компьютеров делает возможным использование простых алгоритмов.

Следует стремиться к общности. Например, Unix-программы часто используют статические таблицы или строки фиксированного размера. Вместо этого следует использовать динамическое распределение памяти. Проверьте, что Ваша программа обрабатывает символ NUL и другие необычные символы во входных файлах. Введите язык программирования для того, чтобы оставить возможность расширения возможностей и напишите часть программы на этом языке.

Старайтесь помещать отдельные части программы в библиотеки, которые можно использовать независимо. По возможности следует использовать алгоритм "сборки мусора" вместо тщательного отслеживания, когда следует освобождать память, или использовать новый механизм распределения памяти obstack, разработанный в рамках GNU.


Вперед Назад Содержание


Спонсоры:
Слёрм
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру