2. Поняття типу даних
Початково ЕОМ призначалась для полегшення складних і тривалих обчислень. Однак згодом більш важливим виявляється здатність ЕОМ зберігати великі обсяги інформації і забезпечувати доступ до них, а здатність обчислювати в багатьох випадках відходить на другий план.
При цьому оброблювана інформація являє собою в деякому смислі абстракцію якоїсь частини реального світу. Ми використовуємо тільки ті дані, що вважаємо достатніми, щоб одержати потрібний результат. Дані є абстракцією дійсності, оскільки в них ігноруються деякі властивості і характеристики, несуттєві для розв'язуваної задачі. Тому абстракція – це одночасно спрощення.
До приклада розглянемо персональний файл службовця. Кожен службовець представлений (абстрагований) у цьому файлі множиною даних, істотних для його характеристики або процедур розрахунку. Ця множина може включати деяку ідентифікацію що служить, наприклад, його ім'я і заробітну плату. Але навряд чи воно буде містити такі несуттєві характеристики, як його ріст, вага, колір волосся.
Тому при рішенні задачі потрібно обрати деяку абстракцію дійсності, тобто визначити множину даних, які з достатнім ступенем точності описують реальну ситуацію.
Вибір подання даних часто буває досить складним, оскільки він не визначається однозначно наявними засобами.
Гарним прикладом є подання чисел, що самі є абстракцією властивостей об'єктів. Якщо єдина (або основна) операція - додавання, то кращий спосіб представити число n - це написати n рисок. При цьому правило додавання стає простим і очевидним. Подібний принцип використовується в римських цифрах. Однак при додаванні великих чисел, а також при їх множенні і діленні становище змінюється. Подання чисел за допомогою арабських цифр дозволяє набагато легше розкласти ці операції на більш прості завдяки системі запису, заснованій на позиційній вазі цифр.
Відомо, що у всіх ЕОМ використовується подання чисел, засноване на двійкових цифрах 0 і 1 (розрядах). Воно незручне для людини через велику кількість цифр у числах, однак є найбільш придатним для електронних схем, оскільки значення 0 і 1 можна зручно і надійно кодувати наявністю або відсутністю електричного струму, електричного заряду або магнітного поля.
Тому дуже важливою є та обставина, що мова програмування надає у наше розпорядження деякий набір абстракцій, що дозволяє нам зручно представити множину даних розв'язуваної задачі і виконувати над ними всі необхідні операції, а питання реалізації цих абстракцій залишити розроблювачам ЕОМ і трансляторів мов. Застосування мови, що надає множину підходящих абстракцій для рішення більшості задач, покращує надійність програм. Набагато легше написати програму, користуючись поняттями чисел, множин, послідовностей і циклів, чим на розрядах, “словах” і переходах.
У математиці прийнято класифікувати змінні у відповідності з деякими важливими характеристиками. Проводиться строге розмежування,
по-перше, між дійсними, комплексними і логічними змінними;
по-друге, між змінними, що являють окремі значення, множини значень або множини множин;
по-третє, між функціями, функціоналами, множинами функцій і т.д.
При обробці даних на ЕОМ така класифікація не менш важлива.
Ми будемо додержуватися принципу, що кожна константа, змінна, вираз або функція бувають певного типу. Цей тип визначає множину значень, які може приймати змінна або вираз, або обробляти функція.
У математичних текстах тип змінної звичайно визначається по її виду без звертання до контексту. У програмах для ЕОМ це не застосовується, оскільки в них для позначення змінних використовуються літери тільки одного виду (звичайно латинські). Тому в програмуванні широко використовується правило, відповідно до якого тип явно задається при оголошенні константи, змінної або функції. Це правило особливо важливе тому, що транслятор повинний вибрати подання і розташування об'єктів у пам'яті ЕОМ, що дозволяє уникнути динамічного розподілу пам'яті і реалізувати більш ефективні алгоритми обробки даних. Явне визначення типів дозволяє також трансляторові здійснювати додатковий контроль над правильністю проведених над об'єктами операцій, що дозволяє усувати деякі помилки програмування ще на етапі її трансляції.
Таким чином, розглянута тут концепція типу, що включена в Паскаль, має наступні основні властивості:
1. Довільний тип даних визначає множину значень, до якої належать константи, яку можуть приймати змінні (або вирази), яка може бути результатом операцій (або функцій).
2. Тип значення, що задається константою, змінною або виразом, можна визначити по її виду або оголошенню без необхідності виконувати які-небудь обчислення.
3. Кожна операція або функція вимагає аргументів фіксованого типу. Якщо операція допускає аргументи декількох типів (наприклад, “+” використовується для додавання як цілих, так і дійсних чисел), то тип результату можна визначити за спеціальними правилами мови.
І хоча в пам'яті ЕОМ усі дані зрештою представляються у виді однорідної структури розрядів, саме абстрактна структура мови програмування дозволяє визначати типи даних на тлі одноманітних записів у пам'яті ЕОМ.
25 26 27 28 Наверх ↑