Privacy Policy Cookie Policy Terms and Conditions Pascal (мова програмування) - Вікіпедія

Pascal (мова програмування)

Матеріал з Вікіпедії — вільної енциклопедії.

Pascalалгоритмічна мова програмування універсального призначення.

Зміст

[ред.] Історія виникнення і особливості мови

Роком створення Pascal вважається 1970-й, і творцем цієї мови програмування є Ніклас Вірт. Початкова мета розробки мови диктувалася необхідністю інструмента «для навчання програмуванню як систематичній дисципліні». Pascal належить до Algol-подібних мов програмування, оскільки використовує семантику Algol-ла. Однак Pascal мав суттєве удосконалення — строга типизація. Це означало, що присвоювання можна було виконувати лише для змінних, що належуть до одного типу (одночасно вказувались правила, за якими типи вважались однаковими). Це удосконалення суттєво покращуло стиль програмування, оскільки значну частину помилок вдавалось виявити ще на етапі компіляції — що збільшує надійність програм.

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

Існує ряд об'єктивних причин, які обумовили видатний успіх мови Pascal. Серед них у першу чергу необхідно вказати наступні:

  • Мова в природній і елегантній формі відобразила найважливіші сучасні концепції технології розробки програм.
  • Завдяки своїй компактності, концептуальній цілісності й ортогональності понять, а також вдалому оригінальному опису, запропонованому автором мови, Pascal виявився дуже легким для вивчення й освоєння.
  • Незважаючи на відносну простоту мови, вона виявилась придатною для дуже широкого спектру додатків, у тому числі для розробки дуже великих і складних програм, наприклад, операційних систем.
  • Pascal дуже технологічний для реалізації практично усіх, у тому числі і нетрадиційних, машинних архітектур. Стверджується, що розробка Pascal-транслятора «майже» не перевищує за трудомісткістю гарної дипломної роботи випускника ВНЗу.
  • Мова Pascal стандартизована в багатьох країнах, а у. 1983 році було прийнято міжнародний стандарт (ISO 7185:1983).

[ред.] Turbo Pascal

Turbo, а пізніше Borland Pascal — це одна з найвдаліших і найпоширеніших реалізацій мови, створена компанією Borland. Turbo Pascal — могутнє розширення американського стандарту (ANSI Pascal), яке враховує архітектурні особливості ОС MS DOS та MS Windows і постачається зі значними за обсягом і різноманітності пакетами стандартних процедур. Такі принципові нововведення, як апарат модулів і об’єктно-орієнтовані засоби полегшують конструювання великих програмних систем на основі технології модульного програмування.

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

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

Borland Pascal 7.0 дозволяв компілювати програми для DOS, Windows і захищеного режиму MS DOS, також містив ряд додаткових утиліт.

[ред.] Спадок Pascal

Разом із популярністю мови стало відомим і ім'я Нікласа Вірта. Працюючи у Швейцарскому федеральному технічному інституті разом із своїми учнями і послідовниками удосконалював теорію мови програмування загального використання. Так у 1980 році зявилась Modula (хоча коли говорять Modula, мають на увазі Modula-2). Modula-2 стала завершенням розвитку лінії структурого програмування. У 1990 році — зявився Oberon що вже використовував принципи Об’єктно-орієнтоване програмування (хоча об'єктно-орієнтоване програмування було можливим вже у версії 5.5 однієї з найпопулярніших реалізацій мови — Turbo Pascal).

Тепер можна говорити про існування родини Pascal-подібних мов, куди належать Pascal, Modula-2, Oberon, Oberon-2, ActiveOberon, Component Pascal.

Не так давно з'явилась нова мова з цієї великої родини - Zonnon для .NET. Вона, як і її попередники, була створена у Швейцарському федеральному технологічному інституті у Цюріху. Основний наголос у ній зроблено на простоту, ясний синтаксис та модульність. Zonnon увібрав у себе все краще від Java, C#, Active Oberon. Мова Zonnon додає паскалю нові особливості, включаючи процеси в об'єктах, перевантаження операторів та обробку виключних ситуацій.

[ред.] Зразки програм

Класичний приклад:

program HelloWorld;

begin
  writeln('Hello, World!');
end.

Обчислення факторіалу:

program factorial;
var i,n,r:dword;
begin
  readln(n);
  r:=1;
  if n<>0 
  then begin 
    for i:=n downto 1 do begin
      r:=r*i;
    end;
  end;
  writeln('factorial(',n,')=',r);
end.

Оскільки Pascal дозволяє використовувати рекурсію, цю програму можна переписати інакше:

program factorial;
var n:dword;
function f(n:dword):dword;
  begin
    if n=0 then f:=1 else f:=n*f(n-1);
  end;
begin
  readln(n);
  writeln('factorial(',n,')=',f(n));
end.


[ред.] Популярні реалізації Pascal:

  • FreePascal [1]
  • GNU Pascal [2]
  • Borland/Turbo Pascal [3]
  • TMT Pascal [4]

[ред.] Зовнішні посилання

Критика Pascal (дещо застаріла, станом на 1981).

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu