Нововведения в типах данных

   
На этом шаге мы рассмотрим нововведения в типах данных.

   
В Object Pascal, по сравнению с Borland (Turbo) Pascal, в корне пересмотрена концепция построения основных типов. Эта концепция является принципиально новой
(опять подтверждается истина "все новое - это хорошо забытое старое") и взята из теории конструирования языков, которую ведущие теоретики языков программирования совершенствовали, начиная с 60-х годов.
На похожих принципах построена система типов, например, языка TopSpeed Modula-2. В результате введения новой концепции реализация некоторых основных типов Object Pascal приняла теоретически строгий
классический вид, уже удовлетворяющий изысканным вкусам "гурманов-теоретиков" в области разработки языков.

   
Отныне группы целых, символьных и строковых типов подразделяются на две категории:

  • Фундаментальные (fundamental) типы, формат представления которых в памяти (число битов и наличие знака) строго
    фиксируется и будет выдерживаться неизменным во всех последующих реализациях Object Pascal для любых операционных систем и компьютерных платформ.
  • Родовые (generic) типы, формат представления которых в памяти не фиксируется и будет устанавливаться наиболее оптимальным способом,
    в зависимости от реализации для конкретной операционной системы и компьютерной платформы.
  •    
    К фундаментальным типам относят:

    • целые типы Shortint, Smallint, Longint, Byte и Word;
    • символьные типы AnsiChar и WideChar;
    • строковые типы ShortString и AnsiString.

       
    К родовым типам относят:

    • целые типы Integer и Cardinal;
    • символьный тип Char;
    • строковый тип String.

       
    К сожалению, для вещественных и булевских типов градация на фундаментальные и родовые не сделана. Однако, учитывая наметившуююся тенденцию, с большой долей вероятности можно ожидать, что такое
    разделение будет реализовано в последующих версиях. Правда, булевские типы ByteBool, WordBool и LongBool уже сейчас можно было бы считать фундаментальными, а тип Boolean -
    родовым, но документируется разделение только для целых, символьных и строковых типов.

       
    Для того чтобы достигать универсального и оптимального загрузочного кода, при написании программ рекомендуется использовать преимущественно родовые типы, а фундаментальные типы - применять только тогда,
    когда требуется фиксированное представление данных в памяти.

       
    Кроме разделения на фундаментальные и родовые типы в Object Рascal введены две новые разновидности определяемых пользователем гипов - вариантные типы и тип указателей на классы.
    Вариантные типы являются существенным шагом по пути ослабления типизации языка, поскольку они предоставляют возможность выполнять преобразования разнородных типов согласно не всегда очевидным правилам.
    Однако, с другой стороны, эти типы значительно повышают гибкость программирования, так как позволяют динамически изменять тип значений на этапе выполнения. Тип указателей на классы используется для доступа во
    время выполнения к таблицам информации о типах классов.

       
    На следующем шаге мы перечислим стандартные типы.



    Вы можете оставить комментарий, или Трекбэк с вашего сайта.

    Оставить комментарий