Библиотека сайта rus-linux.net
Beyond Linux From Scratch. Version 2011-12-30 | ||
Назад | 12. Программирование | Вперед |
Другие инструментальные средства программирования
Библиотеки и сборки, предназначенные для программирования
Boost
В Boost предоставлены бесплатные постоянно упоминаемые библиотеки с исходными кодами на C++. Акцент делается на библиотеках, которые хорошо работают со стандартной библиотекой C++. Библиотеки предназначены для широкого применения и ими на различных платформах и в различных средах программирования регулярно пользуются тысячи программистов для создания самых различных приложений.
- Домашняя страница проекта: http://www.boost.org/
- Страница для скачивания: http://downloads.sourceforge.net/boost/
Библиотека BCEL (Byte Code Engineering Library) для работы с байт-кодом
Библиотека BECL предназначена для предоставления пользователям возможности удобно анализировать, создавать и управлять (двоичными) файлами классов Java (т. е. теми, у которых расширение .class
). Классы представлены объектами, в которых хранится вся информация о данном классе: в частности, методы, поля и инструкции байт кода. Такие объекты могут быть прочитаны из существующего файла, могут быть преобразованы программой (например, загрузчиком классов во время выполнения программы) и могут быть снова сохранены в файле. Еще более интересным подходом является создание классов с нуля во время выполнения программы. Библиотека Byte Code Engineering Library также может оказаться полезной, если вы хотите изучить виртуальнуюй машину (Java Virtual Machine - JVM) и форматы Java-файлов .class
. BCEL уже успешно используется в ряде проектов, таких как компиляторы, оптимизаторы, обфускаторы, генераторы кода и средства анализа.
- Домашняя страница проекта: http://jakarta.apache.org/bcel/index.html
- Страница для скачивания: http://jakarta.apache.org/site/downloads/downloads_bcel.cgi/
Choco
Choco представляет собой библиотеку языка Java для решения задач с ограничениями (CSP), программирования с ограничениями (CP) и решений с ограничениями и объяснениями (е-CP). Библиотека использует механизма распространения событий и структур, допускающих откат в вычислениях.
- Домашняя страница проекта: http://sourceforge.net/projects/choco/
- Страница для скачивания: http://choco.sourceforge.net/download.html
FFTW (Библиотека быстрого преобразования Фурье)
FFTW является библиотекой подпрограмм на C для вычисления дискретного преобразования Фурье (ДПФ) в одном или нескольких измерениях, размер входных данных может быть произвольный, позволяет использовать как действительные, так и комплексные данные (а также четные/нечетные данных, т. е. выполнять дискретные косинус/синус преобразования или DCT/DST).
- Домашняя страница проекта: http://www.fftw.org/
- Страница для скачивания: http://www.fftw.org/download.html
GOB (Средство сборки объектов GObject)
GOB (во всяком случае - GOB2) является препроцессором для создания таких объектов GObject с встроенным в С кодом (inline кодом) , чтобы созданные файлы не требовалось редактировались. Синтаксис был разработан под влиянием Java и Yacc или Lex. Реализация намеренно оставлена простой и фактический разбор кода C не выполняется.
- Домашняя страница проекта: http://www.5z.com/jirka/gob.html
- Страница для скачивания: http://ftp.5z.com/pub/gob/
Языковые сборки GTK+/GNOME (программы-обертки wrappers)
Языковые сборки GTK+/GNOME позволяют использовать GTK+ из других языков программирования, причем в стиле этих языков.
- Домашняя страница проекта: http://www.gtk.org/language-bindings.html
gtkmm
gtkmm является официальным интерфейсом C++ для популярной графической библиотеки GTK+. К числу основных возможностей относятся безопасные с точки зрения типизации обратные вызовы, виджеты, которые можно расширять с помощью наследования, а также обширный набор виджетов. Вы можете создавать пользовательские интерфейсы либо непосредственно в коде, либо с помощью инструментального средства Glade, использующего библиотеку libglademm.
- Домашняя страница проекта: http://www.gtkmm.org/
- Страница для скачивания: http://www.gtkmm.org/download.shtml
Java-GNOME
Java-GNOME это набор сборок Java для библиотек GNOME и GTK+, которые позволяют писать приложения GNOME и GTK+ на языке Java. Java-GNOME API был тщательно разработан м тем, чтобы его было просто использовать при хорошем сохранении парадигмы ОО, но, при этом, чтобы он позволял пользоваться всеми функциональными возможностями соответствующих библиотек. Чтобы было легко создавать приложения, Java-GNOME можно использовать совместно со средой разработки Eclipse и средством разработки пользовательских интерфейсов Glade.
- Домашняя страница проекта: http://java-gnome.sourceforge.net/4.0/
- Страница для скачивания: http://java-gnome.sourceforge.net/4.0/get/
gtk2-perl
gtk2-perl является собирательным названием набора привязок языка perl к библиотекам GTK+2.x и другим разнообразным библиотекам. Эти модули позволяют легко писать приложения GTK и GNOME с использованием родного объектно-ориентированного синтаксиса языка perl.
- Домашняя страница проекта: http://gtk2-perl.sourceforge.net/
- Страница для скачивания: http://downloads.sourceforge.net/gtk2-perl
PyGTK
PyGTK представляет собой удобную оболочку библиотеки GTK для ее использования в программах на языке Python, на которую возложена забота о многих скучных деталях, таких как управление памятью и проверка соответствия типов. Вместе с PyORBit и gnome-python может использоваться при написании полнофункциональных приложений GNOME.
- Домашняя страница проекта: http://www.pygtk.org/
- Страница для скачивания: http://www.pygtk.org/downloads.html
Языковые сборки KDE
<pKDE и большинство приложений KDE реализованы с использованием языка программирования C++, однако в наличии также есть ряд привязок к другим языкам. К ним относятся скриптовые языки, такие как Perl, Python и Ruby, и языки программирования систем, такие как Java и C#.- Домашняя страница проекта: http://developer.kde.org/language-bindings/
Numpy (Numerical Python — Численный Python)
Numerical Python добавляет в язык Python средства быстрой работы с массивами.
- Домашняя страница проекта: http://numeric.scipy.org/
- Страница для скачивания: http://downloads.sourceforge.net/numpy/
Скрипты Perl и дополнительные модули
На сайте Comprehensive Perl Archive Network (CPAN) есть много скриптов Perl и дополнительных модулей. Здесь вы найдете "все, что касается Perl".
- Домашняя страница проекта: http://cpan.org/
SWIG
SWIG является инструментальным средством разработки программного обеспечения, который подключает программы, написанные на C и C++, к большому количеству высокоуровневых языков программирования. В SWIG используются языки различных типов, в том числе обычные скриптовые языки, такие как Perl, Python, Tcl/Tk и Ruby. В списке поддерживаемых языков также имеются нескриптовые языки, такие как C#, Common Lisp (Allegro CL), Java, Modula-3 и OCAML. Также поддерживается несколько интерпретируемых и компилируемых реализаций языка Scheme (Chicken, Guile, MzScheme). SWIG наиболее часто используется для создания высокоуровневых интерпретируемых или компилируемых сред программирования, пользовательских интерфейсов, а также в качестве инструмента тестирования и создания на C/ C++ прототипного программного обеспечения . SWIG может также экспортировать свое дерево разбора в XML и в s-выражения языка Lisp.
- Домашняя страница проекта: http://www.swig.org/
- Страница для скачивания: http://downloads.sourceforge.net/swig/
Интегрированные среды разработки
A-A-P
A-A-P позволяет легко находить, загружать, собирать и устанавливать программное обеспечение. В нем также поддерживается просмотр исходного кода, разработка программ, управления различными версиями и создание дистрибутивов программ и документации. Это означает, что A-A-P может оказаться полезным как для пользователей, так и для разработчиков.
- Домашняя страница проекта: http://www.a-a-p.org/index.html
- Страница для скачивания: http://www.a-a-p.org/download.html
Anjuta
Anujuta является универсальной интегрированной средой разработки (IDE) для C и C++ на GNU / Linux. Она была написана для GTK/GNOME и имеет ряд современных средств программирования. К ним относятся управление проектами, визарды приложений, встроенный интерактивный отладчик, а также мощный редактор исходного кода со средствами навигации по коду и с подсветкой синтаксиса.
- Домашняя страница проекта: http://projects.gnome.org/anjuta/index.shtml
- Страница для скачивания: http://projects.gnome.org/anjuta/downloads.shtml
Eclipse
Eclipse предложен сообществом, поддерживающим использование открытого исходного кода и чьи проекты направлены на предоставление расширяемой платформы разработки и прикладных фреймворков, предназначенных для сборки программного обеспечения. В Eclipse входит множество проектов, в том числе интегрированная среда разработки (IDE) для языка Java.
- Домашняя страница проекта: http://www.eclipse.org/
- Страница для скачивания: http://www.eclipse.org/downloads/
Mozart
Система программирования Mozart является современной платформой разработки интеллектуальных распределенных приложений. Mozart базируется на языке Oz, в котором одновременно поддерживается декларативное программирование, объектно-ориентированное программирование, программирование с ограничениями и распараллеливание. В дистрибутиве Mozart есть по настоящему прозрачные средства работы с сетью с поддержкой средств готовности, открытости и отказоустойчивости сети. Ожидается реализация вопросов, связанных с безопасностью. Это идеальная платформа как для разработки приложений общего назначения, так для решения серьезных задач, требующих сложной оптимизации и средств логического вывода.
- Домашняя страница проекта: http://www.mozart-oz.org/
- Страница для скачивания: http://www.mozart-oz.org/download/view.cgi
Другие инструментальные средства разработки
cachecc1
Пакет cachecc1 является кэшем GCC. Он похож на хорошо известный пакет ccache. В нем есть ряд уникальных возможностей, в том числе предзагрузка объектов в совместнодоступную память с помощью команды LD_PRELOAD, что используется в случае обнаружения вызовов cc1, cc1plus и as; он прозрачно поддерживает все методы сборки, может использовать кэширование при самораскрутке компилятора GCC и может быть объединен с distcc для прозрачного выполнения распределенной компиляции.
- Домашняя страница проекта: http://cachecc1.sourceforge.net/
- Страница для скачивания: http://downloads.sourceforge.net/cachecc1
ccache
ccache это кэш компилятора. Он, при использовании переключателя компилятора -E, действует как кэширующий препроцессор компиляторов C/C++ и пользуется хэшированием для того, чтобы определить, когда компиляция может выполняться из кэша. Это часто приводит к повышению скорости от 5 до 10 раз в сравнении со скоростью обычной компиляции.
- Домашняя страница проекта: http://ccache.samba.org/
- Страница для скачивания: http://samba.org/ftp/ccache/
DDD (Отладчик дисплейных данных GNU)
GNU DDD представляет собой графический интерфейс отладчиков командной строки, таких как GDB, DBX, WDB, Ladebug, JDB, XDB, отладчик Perl, отладчик Bash или отладчик Python. Кроме "обычных" интерфейсных возможностей, таких как просмотр исходных текстов, в DDD есть интерактивный графический дисплей данных, на котором структуры данных отображаются в виде графиков.
- Домашняя страница проекта: http://www.gnu.org/software/ddd/
- Страница для скачивания: http://ftp.gnu.org/gnu/ddd/
distcc
distcc является программой, осуществляющей распределенную сборки кода на языках C, C++, Objective C и Objective C++ на нескольких машинах в сети. Когда выполняется локальная сборка, distcc будет всегда генерировать одни те же результаты, он прост в установке и использовании и обычно он существенно более быстрый, чем локальный компилятор. distcc не требует, чтобы на всех машинах была одна и та же файловая система, были синхронизированы часы или чтобы на всех машинах были установлены одни и те же библиотеки или заголовочные файлы. Если установлены кросс-компиляторы, на машинах даже могут быть различные процессоры и операционные системы.
- Домашняя страница проекта: http://distcc.samba.org/
- Страница для скачивания: http://distcc.samba.org/download.html
Exuberant Ctags
Exuberant Ctags генерирует индексный файл (или файл с тегами) объектов языка, найденных в исходных файлах. Этот файл используется в текстовом редакторе или другой утилите для быстрого и более простого поиска этих элементов. Тег обозначает языковый объект, для которого есть индексная запись (или, наоборот, для этого объекта создается индексная запись). Генерация тегов поддерживается для следующих языков: Assembler, AWK, ASP, BETA, Bourne/Korn/Zsh Shell, C, C++, COBOL, Eiffel, Fortran, Java, Lisp, Lua, Make, Pascal, Perl, PHP, Python, REXX, Ruby, S-Lang, Scheme, Tcl, Vim и YACC. Список редакторов и инструментальных средств, использующих файлы с тегами, можно найти по ссылке http://ctags.sourceforge.net/tools.html.
- Домашняя страница проекта: http://ctags.sourceforge.net/
- Страница для скачивания: http://downloads.sourceforge.net/ctags/
GDB (Отладчик GNU)
GDB это отладчик проекта GNU. Он позволяет увидеть, что происходит "внутри" другой программы, во время ее выполнения. Также позволяет увидеть, что другая программа делала в тот момент, когда она вышла из строя.
- Домашняя страница проекта: http://www.gnu.org/software/gdb/
- Страница для скачивания: ftp://ftp.gnu.org/gnu/gdb/
Замечания для пользователей и инструкции по установке: http://wiki.linuxfromscratch.org/blfs/wiki/OtherProgrammingTools
gocache (Кэш объектов GNU)
gocache является клоном ccache, назначение которого — поддержка компиляторов, отличных от GCC,а также получение дополнительных функциональных возможностей. В частности, предназначен для встроенных компиляторов.
- Домашняя страница проекта: http://sourceforge.net/projects/gocache/
- Страница для скачивания: http://downloads.sourceforge.net/gocache/
OProfile
OProfile является общесистемным профилировщиком для систем Linux, позволяющим профилировать любой исполняемый код при низких накладных расходах. OProfile выпущен под лицензией GNU GPL. В его состав входит драйвер ядра и демон сбора данных, а также нескольких инструментальных средств постпрофилирования, которые превращают данные в удобную для восприятия информацию. OProfile использует аппаратные счетчики процессора для профилирования разнообразных интересных статистических данных, и которые также можно использовать для основного профилирования. Профилируется весь код: обработчики аппаратных и программных прерываний, модули ядра, ядро, разделяемые библиотеки и приложения. OProfile в настоящее время находится в статусе альфа разработки, но он уже достаточно стабилен в большинстве различных конфигураций. Используется на машинах, начиная от ноутбуков и до 16-процессорных систем NUMA-Q.
- Домашняя страница проекта: http://oprofile.sourceforge.net/news/
- Страница для скачивания: http://oprofile.sourceforge.net/download/
SCons
SCons является инструментальным средством с открытым кодом, предназначенным для создания программного обеспечения, то есть это сборочный инструмент нового поколения. Подумайте насчет SCons как об улучшенном кросс-платформенном заменителе классической утилиты make с интегрированными возможностями, схожими с Autoconf / Automake, кеша компилятора, такого как ccache.
- Домашняя страница проекта: http://scons.sourceforge.net/
- Страница для скачивания: http://downloads.sourceforge.net/scons/
strace
strace является трассировщиком системных вызов, т.е. отладочным инструментом, который выдает трассировку всех системных вызовов, сделанных другим процессом или программой.
- Домашняя страница проекта: http://sourceforge.net/projects/strace/
- Страница для скачивания: http://downloads.sourceforge.net/strace/
Valgrind
Valgrind представляет собой набор из пяти инструментов - два детектора ошибок памяти, детектор ошибок потока, профилировщик кэша и профиловщик памяти типа куча, которые используются для отладки и профилирования Linux-программ. К числу имеющихся возможностей относятся автоматическое обнаружение многих ошибок управление памятью и ошибок потоков, а также возможность подробного профилирования, позволяющая ускорить работу ваших программ и уменьшить объем используемой в них памяти.
- Домашняя страница проекта: http://valgrind.org/
- Страница для скачивания: http://valgrind.org/downloads/source_code.html
Предыдущий раздел: | Оглавление | Следующий раздел: |
Фреймворки программирования, языки и компиляторы | Глава 13 |