| |
Справочное описание GObject |
---|
GObject, и её система типов низшего уровня GType, используются в GTK+ и в большинстве библиотек GNOME для обеспечения:
объектно-ориентированного C-based APIs и
автоматически прозрачных API bindings для других компилируемых или интерпретируемых языков.
Многие программисты используют для работы только компилируемые или только динамически интерпретируемые языки и не понимают вызовы связанные с разно-языковой совместимостью. Это введение является попыткой объяснить эти вызовы, кратко описывая выборочные решения GLib.
Следующие разделы лучше описывают то как работают GType и GObject, а так же как вы можете использовать их как C программист. Полезно помнить что доступность C объектов из других интерпретируемых языков было главной целью дизайна: это объясняет некоторую замысловатость API и усовершенствования представляемые этой библиотекой.
Можно сказать (я видел такие определения используются в некоторых учебниках по теории языков программирования), что язык программирования - это просто способ создания типов данных и манипулирования ими. Большинство языков обеспечивают множество родных языковых типов и несколько примитивов для создания более сложных типов на основе этих примитивных типов.
В C, язык обеспечивает такие типы как char, long, pointer. В процессе компилирования C кода, компилятор отображает эти языковые типы в скомпилированные целевые машинные типы. Если вы используете C интерпретатор (я никогда не видел этого сам, но это возможно :), интерпретатор (программа которая интерпретирует исходный текст и выполняет его) отображает языковые типы в машинные типы целевой архитектуры во время выполнения программы (или перед выполнением если это используется во время механизма компилирования).
Perl и Python, которые являются интерпретируемыми языками, на самом деле не обеспечивают определения типов подобно используемым в C. Perl и Python программисты манипулируют переменными и типами переменных только после первого назначения или после первого использования которое определяет тип переменной. Интерпретатор так же часто обеспечивает большинство автоматических преобразований из одного типа в другой. Например, в Perl, переменная которая содержит целочисленное может быть автоматически конвертирована в строку с данным контекстом:
my $tmp = 10; print "это целочисленное конвертированное в строку:" . $tmp . "\n";
Конечно, также часто возможно явное преобразование, когда преобразование по умолчанию обеспеченное языком не является интуитивно понятным.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |