Pascal

Матеріал з Драматика
Перейти до навігації Перейти до пошуку

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

Давно то діялось...
Стаття розповість вам про давно минулі, але цікаві історичні події, чи про особистостей в історії. Якщо вам здається, що стаття розповідає про давно непотрібне закам'яніле лайно мамонтів, то негайно напишить нам про це на порталі спільноти.

Ніклаус Вірт дивиться на тебе як на Сюшника

Pascal (поцкаль, москаль) — компільована мова програмування зі статичною типізацією. Розроблена Ніклаусом Віртом, щоб навчити школоту програмуванню. [1] Названа на честь французького математика Блеза Паскаля. Загалом її вже можна вважати мертвою, навіть в школах зараз вчать Пайтон, а колись Паскаль був одною з продакшн-мов, на нього були вакансії. Наразі вчити Паскаль сенсу немає — тільки якщо в тебе є дуже специфічна стара програма, яку треба підтримувати в робочому стані (т.зв. legacy code).

Передісторія

Як вже сказано вище, Паскаль розроблявся саме для навчання. Через що мав жорстку типізацію і інші речі, які примушували школоту думати, перед тим, як писати. Це стало одною із причин майбутнього витиснення Паскаля іншими мовами. А на початку 80-х, він був дуже популярним - зрозумілий синтаксис, порівняно проста реалізація компілятора, захист від вистрілу в ногу. Turbo Pascal вже став вважатися серйозною мовою для комерційних розробок. Компанія Borland підняла можливості Паскаля до неймовірних, як на свій час, меж. Дуже швидкий і "інтелектуальний" компілятор і фантастично зручне середовище розробки! Брікпоінти, вотчі і багато іншого, такого звичного зараз нам. До речі, класичний "борландівський" інтерфейс - зверху меню, внизу статус бар, посередині робоча площа із вікнами - до сих пір є найзручнішим.

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

Тим не менше, до кінця 80-х, Паскаль був другим (після Visual Basic) за популярністю в аматорів, та десь третім-четвертим для професійних розробників. Остаточно "добило" Паскаль новомодне ООП. Його реалізація в Turbo/Borland Pascal, була відверто кривенькою. Коли Сі, плавно перейшло на C++, для Паскаля наплодили десятки варіантів, стандартів, надбудов і т.п. Реалізація від Borland`а - Delphi - перетягнуло більшість паскалістів до себе (фактично, це була перша нормальна реалізація візуальної мови програмування). Проте з часом Delphi скотилося в гівно, розгубивши усіх шанувальників. Тепер Паскаль більше асоціюється із безмежно застарілим, але добрим Turbo Pascal [2]

Короткий огляд

Коментарі

  • //коментар - до кінця рядка
  • {коментар} - від { до }

Типізація

Типізація - статична. Основні типи:

  • Числові: float, double, integer, extended і т.д.
  • Символьні: char, string, Pchar, PWideChar.
  • Логічні: boolean (тільки true або false)

Переваги

  • Дуже простий, навіть мавпа освоїть.
#include <stdio.h>

int main(int t,int _,char*a)
{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
)&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
+1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

Паскаль це просто не буде компілювати. [3]

Недоліки

  • Блядский синтаксис (кожен блок коду має починатись begin, а закінчуватись end;, що пиздець як зайобує, особливо у великих проектах)
  • Велика кількість коду.
  • Він для бидлокодерів. Він так і задумувався, щоб вчити школоту.

Основні реалізації

  • Object Pascal by Apple
  • Turbo Pascal, Object Pascal by Borland.
  • Lazarus (тупа, глючна реалізація, компілює так, що ховайся (розмір скомпільованого бінаря важить 19+ Мб))

Лулзи

А лулзи починаються, коли починаєш намагатись працювати з динамічними масивами. Особливо коли це робиш в Lazarus.

Галерея

Посилання

Примітки

  1. Воно так і було. Чесно
  2. Проте ми пам`ятаємо і за FreePascal
  3. Себто на ньому не пишуть езотеричну хуйню.
  4. То є об'єктно-орієнтована версія поцкалю