ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Мови програмування, їх класифікація та розвиток
         

     

    Інформатика, програмування

    Реферат на тему:

    Мови програмування, їх класифікація та розвиток

    ЗМІСТ.

    1.Вступ

    1.1. Інтерпретатори

    1.2. Компілятори

    2. Класифікація мов програмування

    2.1. Машинно - орієнтовані мови

    2.1.1. Машинні мови

    2.1.2. Мови символічного кодування

    2.1.3. Автокодом

    2.1.4. Макрос

    2.2. Машинно - незалежні мови

    2.2.1. Машинно - незалежні мови

    2.2.2. Універсальні мови

    2.2.3. Діалогові мови

    2.2.4. Непроцедурного мови

    3. Розвиток мов програмування

    3.1. Асемблер

    3.2. Лісп

    3.4. Бейсік

    3.5. Рефаїл

    3.6. Пролог і Пролог + +

    3.7. Лекс

    3.8. Сі

    3.8.1. Особливості мови Сі

    3.8.2. Недоліки мови Сі

    3.9. Сі + +

    3.9.1. Зауваження за проектом мови Сі + +

    4. Висновок

    5. Бібліографія 1. ВСТУП

    Мова формує наш спосіб

    мислення і визначає те,

    про що ми можемо мислити.

    Б.Л Ворф

    Прогрес комп'ютерних технологій визначив процес появи нових різноманітних знакових систем для запису алгоритмів - мов програмування . Сенс появи такої мови - оснащений набір обчислювальних формул додаткової інформації, перетворює даний набір в алгоритм.

    Мова програмування служить двом пов'язаних між собою цілям: він дає програмісту апарат для завдання дій, які повинні бути виконані, і формує концепції, якими користується програміст, розмірковуючи про те, що робити. Першої мети ідеально відповідає мова, яка настільки "близький до машини", що всіма основними машинними аспектами можна легко і просто оперувати досить очевидним для програміста чином. Другий цілі ідеально відповідає мова, яка настільки "близький до розв'язуваної задачі", щоб концепції її рішення можна було виражати прямо і коротко.

    Зв'язок між мовою, на якому ми думаємо/програмуємо, і завданнями та рішеннями, які ми можемо представляти в своїй уяві, дуже близька. За цієї причини обмежувати властивості мови тільки цілями виключення помилок програміста в кращому випадку небезпечно. Як і у випадку з природними мовами, є величезна користь бути, принаймні, двомовним. Мова надає програмісту набір концептуальних інструментів, якщо вони не відповідають завданню, то їх просто ігнорують. Наприклад, серйозні обмеження концепції покажчика змушують програміста застосовувати вектора і цілу арифметику, щоб реалізувати структури, покажчики і т.п. Гарне проектування і відсутність помилок не може гарантуватися чисто за рахунок мовних засобів.

    Може здатися дивним, але конкретний комп'ютер здатний працювати з програмами, написаними на його рідному машинному мовою. Існує майже стільки ж різних машинних мов, скільки і комп'ютерів, але всі вони суть різновиди однієї ідей прості операції здійснюються зі швидкістю блискавки на двійкових числах.

    Персональні комп'ютери IBM використовують машинний мова мікропроцесорів сімейства 8086, тому що їх апаратна частина грунтується саме на даних мікропроцесори.

    Можна писати програми безпосередньо на машинній мові, хоча це й складно. На зорі комп'ютеризації (на початку 1950-х р.р.), машинний мова була єдиною мовою, більшого людина до того часу не придумав. Для порятунку програмістів від суворого машинної мови програмування, були створені мови високого рівня (тобто немашінние мови), які стали своєрідною сполучною мостом між людиною і машинним мовою комп'ютера. Мови високого рівня працюють через трансляційні програми, які вводять "вихідний код" (гібрид англійських слів і математичних виразів, який зчитує машина), і в остаточному підсумку змушує комп'ютер виконувати відповідні команди, які даються на машинному мовою. Існує два основних види трансляторів: інтерпретатори, що сканують і перевіряють вихідний код у один крок, і компілятори, які сканують вихідний код для виробництва тексту програми на машинній мові, яка потім виконується окремо.

    1.1. Інтерпретатори

    Одне, часто згадується перевага інтерпретаторной реалізації полягає в тому, що вона допускає "безпосередній режим". Безпосередній режим дозволяє вам задавати комп'ютера завдання на зразок PRINT 3.14159 * 3/2.1 і повертає вам слово, як тільки ви натиснете клавішу ENTER (це дозволяє використовувати комп'ютер вартістю 3000 доларів в якості калькулятора вартістю 10 доларів). Крім того, інтерпретатори мають спеціальні атрибути, які спрощують налагодження. Можна, наприклад, перервати обробку інтерпретаторной програми, відобразити вміст певних змінних, побіжно переглянути програму, а потім продовжити виконання.

    Найбільше програмістам подобається в інтерпретатора можливість отримання швидкої відповіді. Тут немає необхідності в компілювання, тому що інтерпретатор завжди готовий для втручання у вашу програму. Введіть RUN і результат вашого останнього зміни виявляється на екрані.

    Однак інтерпретаторние мови мають недоліки. Необхідно, наприклад, мати копію інтерпретатора в пам'яті весь час, тоді як багато можливостей інтерпретатора, а отже і його можливості можуть не бути необхідними для виконання конкретної програми.

    Слабо помітним недоліком інтерпретаторів є те, що вони мають тенденцію відбивати охоту до хорошого стилю програмування. Оскільки коментарі та інші формалiзуються, деталі займають значне місце програмної пам'яті, люди прагнуть ними не користуватися. Диявол менше люті, ніж програміст, що працює на інтерпретаторном Бейсіку, який намагається отримати програму в 120К в пам'яті ємністю 60К. але найгірше те, що інтерпретатори тихохідні. Ними витрачається дуже багато часу на розгадування того, що робити, замість того щоб займатися дійсно справою.

    При виконанні програмних операторів, інтерпретатор повинен спочатку сканувати кожен оператор з метою прочитання його вмісту (що ця людина просить мене зробити?), а потім виконати потрібну операцію. Оператори в циклах скануються надто багато.

    Розглянемо програму: на інтерпретаторном Бейсік 10 FOR N = 1 TO 1000 20 PRINT N, SQR (N) 30

    NEXT N при першому переході по цій програмі Бейсік-Інтерпретатор повинен розгадати що означає рядок 20:

    1.преобразовать числову змінну N в рядок

    2.послать рядок на екран

    3.переместіть в наступну зону друку

    4.вичісліть квадратний корінь з N

    5.преобразовать результат в рядок

    6.послать рядок на екран

    При другому проході циклу все це розгадування повторюється знову, тому що абсолютно забуті всі результати вивчення цього рядка якусь мілісекунди тому тому. І так у всіх наступних 998 проходах. Цілком очевидно, що якщо вам вдалося якимось чином відокремити фазу сканування/розуміння від фази виконання ви мали б більш швидку програму. І це саме те, для чого існують компілятори.

    1.2. Компілятори

    Компілятор-це транслятор тексту на машинний мова, яка зчитує джерельний код. Він оцінює його відповідно до синтаксичної конструкцією мови та перекладає на машинний мова. Іншими словами, компілятор не виконує програми, він їх будує. Інтерпретатори неможливо відокремити від програм, які ними проганяються, компілятори роблять свою справу і йдуть зі сцени. При роботі з компілюються мовою, таким як Турбо-Бейсік, ви прийдете до що необхідно думати про ваших програмах в ознаках двох головних фаз їх життя: періоду компілювання і періоду прогону. Більшість програм будуть проганяти в чотири - десять разів швидше їх інтерпретаторних еквівалентів. Якщо ви попрацюєте над поліпшенням, то зможете досягти 100-кратного підвищення швидкодії. Зворотний бік монети полягає в тому, що програми, які витрачають велику частину часу на метушню з файлами на дисках або очікування введення, не зможуть продемонструвати якесь вражаюче збільшення швидкості.

    2. КЛАСИФІКАЦІЯ МОВ ПРОГРАМУВАННЯ

    2.1. Машинно - орієнтовані мови

    Машинно - орієнтовані мови - це мови, набори операторів і образотворчі засоби яких істотно залежать від особливостей ЕОМ (внутрішнього мови, структури пам'яті і т.д.). Машинно-орієнтовані мови дозволяють використовувати всі можливості та особливості Машинно - залежних мов:

    - висока якість створюваних програм (компактність і швидкість виконання);

    - можливість використання конкретних апаратних ресурсів;

    - передбачуваність об'єктного коду та замовлень пам'яті;

    - для складання ефективних програм необхідно знати систему команд та особливості функціонування даної ЕОМ;

    - трудомісткість процесу складання програм (особливо на машинних мовах і ЯСК), погано захищеного від появи помилок;

    - низька швидкість програмування;

    - неможливість безпосереднього використання програм, складених на цих мовах, на ЕОМ інших типів.

    Машинно-орієнтовані мови за ступенем автоматичного програмування поділяються на класи.

    2.1.1. Машинний мова

    Як я вже згадував, у введенні, окремий комп'ютер має свій певний Машинний мова (далі МЯ ), йому наказують виконання згаданих операцій над обумовленими ними операндами, тому МЯ є командним. Однак, деякі сімейства ЕОМ (наприклад, ЄС ЕОМ, IBM/370/тощо) мають єдиний МЯ для ЕОМ різної потужності. У команді будь-якого з них повідомляється інформація про місцезнаходження операндів і тип виконуваної операції.

    У нових моднлях ЕОМ намічається тенденція до підвищення внутрішніх мов машинно - апаратним шляхом реалізовувати більш складні команди, що наближаються за своїми функціональними дій до операторів алгоритмічних мов програмування.

    2.1.2. Мови Символічного Кодування

    Продовжимо розповідь про командні мовах, Мови Символічного Кодування (далі ЯСК ), так само, як і МЯ , є командними. Однак коди операцій та адреси в машинних командах, що представляють собою послідовність двійкових (у внутрішньому коді) або вісімкових (часто що використовуються при написанні програм) цифр, в ЯСК заміщені знаком (ідентифікатори), форма написання яких допомагає програмісту легше запам'ятовувати смисловий зміст операції. Це забезпечує суттєве зменшення кількості помилок при складанні програм.

    Використання символічних адрес - перший крок до створення ЯСК . Команди ЕОМ замість істинних (фізичних) адрес містять символічні адреси. За результатами складеної програми визначається необхідна кількість сейфів для зберігання вихідних проміжних і результуючих значень. Призначення адрес, що виконується окремо від складання програми в символічних адресах, може проводитися менш кваліфікованим програмістом або спеціальною програмою, що в значній мірі полегшує працю програміста.

    2.1.3. автокодом

    Є також мови, що включають у себе всі можливості ЯСК , за допомогою розширеного введення макрокоманд - вони називаються автокодом .

    У різних програмах зустрічаються деякі досить часто використовуються командні послідовності, які відповідають певним процедурам перетворення інформації. Ефективна реалізація таких процедур забезпечується оформленням їх у вигляді спеціальних макрокоманд і включенням останніх у мову програмування, доступний програмісту. Дії переводяться в машинні команди двома шляхами - розстановкою і генеруванням. У постановочної системі містяться «кістяки» - серії команд, що реалізують потрібну функцію, позначену дії. Дії забезпечують передачу фактичних параметрів, які в процесі трансляції вставляються в «Кістяк» програми, перетворюючи її в реальну машинну програму.

    В системі з генерацією є спеціальні програми, що аналізують дії, які визначають, яку функцію необхідно виконати і формують необхідну послідовність команд, що реалізують цю функцію.

    Обидві зазначених системи використовують транслятори з ЯСК і набір макросів, які також є операторами автокодом.

    Розвинені автокодом отримали назву Асемблер и. Сервісні програми тощо, як правило, складені на мовах типу Асемблер . Більш повна інформація про мову Асемблер а див. нижче.

    2.1.4. Макрос

    Мова, що є засобом для заміни послідовності символів описують виконання необхідних дій ЕОМ на більш стислу форму - називається Макрос (засіб заміни).

    В основному, Макрос призначений для того, щоб скоротити запис вихідної програми. Компонент програмного забезпечення, що забезпечує функціонування макросів, називається Макропорцесори . На Макропорцесори надходить макроопределяющій і початковий текст. Реакція Макропорцесори на виклик-видача вихідного тексту.

    Макрос однаково може працювати, як з програмами, так і з даними.

    2.2. Машинно - незалежні мови

    Машинно - незалежні мови - це засіб опису алгоритмів вирішення завдань та інформації, що підлягає обробці. Вони зручні у використанні для широкого кола користувачів і не вимагають від них знання особливостей організації функціонування ЕОМ і нд

    Подібні мови отримали назву високорівневих мов програмування. Програми, що складаються на таких мовах, являють собою послідовності операторів, структуровані відповідно до правил розглядання мови (завдання, сегменти, блоки і т.д.). Оператори мови описують дії, які повинна виконувати система після трансляції програми на МЯ .

    Т.ч., командні послідовності (процедури, підпрограми), часто використовувані в машинних програмах, представлені в високорівневих мовах окремими операторами. Програміст отримав можливість не розписувати в деталях обчислювальний процес на рівні машинних команд, а зосередитися на основних особливостях алгоритму.

    2.2.1. Проблемно - орієнтовані мови

    З розширенням областей застосування обчислювальної техніки виникла необхідність формалізувати уявлення постановки і рішення нових класів завдань. Необхідно було створити такі мови програмування, які, використовуючи в даній області позначення та термінологію, дозволили б описувати необхідні алгоритми для рішення поставлених завдань, ними стали проблемно - орієнтовані мови . Ці мови, мови орієнтовані на вирішення певних проблем, повинні забезпечити програміста засобами, що дозволяють коротко і чітко формулювати завдання і отримувати результати у необхідній формі.

    Проблемних мов дуже багато, наприклад:

    Фортран, Алгол - мови, створені для вирішення математичних завдань;

    Simula , Слэнг - для моделювання;

    Лісп, Снобол - для роботи з обліковим структурами.

    Про ці мовах я розповім далі.

    2.2.2. Універсальні мови

    Універсальні мови були створені для широкого кола завдань: комерційних, наукових, моделювання і т.д. Перший універсальна мова був розроблений фірмою IBM, що став в послідовності мов Пл/1 . Другий за потужністю універсальна мова називається Алгол-68 . Він дозволяє працювати з символами, розрядами, числами з фіксованою та плаваючою комою. Пл/1 має розвинену систему операторів для управління форматами, для роботи з полями змінної довжини, з даними організованими у складні структури, і для ефективного використання каналів зв'язку. Мова враховує включені в багато машини можливості переривання і має відповідні оператори. Передбачена можливість паралельного виконання ділянок програм.

    Програми в Пл/1 компілюються за допомогою автоматичних процедур. Мова використовує багато властивості Фортран, Алгол, Кобол . Однак він припускає не тільки динамічне, але і кероване і статистичне розподілу пам'яті.

    2.2.3. Діалогові мови

    Поява нових технічних можливостей поставило завдання перед системними програмістами -- створити програмні засоби, що забезпечують оперативну взаємодію людини з ЕОМ їх назвали діалоговими мовами .

    Ці роботи велися в двох напрямках. Створювалися спеціальні управлять мови для забезпечення оперативного впливу на проходження завдань, які складалися на будь-яких раннє неопрацьованих (не діалогових) мовами. Розроблялися також мови, які крім цілей управління забезпечували б опис алгоритмів вирішення завдань.

    Необхідність забезпечення оперативної взаємодії з користувачем зажадала збереження в пам'яті ЕОМ копії вихідної програми навіть після отримання об'єктної програми в машинних кодах. При внесенні змін до програми з використанням діалогового мови система програмування за допомогою спеціальних таблиць встановлює взаємозв'язок структур вихідної та об'єктної програм. Це дозволяє здійснити необхідні редакційні зміни до об'єктної програмі.

    Одним із прикладів діалогових мов є Бейсік .

    Бейсік використовує позначення подібні звичайним математичним виразами. Багато операторів є спрощеними варіантами операторів мови Фортран . Тому ця мова дозволяє вирішувати досить широке коло завдань.

    2.2.4. Непроцедурного мови

    непроцедурного мови складають групу мов, що описують організацію даних, що обробляються за фіксованими алгоритмам (табличні мови і генератори звітів), і мов зв'язку з операційними системами.

    Дозволяючи чітко описувати як завдання, так і необхідні для її вирішення дії, таблиці рішень дають змогу в наочній формі визначити, які умови повинні бути виконані перш ніж переходити до якого-небудь дії. Одна таблиця рішень, що описує деяку ситуацію, містить всі можливі блок-схеми реалізацій алгоритмів рішення.

    Табличні методи легко освоюються фахівцями будь-яких професій.

    Програми, складені на табличному мовою, зручно описують складні ситуації, що виникають при системному аналізі.

    3. РОЗВИТОК МОВ ПРОГРАМУВАННЯ

    3.1 Асемблер

    Мова Асемблер Так - це символічне подання машинної мови. Він полегшує процес програмування в порівнянні з програмуванням в машинних кодах.

    Програмістові не обов'язково вживати справжні адреси комірок пам'яті з розміщеними в них даними, що беруть участь в операції, і обчислювані результати, а також адреси тих команд, до яких програма не звертається.

    Деякі завдання, наприклад, обмін з нестандартними пристроями обробки даних складних структур неможливо вирішити за допомогою мов програмування високого рівня. Це під силу асемблеру.

    В принципі, мова Асемблер є машинним мовою. І програміст реалізує будь-яку задачу на мовах високого рівня, за допомогою Асемблер Так може визначити осмислено чи рішення даного завдання, з точки зору використання ЕОМ.

    Уміючи розібратися в роздруківці мови асемблера, дає можливість полегшити пошук помилок в програмах, тому що деякі мови є компіляторами (див. п. 1.2 .). 3.2. Лісп Один з найстаріших мов програмування Фортран був створений в 50-х рр.. нашого століття. Фортран і подібні йому мови програмування (Алгол, ПЛ/1) призначалися для розв'язання обчислювальних задач, що виникають в математиці, фізиці, інженерних розрахунках, економіку тощо Ці мови в основному працюють з числами.

    Другий найстаріший мова програмування Лісп ( L ist I nformation S ymbol P rocessing), Дж. Маккарті у 1962 р. скоріше для роботи з рядками символів, ніж для роботи з числами. Це особливе призначення Лісп а відкрило для програмістів нову галузь діяльності, відому нині, як «Штучний інтелект». В даний час Лісп успішно застосовується в експертних системах, системах аналітичних обчислень і т.п.

    великі області можливих додатків Лісп Так викликала появу безлічі різних діалектів Лісп Так. Це легко пояснити: застосування Лісп а для розуміння природної мови вимагає певного набору базисних функцій, інших, ніж, наприклад, від використовуваного в задачах медичної діагностики.

    Існування безлічі різних діалектів Лісп а призвело до створення на початку 80-х рр.. Common LISP Комітету, який повинен був вибрати найбільш підходящий діалект Лісп а і запропонувати його в якості основного. Цей діалект, обраний Комітетом в 1985р., отримав назву Common LISP . Надалі він був прийнятий в університетах США, а також багатьма розробниками систем штучного інтелекту, в якості основного діалекту мови Лісп .

    Мова програмування Лісп суттєво відрізняється від інших мов програмування, таких, як Паскаль , Сі і т.п. Робота з символами і робота з числами як з основними елементами вимагає різних способів мислення.

    Спочатку Лісп був задуманий як теоретичний засіб для рекурсивних побудов, а сьогодні він перетворився на потужний засіб, що забезпечує програміста різноманітної підтримкою, що дозволяє йому швидко будувати прототипи дуже і дуже серйозних систем.

    Професор Массачусетського технологічного інституту Дж. Саммай зауважив, що математична ясність і гранична чіткість Лісп Так - це ще не все. Головне - Лісп дозволяє сформулювати і запам'ятати «ідіоми», настільки характерні для проектів з штучного інтелекту.

    3.3. Фортран

    Одним з перших і найбільш вдалих компіляторів стала мова Фортран , розроблений фірмою IBM. Професор Дж. Букс і група американських фахівців в області програмування в 1954 році опублікувало перші повідомлення про мову. Дослівно, назва мови FOR mulae TRAN slation-перетворення формул.

    Серед причин довголіття Фортрану (а він один з найпоширеніших мов у світі), можна відзначити просту структуру, як самого Фортрану, так і призначених для нього трансляторів. Програма на Фортране записується в послідовності пропозицій або операторів (опис якогось перетворення інформації), і оформляється за певними стандартами. Ці стандарти накладають обмеження, зокрема, на форму запису і розташування частин оператора в рядку бланка для запису операторів. Програма, записана на Фортране, являє собою один чи кілька сегментів (підпрограм) з операторів. Сегмент, що керує роботою всієї програми в цілому, називається основною програмою.

    Фортран був задуманий для використання у сфері наукових та інженерно-технічних обчислень. Однак на цій мові легко описуються завдання з розгалуженою логікою (моделювання виробничих процесів, рішення ігрових ситуацій і тощо), деякі економічні завдання і особливо завдання редагування (складання таблиць, зведень, відомостей і т.д.).

    Модифікація мови Фортран , що з'явилися в 1958 році, отримала назву Фортран II і містила поняття підпрограми і загальних змінних для забезпечення зв'язку між сегментами.

    До 1962 року відноситься поява мови, відомого під ім'ям Фортран IV і що став найбільш вживаною в даний час. До цього ж часу відноситься і початок діяльності комісії при Американській Асоціації Стандартів ( ASA ) , яка виробила до 1966 року два стандарти - мови Фортран і базисний (основний) Фортран ( Basic FORTRAN ). Ці мови приблизно відповідають модифікаціям IV і II , однак базисний Фортран є підмножиною Фортрану, у той час, як Фортран II таким для Фортрану IV не є. Мова Фортран до сих пір продовжує розвиватися і удосконалюватися, впливаючи на створення та розвиток інших мов. Наприклад, Фортран закладений в основу Basic - діалогового мови, дуже популярного для вирішення невеликих завдань, чудового мови для навчання навичкам використання алгоритмічних мов в практиці програмування. Розроблено ця мова - Beginner's All-purpose Symbolic Instruction Code -- групою співробітників Обчислювального центру Дармутского коледжу, штат Нью-Гемпшир створений в 19 .... . Але це вже наступний мова.

    3.4. Бейсік

    Як знамениті гамбургери, бейсбол і баскетбол, Бейсік - це продукт Нової Англії. Як я говорив, створений у 1964р., Як мову навчання програмування. Бейсік є загальноприйнятим акронімом від " B eginner's A ll-purpose S ymbolic I nsruction C ode " (BASIC) - М ногоцелевой С імволіческій Про буча К од для Н ачінающіх ".

    Незабаром як учні, так і автори програм виявили, що Бейсік може робити практично все те, що робить нудний незграбний Фортран . А так як Бейсік у було легко навчитися і легко з ним працювати, програми на ньому писалися звичайно швидше, ніж на Фортран е. Бейсік був також доступний на персональних комп'ютерах, зазвичай він вбудований в ПЗУ. Так Бейсік завоював популярність. Цікаво, що через 20 років після винаходу Бейсік Так, він і сьогодні самий простий для освоєння з десятків мов общецелевого програмування, що є в розпорядженні любителів програмування. Більше того, він чудово справляється з роботою.

    Незважаючи на висловлювання снобів - прихильників мов Сі і Паскаля , Бейсік вважається діловою мовою, забезпеченим потужними засобами вирішення специфічних завдань, які зазвичай більшість користувачів вирішують за допомогою невеликих комп'ютерів, а саме: працюючи з файлами і виводячи текстове і графічне зображення на екрані дисплея.

    Незважаючи на окремі недоліки Бейсік Так, ніхто не буде заперечувати, що Кемені і Куртс досягли основної мети: зробити програмування доступніше для більшої кількості людей.

    Історично Бейсік звичайно реалізувався як інтерпретатор (знайомим ізомером є сам інтерпретаторний Бейсік ). Причинами переходу від аматорського рівня до професійного є численні розширення класичної версії мови: можливість відключення нумерації рядків, многостроковие структуровані програмні конструкції, структури типу "запис", що входять в імена підпрограми з параметрами і локальні змінні.

    Більше того, з появою транслятора QuickBasic фірми Microsoft розробники отримали можливість будувати на Бейсіку програми з роздільно компільованих модулів, деякі з яких можуть бути написані на інших мовах. Тепер, як і у випадку інших провідних мов програмування, розробник має вибір з кількох промислових бібліотек підпрограм, які містять готові рішення для поширених завдань програмування.

    3.5. Рефаїл

    Безсумнівно треба розповісти і про деяких мовах програмування створених у нас на батьківщині. Один з таких мов є Рефаїл , розроблений у нас в Росії (СРСР), в 1966р. ІПМ АН СРСР. Ця мова простий і зручний для опису маніпуляцій над довільними текстовими об'єктами.

    Рефаїл широко застосовується при розробці трансляторів з алгоритмічних мов як універсальних і проблемно - орієнтованих, так і автокодом. Крім використання в задачах трансляції, Рефаїл має такі важливі сфери застосування, як машинне виконання громіздких аналітичних викладок в теоретичній фізиці та прикладної математики; проектування «розумних» інформаційних систем, що здійснюють нетривіальну логічну обробку інформації; машинне доказ теорем; моделювання цілеспрямованої поведінки; розробка діалогових навчальних систем; дослідження в області штучного інтелекту і т.п.

    Програмування на Рефаїл е має специфіку, пов'язану, насамперед, з тим, що Рефаїл є мовою функціонального типу на відміну від звичайних операторних мов типу Алгол , Фортран , тощо. Якщо програма на операторних мовами - ні що інше, як сукупність наказів-операторів, то програма на Рефаїл е являє собою по суті опис зв'язків і відносин між певними поняттями.

    Внаслідок того, що в Рефале програміст сам визначає структуру оброблюваної інформації, ефективність програми істотно залежить від вдалого чи невдалого вибору цієї структури. Для завдання структур в Рефаїл е використовуються дужки, а специфіка усіх реалізацій мови така, що використання дужок різко підвищує ефективність виконання програми. Це досягається за допомогою адресного з'єднання дужок.

    Певною специфікою володіють і змінні типу «вираження» - мається на увазі їх здатність подовжуватися при ототожненні. Правильне використання змінних цього типу також дозволяє значно підвищити ефективність Рефаїл -- програми.

    3.6. Пролог і Пролог + +

    Пролог - це мова, призначена для пошуку рішень. Це декларативний мова, тобто формальна постановка задачі може бути використана для її вирішення. Пролог визначає логічні відносини в задачі, як відмінні від покрокового вирішення цього завдання.

    Центральною частиною Прологу є кошти логічного висновку, що вирішують запити, використовуючи заданий безліч фактів і правил, до яких звертаються як до тверджень. Пролог також не має поділу змінних на типи і може динамічно додавати правила і факти до засобів виведення. Таким чином, це гнучка мова, і він більш придатний для об'єктно-орієнтованого розширення, ніж мова зі строго заданими типами, наприклад, Паскаль . Пролог + + представляє собою додаток до стандартного Пролог у.

    Всі властивості мови як і раніше доступні програмістам. Отже, Пролог + + можна віднести до групи гібридних мов, представниками якої вважаються Object Pascal і C + + . Розширення Пролог + + підтримує всі властивості, притаманні зазвичай об'єктно-орієнтованим мовам: концепції об'єктів і класів, одиничне і багаторазове успадкування, розбивка на підкласи і передачу повідомлень. Підтримуються також деякі вдосконалені властивості, що існують в таких мовах, як C + + і Smalltalk , включаючи загальні та приватні методи.

    Цікавою властивістю є підтримка в мові програмування з управлінням даними. Ця техніка, яка може бути ще названа програмуванням, "керованим подіями", використовується в більшості мов об'єктно-орієнтованого програмування, особливо в тих, які розроблені для машин з інтерфейсом, керованим "мишею".

    Об'єктно-орієнтована програма реагує на події, які визначають потік управління. У Пролог е + + програмування з управлінням даними досягається за допомогою концепції демонів . Демон являє собою об'єкт, методи якого викликаються у випадку певних подій і можуть бути таким чином використані для підтримки програмування з управлінням даними.

    Сам мова заснований на концепції передачі повідомлень. Програма на Пролог е + + будується навколо багатьох об'єктів Пролог а + + , що обмінюються повідомленнями. У цьому сенсі Пролог + + ближче до чистого об'єктно-орієнтованого мови, такому, як Smalltalk , ніж C + + або Object Pascal . Визначення об'єктів будуються виходячи з викликів

    Open_Object [імя_об'екта] і Close_Object [імя_об'екта], а методи визначаються практично так само, як в інших об'єктно-орієнтованих мовах. Для завдання наслідування можна явно вказати, який метод якого об'єкта повинен успадковуватися, що є необхідним для багаторазового успадкування.

    3.7. Лекс

    Лекс - генератор програм лексичного аналізу. Лексичний аналіз - це розпізнавання лексем у вхідному потоці символів. Припустимо, що задано деякий кінцеве безліч слів (лексем) в деякому мовою і деякий вхідна слово. Необхідно встановити, який елемент безлічі (якщо він існує) співпадає з даними вхідним словом. Зазвичай лексичний аналіз виконується так званим лексичним аналізатором. Лексичний аналізатор -- це програма. Лексичний аналіз застосовується в багатьох випадках, наприклад, для побудови пакетного редактора або як розпізнавача директив в діалогової програмі і т.д. Однак, найбільш важливе застосування лексичного аналізатора - це використання його в компіляторі. Тут лексичний аналізатор виконує функцію програми введення даних.

    Лексичний аналізатор виконує першу стадію компіляції - читає рядки модульна програми, виділяє лексеми і передає їх на подальші стадії компіляції (граматичний розбір, кодогенерацію і т.д.).

    Лексичний аналізатор розпізнає тип кожної лексеми і відповідним чином позначає її. Наприклад,при компіляції Сі-програми можуть бути виділені наступні типи лексем: число, ідентифікатор, оператор, обмежувач і т.д.

    Лексичний аналізатор повинен не тільки виділити лексему, але і виконати деякі перетворення. Наприклад, якщо лексема - число, то його необхідно перевести у внутрішню (двійкову) форму запису як число з плаваючою чи фіксованою комою. А якщо лексема - ідентифікатор, то його необхідно розмістити в таблиці, щоб в подальшому звертатися до нього не з іменем, а за адресою в таблиці.

    Хоча лексичний аналіз по своїй ідеї простий, проте, ця фаза роботи компілятора часто займає більше часу, ніж будь-яка інша. Частково це відбувається через необхідність переглядати та аналізувати вихідний текст символ за символом. Іноді навіть буває необхідно повернути прочитаний символ у вхідний потік з тим, щоб повторити перегляд і аналіз.

    3.8. C і

    Сі - це мова програмування загального призначення, добре відомий своєю ефективністю, економічністю, і переносимістю. Зазначені переваги Сі забезпечують добру якість розробки майже будь-якого виду програмного продукту. Використання Сі в якості інструментального мови дозволяє отримувати швидкі і компактні програми. У багатьох випадках програми, написані на Сі , порівняні по швидкості з програмами, написаними на мові асемблера. При цьому вони мають кращу наочність і їх більш просто супроводжувати. Сі поєднує ефективність і потужність в відносно малий за розміром мовою.

    Сі - це чудовий мову, і хоча деяким він не подобається, але все-таки більшість програмістів його люблять. На Сі ви можете створювати програми, які роблять все, що ви побажаєте. Немає іншого такого мови, який би так само стимулював до програмування. Створюється враження, що інші мови програмування ставлять штучні перешкоди для творчості, а Сі - Ні. Використання цієї мови дозволяє скоротити витрати часу на створення працюючих програм. Сі дозволяє програмувати швидко, ефективно і передбачувано. Ще одна перевага Сі полягає в тому, що він дозволяє використовувати всі можливості вашої ЕОМ. Ця мова створений програмістом для використання іншими програмістами, чого про інших мовах програмування сказати не можна.

    3.8.1. Особливості мови Сі

    Мова Сі має свої суттєві особливості, давайте перерахуємо деякі з них:

    Сі забезпечує повний набір операторів структурного програмування. Сі пропонує незвично великий набір операцій. Багато операції Сі відповідають машинним командам, і тому допускають пряму трансляцію в машинний код. Різноманітність операцій дозволяє вибирати їх різні набори для мінімізації результуючого коду.

    Сі підтримує покажчики на змінні і функції. Покажчик на об'єкт програми відповідає машинному адресою цього об'єкта. За допомогою розумного використання покажчиків можна створювати еффе

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status