Приложение F. Сравнение на UniPascal с ISO Pascal
136
Приложение F. Сравнение на UniPascal с ISO Pascal
В това приложение се прави сравнение на UniPascal с ISO Pascal, както е описан в
книгата на K.Jensen N.Wirth, Pascal User Manual and Report, Springer-Verlag, 1974, 1985
(ISBN 3-540-96048-1).
F.1. Нереализирани възможности на ISO Pascal
*
В ISO Pascal идентификаторът може да бъде с произволна дължина, като всички символи
от името са значещи. В UniPascal идентификаторът може да бъде с произволна дължина,
но само първите осем символа са значещи.
*
В ISO Pascal символът @ е алтернативно представяне на символа ^. В UniPascal символът
^ няма алтернативно представяне.
*
В ISO Pascal е разрешено използването на различни коментарни скоби в един коментар,
т.е. коментарът може да започва с (* и да завършва с } и обратно - да започва с { и да
завършва с  *). В UniPascal това не е разрешено. Коментарите трябва да започват и
завършват с един и същ вид коментарни скоби.
*
В ISO Pascal всяка стойност от множеството стойности, принадлежащи на типа на полето
от вариантната част на записа, трябва да се указва. В UniPascal това изискване не се налага.
*
В ISO Pascal всяка променлива от файлов тип има асоциирана с нея буферна променлива,
отбелязвана с ^ след името на файловата променлива. В UniPascal файловите променливи
нямат асоциирана буферна променлива и използването на  ^ след името на файлова
променлива е грешка.
*
В ISO Pascal полето-селектор от вариантната част на записа не може да бъде използвано
в качеството на фактически параметър-променлива. В UniPascal това изискване не се
налага.
*
В ISO Pascal са дефинирани процедури-параметри. В UniPascal процедури-параметри не
са реализирани.
*
В ISO Pascal стандартните процедури RESET и REWRITE не изискват име на физическия
файл. В UniPascal синтаксисът на стандартните процедури RESET и REWRITE е разширен
и изисква име на външен файл.
*
В ISO Pascal са дефинирани стандартните процедури GET и PUT, които се използват за
четене от и писане във файлове. В UniPascal тези процедури не са реализирани.
*
В ISO Pascal са дефинирани стандартните процедури PACK и UNPACK, които се използват
за 'пакетиране' и 'разпакетиране' на пакетирани променливи. В UniPascal тези процедури
не са реализирани.
*
В ISO Pascal операцията I mod J винаги връща положителен резултат и е грешно да се
използва, ако J е 0 или отрицателно. В UniPascal I mod J се пресмята като I - (I div J) * J и
може да се използва при отрицателни стойности на J.
*
В ISO Pascal операторът GOTO може да използва дефиниран в по-външен блок етикет.
В UniPascal това не е разрешено и предизвиква грешка по време на компилация.
*
В ISO Pascal избиращият израз (selector) в CASE оператора трябва да е равен на една от
използваните константи. В UniPascal това не се изисква. Ако избиращият израз не е равен
<<  <  GO  >  >>

Вернуться к началу сайта