Курсова работа - Паскал днес - Информатика, програмиране

Текущата позиция на Паскал

C-подобните езици вече са станали признати лидери в областта на професионалното програмиране. За дълъг период Паскал беше може би почти единствената им алтернатива като универсален език. Въпреки това, когато работата на повечето професионални програмисти започна практически да се свежда до манипулиране на извиквания към повече или по-малко стандартен API-инструмент (Application Programming Interface - интерфейс за програмиране на приложения), възникна въпросът за избора на единствения език за програмиране, на който (и за който) ще бъде написан този API. Поради различни причини, обективни и субективни, изборът падна върху C/C++. Първо, C, подобно на Pascal, беше един от първите езици на високо ниво (HLL), който реши проблема с кокошката и яйцето: неговият компилатор беше написан на него. Второ, компилаторите за C вероятно са по-лесни за създаване, отколкото за всеки друг език (което всъщност беше една от целите на неговото развитие), така че тяхното пускане е най-икономически осъществимо. Въпреки това, не без субективни фактори: значителен дял от днешния API се произвежда от Microsoft, който отдавна разграничи "сферите на влияние" в тази област от Borland. Сега Borland не пуска компилатори за BASIC и Fortran, а Microsoft не пуска компилатори за Pascal и, разбира се, не ориентира своите API към тези езици, чиито компилатори не пуска.

Следователно лидерството на C в областта на професионалното програмиране се дължи главно на факта, че само той може да използва новия API веднага след пускането му, докато програмистите, работещи на други езици, трябва или да изчакат да се появят необходимите интерфейсни модули, илинапиши ги сам.

Въпреки това Pascal все още е един от лидерите в областта на създаването на СУБД, тъй като разработването на инструментален софтуер за работа с обектни версии на този език (Delphi) продължава. Освен това Pascal и неговите диалекти често се използват като "вътрешен" език на СУБД.

Силните страни на Pascal

Нека да разгледаме Pascal, както и C и BASIC от гледна точка на обучението за програмиране. Вече е писано много за дидактическия провал на езика C. BASIC също не е много подходящ за изучаване поради липсата на общоприет стандарт и "хаотичния" стил на работа, който насажда. Основното предимство на BASIC беше неговата изключителна невзискателност към компютърните ресурси, което стана без значение. Преди това, когато имаше компютри с 16–64 KB RAM и памет под формата на магнетофон, можеше да се каже, че BASIC е най-добрият език на Java, тъй като нямаше избор. При наличието на 640 KB памет и дисково устройство се появи такъв избор.

И така, днес почти целият софтуерен пазар е фокусиран върху многозадачни операционни системи (Windows, UNIX и т.н.) и интензивно използва API инструменти, както и инструменти за визуално програмиране.

Това, разбира се, е удобно, но едва ли е рационално за учене, защото трябва да се научите как да разработите и / или внедрите алгоритъм, а не просто да „изградите програма от тухли“. В допълнение, всеки начинаещ е изправен пред доста значително количество информация, която трябва да бъде запаметена, преди да започне програмирането. А процесът на постоянно актуализиране на API усложнява работата както на учителя, така и на ученика. Текстово-базираният интерфейс на командния ред, възприет от DOS, прави възможно, без да се притеснявате твърде много за I/O, да се съсредоточите върху разработването и прилагането на алгоритъма. Атези, които вече знаят малко за компютъра, могат да научат основите на компютърната графика, без да променят платформата.

Медицинските рецепти обикновено се изписват на латиница. Той се различава от всички живи езици по това, че вече не се променя. Освен това лекарите, независимо какъв език говорят, имат общ език на латински. Същото може да се каже и за DOS. Неговият API е доста кратък и практически не се променя. Освен това всички операционни системи (на платформата Intel) ви позволяват да работите с DOS програми, но програма, написана, да речем, за Linux, вече няма да работи в Windows.

Сравнение на компилатори на Pascal

Компилаторите, които са достигнали определена степен на „зрялост“, включват TMT Pascal (www.tmt.com) и Free Pascal Compiler (FPC, www.ru.freepascal.org).

Други проекти, които си заслужава да бъдат споменати, са P32V от John Prince (surf.to/p32) и Virtual Pascal (www.vpascal.com), който наскоро стана безплатен. Последният е може би най-внимателно разработен, но в оригиналния си вид не ви позволява да правите DOS приложения.

Трябва да се отбележи, че нашите сънародници участваха в разработването на TMT и Free Pascal.

Версия 3.50 на TMT компилатора създава впечатлението за утвърден продукт – повечето от идентифицираните грешки са коригирани, той и интегрираната му среда са стабилни и лесни за инсталиране. Вярно, малкият размер на екипа за разработка оказва влияние: интегрираната среда е като две капки вода, подобна на подобни GUI-ориентирани IDE и има доста ограничени възможности - дори няма вграден дебъгер. Все още няма поддръжка на SSE във вграден асемблер, въпреки че има 3DNow! и MMX. Пълните регистрирани версии на компилатора от 1.0 насам съдържат IDE в текстов режим, който поради много грешки все ощебеше невъзможно да работи и да се разпространява свободно - ограничения върху обема на използваната памет, но те можеха лесно да бъдат заобиколени. Затова във версия 3.50 те бяха премахнати и към последната безплатна версия беше добавена IDE.

Free Pascal е разработен от доста голям екип от ентусиасти. Той беше снабден с изходен код, така че всеки можеше да участва в процеса на неговото създаване. Между другото, Free Pascal е написан на Pascal, така че проблемът "кокошка и яйце" не възниква за него.

Естествено, и двата компилатора не са сходни във всичко. TMT няма комп. от 64-битов тип цяло число. Освен това най-вероятно не се очаква въвеждането му, тъй като има допълнителен модул за обработка на комплексни числа, който има същото име. Free Pascal не предоставя предварително дефинирани масиви Port и PortW, а TMT дори има PortD.

Тъй като и двата компилатора използват 32-битов модел на плоска памет, функцията seg връща 0 и за двата, но функцията ptr не работи правилно в системата за програмиране Free Pascal. Например, в израза longint(ptr($40,$6c)^) можем да получим всичко, но не и стойността на времеброяча на BIOS (очевидно програмата ще приключи поради грешка при достъп до паметта). В TMT тази конструкция се изпълнява правилно.

След компилиране минималният изпълним размер за TMT е около 15 KB, а за Free Pascal е 55 KB. В допълнение, вторият също изисква външен 20 KB DPMI сървър, докато TMT го има в изпълнимия файл.

За да сравните производителността на изпълними файлове, произведени с тези компилатори, можете да използвате теста Whetstone, за да определите производителността на системата по отношение на операции с плаваща запетая.запетая, пренаписана от Fortran на Pascal (Таблица 2). Значително по-нисък от TMT по отношение на оптимизацията на размера, Free Pascal работи един път и половина по-бързо. В същото време и двата компилатора оставят Borland Pascal далеч назад, особено при съвременните процесори.

Въпреки това, някои резултати при измерване на производителността изглеждат доста странни. Написана на асемблер, процедурата за намиране на най-краткия път в графика с помощта на алгоритъма на Дейкстра, компилиран от същия Free Pascal, беше с 20% по-бърза от TMT. При попълване на тегловната таблица на графичните дъги е използван генератор на случайни числа, измерванията са повторени 1000 пъти и получените стойности са осреднени, а процедурите по четене, запис и прехвърляне на съдържанието на RAM са извършени и в двата случая с еднаква скорост.

Средното време за изпълнение на този тест за компилатора TMT Pascal беше 2,20 секунди, а за Free Pascal беше 1,81 секунди.

При извеждане на текст TMT изостава от FPC с коефициент три, но не трябва да се страхувате от това. Факт е, че докато Free Pascal, следвайки Borland, използва шрифт 8x8, TMT разумно предположи, че при резолюции от 640x480 пиксела и повече, шрифт 8x16 ще изглежда много по-добре. Така че забавянето на изхода до голяма степен се дължи на удвояването на размера на шрифта.

Като цяло, внедряването на графичната библиотека TMT създава впечатлението, че е по-обмислено и с отстраняване на грешки (макар и по-малко пълно в сравнение с Borland Pascal).

Между другото, разделът на документацията на Free Pascal, посветен на описанието на разликите в внедряването на графични библиотеки за различни платформи, беше оставен празен и графичната програма, която работеше в DOS и се прекомпилира в графично приложение на Windows, веднага завърши с грешка.

Безплатната версия на TMT Pascal ви позволява да направитеизпълнимите файлове са само за DOS, но при използване на търговски един и същи текст, компилиран и за DOS, и за Windows, работи визуално по абсолютно същия начин, въпреки че вътрешният механизъм за DOS е реализиран чрез VESA, а за Windows чрез DirectDraw.

Е, въпреки че големите компании изоставиха разработването на Pascal за DOS, малки компании, екипи от ентусиасти и дори отделни програмисти продължиха тази работа много успешно, създавайки достоен заместител на доказания компилатор Turbo Pascal. Така че, ако имате нужда от надежден компилатор и не искате да се занимавате с инсталирането и конфигурирането му и средата, която идва с него, а също и ако работата ви има строги изисквания за количество код, тогава е по-добре да изберете TMT. Между другото, когато използвате външен DOS разширител на паметта, като DOS4GW, минималният размер на изпълнимия файл може да бъде намален до 3 KB. Ако нямате търпение да участвате сами в разработването на компилатора на Pascal, ако имате нужда от компилатор, който може да се персонализира за вашите специфични задачи и сте съгласни да работите върху него, тогава трябва да се предпочита FPC. Въпреки това, P32V също се доставя с изходните текстове, но за разлика от FPC, той се компилира в средата на Borland Pascal. Вярно е, че P32V не е пълен компилатор, тъй като превежда текста на Pascal не в обектен код, а в текст на асемблерния език и следователно е необходим външен асемблер. Ако работите с OS / 2, тогава е по-целесъобразно да предпочетете Virtual Pascal.

Таблица 1. 32-битови компилатори на Pascal