Новости

Опис мови Pascal

  1. PascalABC.NET - це система програмування і мова Pascal нового покоління для платформи Microsoft .NET....
  2. Що таке .NET
  3. Переваги платформи .NET
  4. переваги PascalABC.NET
  5. Проста і потужна середовище розробки
  6. Спеціалізовані модулі для навчання
  7. Відмінності мови PascalABC.NET від Delphi
  8. змінено
  9. Відсутнє

PascalABC.NET - це система програмування і мова Pascal нового покоління для платформи Microsoft .NET. Мова PascalABC.NET містить всі основні елементи сучасних мов програмування: модулі, класи, перевантаження операцій, інтерфейси, виключення, узагальнені класи, збірку сміття, лямбда-вирази, а також деякі засоби паралельності, в тому числі директиви OpenMP. Система PascalABC.NET включає в себе також просту інтегровану середу, орієнтовану на ефективне навчання сучасного програмування.

* Опис мови PascalABC.NET. Переваги PascalABC.NET для розробки програм і для навчання. Відмінності PascalABC.NET від Delphi (Object Pascal). Приклади, що ілюструють основні особливості PascalABC.NET, знаходяться в меню "Допомога / Коротко про головне".

Мова Паскаль був розроблений швейцарським вченим Ніклаус Віртом в 1970 р як мову зі строгою типізацією і інтуїтивно зрозумілим синтаксисом. У 80-ті роки найбільш відомої реалізацією став компілятор Turbo Pascal фірми Borland, в 90-е йому на зміну прийшла середовище програмування Delphi, яка стала однією з кращих середовищ для швидкого створення додатків під Windows. Delphi ввела в мову Паскаль ряд вдалих об'єктно-орієнтованих розширень, оновлений мова отримала назву Object Pascal. З версії Delphi 7 мову Delphi Object Pascal став називатися просто Delphi. З альтернативних реалізацій Object Pascal слід зазначити багатоплатформений open source компілятор Free Pascal.

Створення PascalABC.NET диктувалося двома основними причинами: старіння стандартного мови Pascal і систем, побудованих на його основі (Free Pascal), а також необхідність в сучасній простий, безкоштовної та потужної інтегрованої середовищі програмування.

PascalABC.NET спирається на передову платформу програмування Microsoft.NET, яка забезпечує мову PascalABC.NET величезною кількістю стандартних бібліотек і дозволяє легко поєднувати його з іншими .NET-мовами: C #, Visual Basic.NET, керований C ++, Oxygene і ін. Платформа. NET надає також такі мовні засоби як єдиний механізм обробки виключень, єдиний механізм управління пам'яттю у вигляді збірки сміття, а також можливість вільного використання класів, успадкування, поліморфізму і інтерфейсів між модулями, написаними на різних .NET-мовами. Про те, що таке платформа Microsoft.NET, про її переваги для програмування і для навчання можна прочитати тут.

Мова PascalABC.NET близький до реалізації Delphi (Object Pascal). У ньому відсутня ряд специфічних мовних конструкцій Delphi, деякі конструкції змінені. Крім цього, доданий ряд можливостей: є автовизначення типу при описі, можна описувати змінні всередині блоку, є операції + =, - =, * =, / =, методи можна описувати безпосередньо в тілі класу або записи, можна користуватися вбудованими в стандартні типи методами і властивостями, пам'ять під об'єкти управляється складальником сміття і не вимагає явного звільнення, безлічі set можуть бути створені на основі довільних типів, введений оператори foreach, змінні циклів for і foreach можна описувати безпосередньо в заголовку циклу, є бобщенние класи і підпрограми (generics), лямбда-вирази і ін.

Близьким за ідеологією до PascalABC.NET є мова RemObjects Oxygene (Object Pascal 21 століття). Однак він сильно змінений у бік .NET: немає глобальних описів, всі описи поміщаються в клас, що містить статичний метод Main, відсутній ряд стандартних підпрограм мови Паскаль. Крім того, система RemObjects Oxygene - платна і не містить власної оболонки (вбудовується в Visual Studio і інші IDE), що практично унеможливлює її в сфері освіти.

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

Всі права на систему програмування PascalABC.NET належать PascalABCCompiler Team (web-сайт http://pascalabc.net ).

Коротко про головне

Цей текст містить короткий огляд особливостей PascalABC.NET.

* PascalABC.NET - легка і потужна середовище розробки програм з докладною довідковою системою, засобами підказки за кодом, Автоформатування, вбудованим отладчиком і вбудованим дизайнером форм. Інтегроване середовище розробки PascalABC.NET орієнтована на створення проектів малої та середньої складності, а також на навчання сучасного програмування.

* PascalABC.NET - потужний і сучасний мову програмування. За що надаються, він перевершує мову Delphi і містить практично всі можливості мови C #.

* PascalABC.NET спирається на платформу Microsoft .NET - її мовні можливості та бібліотеки, що робить його гнучким, ефективним, що постійно розвивається. Крім того, можна легко поєднувати бібліотеки, розроблені на PascalABC.NET і інших .NET-мовами.

* Компілятор PascalABC.NET генерує код, що виконується так само швидко, як і код на C #, і дещо повільніше, ніж код на C ++ і Delphi.

* PascalABC.NET є представником лінійки сучасних мов Паскаль разом з Delphi XE і Oxygene.

* Думка, що мова Паскаль застарів і втрачає свої позиції, засноване на уявленні про старому Паскалі і старих середовищах програмування (наприклад, Free Pascal з його несучасної консольної оболонкою і мовою Delphi зразка 2002 року). На жаль, маса вітчизняної навчальної літератури із завзятістю, гідною кращого застосування, орієнтується на віджилий Turbo Pascal з давньої консольної оболонкою, бідної графічною бібліотекою і застарілими засобами об'єктно-орієнтованого програмування, розвиваючи в учнів стійку відразу до мови Паскаль взагалі.

* PascalABC.NET розширено сучасними мовними можливостями для легкого, компактного і зрозумілого програмування.

* PascalABC.NET - досить зріла середу. Її прототип - навчальна система Pascal ABC - з'явилася в 2002 році. PascalABC.NET - розвивається середу. Ведуться розробки нових мовних можливостей, нових бібліотек.

* PascalABC.NET має унікальну Web-версію WDE ProgrammingABC.NET, що представляє собою середовище розробки в вікні браузера. Програми при цьому зберігаються і компілюються на сервері, введення-виведення (в т.ч. і інтерактивний) передається по мережі.

Далі наводиться ряд програм з короткими коментарями, що розкривають можливості і особливості мови PascalABC.NET.

Тексти програм розташовуються в робочій папці (за замовчуванням C: \ PABCWork.NET) в папці Samples \! MainFeatures.

Для запуску програм дане вікно має бути відкрите через пункт меню Допомога / Коротко про головне так, щоб воно не повністю закривало вікно оболонки PascalABC.NET.

Основне

* AssignExt.pas. Даний приклад ілюструє використання розширених операторів присвоювання + = - = * = / = для цілих і речових. Оператор / = для цілих, зрозуміло, заборонений.

* BlockVar.pas. Змінні можуть описуватися всередині блоку begin-end і инициализироваться при описі. Це вкрай зручно для проміжних змінних, а в PascalABC.NET в силу особливостей реалізації ще і прискорює доступ до змінних відсотків на 30.

* AutoVars.pas. Якщо змінна ініціалізується при описі, то її тип можна не вказувати: він визначається за типом правій частині (автовизначення типу). Змінну - параметр циклу for можна описувати прямо в заголовку циклу, поєднуючи це з автовизначенням типу.

* SimpleNewFeatures.pas. Приклад, який об'єднує можливості з попередніх трьох прикладів.

* WriteAll.pas. Процедура write виводить будь-який тип. Зокрема, вона виводить всі елементи множини. Якщо тип їй невідомий, то вона виводить ім'я типу.

* WriteFormat.pas. Стандартна процедура WriteFormat дозволяє здійснювати форматований вивід. Вид рядка формату запозичується з .NET.

* StandardTypes.pas. У цій програмі наведені всі стандартні цілі і речові типи. Програма виводить їх розміри.

* RandomDiap.pas. До функцій генерації випадкових чисел додалася Random (a, b), яка повертає випадкове ціле в діапазоні [a, b]. Процедуру Randomize на початку програми викликати не треба.

* RealExtNums.pas. Дії з речовими значеннями не можуть в .NET привести до переповнення. При некоректних операціях (ділення на 0, переповнення або взяття логарифма негативного числа) ми отримаємо або значення нескінченність, яке значення NaN (не числом).

* Foreach.pas. Оператор foreach призначений для циклу по контейнерах, таким як масиви, множини і контейнери стандартної бібліотеки (наприклад, List <T>). Елементи контейнера доступні тільки на читання.

* Amp.pas. Ключові слова можуть використовуватися в якості імен, в цьому випадку перед ними слід ставити значок & зняття атрибута ключового слова. Крім того, ключові слова можуть використовуватися в якості полів. Наприклад, & Type або System.Type.

типи

* CharFunc.pas. Символи Char зберігають Unicode і тому займають 2 байти. Для функцій Ord і Chr залишено, проте, колишнє дію (передбачається, що символи знаходяться в Windows-кодуванні). Для роботи з кодами Unicode слід використовувати OrdUnicode і ChrUnicode.

* StringTypes.pas. Рядки string займають пам'ять змінної довжини і проектуються на .NET-тип System.String. Однак, на відміну від NET-рядків вони змінювані і індексуються з 1. Для роботи з рядками фіксованої довжини слід використовувати тип string [n] або shortstring = string [255]. Зокрема, типізовані файли допустимі тільки для коротких рядків.

* StringMethods.pas. Рядки string мають ряд методів як .NET-класи. У цих методах передбачається, що рядки індексуються з нуля.

* StringInteger.pas. Всі типи - класи. Прості типи теж. Тому перетворення рядка в ціле і речовий простіше виконувати за допомогою статичних методів Parse відповідного класу (наприклад, integer.Parse (s)). Перетворення цілого або речового в рядок зручніше виконувати за допомогою екземпляра методу ToString (наприклад, r.ToString).

* Enum.pas. Перечіслімий тип дозволяє звертатися до його констант не тільки безпосередньо, але і використовуючи запис виду ІмяТіпа.ІмяКонстанти. Не зайве відзначити, що всі перелічуваних типи - похідні від System.Enum.

* Sets.pas. Безлічі можуть мати довільний базовий тип. Усередині безліч зберігається як хеш-таблиця, проте при виведенні безлічі в процедурі write його елементи упорядковуються.

* DynArray.pas. Динамічні масиви array of T є посилання. Пам'ять під них повинна виділятися або викликом стандартної процедури SetLength, або використанням ініціалізатор виду new T [n]. Процедура SetLength зберігає старе вміст масиву. Динамічні масиви є класом, похідним від класу System.Array, що має досить багатий інтерфейс. Слід згадати перш за все статичні методи & Array.Sort і & Array.Resize.

* InitRecords.pas. У записах допустимі ініціалізатор полів. Поля запису инициализируются при створенні змінної-запису.

* UntypedFile.pas. Безтипові файли file змінені в порівнянні з Delphi. Відсутні процедури BlockRead і BlockWrite, але в безтипових файл можна безпосередньо записувати дані різних типів. Аби зчитування вироблялося в тому ж порядку.

* PointerToRef.pas. Мають місце деякі обмеження для покажчиків на керовану пам'ять. Так, покажчик не може прямо або побічно вказувати на об'єкт класу, пам'ять для якого виділена викликом конструктора.

* Pointers.pas і References.pas. Покажчики втрачають свої позиції. Замість них ми рекомендуємо активно використовувати посилання.

* StructTypeEquiv.pas. На відміну від Delphi, для деяких типів має місце структурна, а не іменна еквівалентність типів. Так, структурна еквівалентність має місце для динамічних масивів, покажчиків, множин і процедурних типів.

підпрограми

* FuncParams.pas. Підпрограми зі змінним числом параметрів робляться легко додаванням ключового слова params перед параметром - динамічним масивом. Такий параметр повинен бути останнім у списку.

* Overload.pas. Перевантаження імен підпрограм здійснюється без ключового слова overload.

* ProcVars.pas. Процедурні змінні можуть накопичувати дії за допомогою оператора + =. Ці дії можна відключати за допомогою оператора - =. Процедурні змінні можуть инициализироваться не тільки звичайними подпрограммами, але і статичними і екземплярність методами класу.

* SwapT.pas. Узагальнені підпрограми мають простий синтаксис і використовуються відразу поряд зі звичайними: procedure Swap <T> (var x, y: T);

модулі

* SystemUnitTest.pas. Системний модуль має назву PABCSystem, а не System, як в Delphi, і підключається неявно першим в списку uses. Причина такого іменування полягає в тому, що найважливіше простір імен .NET має ім'я System. Системний модуль об'єднує багато підпрограми модулів System, Math і Utils мови Delphi. Дана програма ілюструє перетин імен у модулі PABCSystem і просторі імен System.

* MainProgram.pas і MyUnit.pas. Модуль може мати спрощений синтаксис (без поділу на розділ інтерфейсу і розділ реалізації), що зручно для початкового навчання. В цьому випадку всі описані імена потрапляють в розділ інтерфейсу модуля.

* SystemUnitTest.pas. Для використання просторів імен .NET застосовується той же синтаксис, що і при підключенні модулів: простору імен .NET вказуються в списку uses. Порядок пошуку імен такий же, як і в Delphi - справа наліво в списку uses, модуль PABCSystem проглядається останнім.

* Main.pas і MyDll.pas. У PascalABC.NET легко створити і використовувати dll. Бібліотека dll по-суті являє собою модуль, де замість ключового слова unit використовується слово library. Для підключення dll до іншої програми використовується директива компілятора reference.

* CallCS.pas. PascalABC.NET - повноцінний .NET-мову, легко поєднувати з іншими .NET-мовами. В даному прикладі показується, як в програмі на PascalABC.NET викликати функцію з dll, створеної на C #.

* CallNative.pas. PascalABC.NET дозволяє легко викликати функції зі звичайних dll.

Стандартні графічні бібліотеки

* GraphABCTest.pas. Графічна бібліотека GraphABC заточена під легке навчання програмуванню графіки. Вона приховує більшість складнощів програмування графіки: сама здійснює перерисовку графічного вікна в потрібний момент і піклується про синхронізацію малювання в кількох обробниках. Крім того, графічні примітиви - процедурні, а значить, не треба створювати численні класи, як в NET. І ще можна писати графічні команди відразу після begin основної програми, тобто використовувати графіку в несобитійних додатках.

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

* ABC.pas. Бібліотека векторних графічних об'єктів ABCObjects використовується нами для раннього навчання школярів основам об'єктно-орієнтованого програмування. Однак, її цілком можна використовувати для написання нескладних графічних навчально-ігрових програм.

класи

* AllFromObject.pas. Всі класи - спадкоємці Object, всі типи - класи. У кожної змінної можна дізнатися тип, викликавши метод GetType. Операція typeof для типу повертає System.Type.

* WriteRecord.pas. Перевизначивши метод ToString в класі або записи, ми отримуємо можливість виводити їх значення в процедурі writeln

* ClassConstructor.pas. Для статичних методів і полів використовується ключове слово class. Статичні конструктори використовуються для нетривіальною ініціалізації статичних полів.

* PersonInternal.pas. Новий синтаксис конструкторів використовує ключове слово new і найбільш прийнятний. З цієї причини все конструктори, певні в старому стилі, повинні мати ім'я Create. Опис методів може проводитися безпосередньо всередині класів і записів (як в C ++, C # і Java)

* Records.pas. Методи і конструктори в записах можна використовувати так само, як і в класах. Від записів не можна успадковувати і записи не можна успадковувати.

* Boxing.pas. При присвоєнні розмірного типу об'єкту типу Object відбувається упаковка. Для розпакування слід використовувати явне приведення типу.

* GarbageCollection.pas. Деструктори відсутні. Автоматичне прибирання сміття для повернення пам'яті, розподіленої об'єктної змінної, вимагає, щоб на цю пам'ять ніхто паче не посилався, прямо або побічно. Тому для звільнення пам'яті зазвичай досить привласнити об'єктної змінної nil.

* OperatorOverloading.pas. Як і в C ++ і C #, в PascalABC.NET можна перевантажувати знаки операцій для записів і класів.

* Interf.pas. Інтерфейси семантично збігаються з інтерфейсами в C # і Java. Складна реалізація інтерфейсів Delphi на основі COM відкинута.

* Stack.pas. Узагальнені класи (generics) дозволяють створювати класи, параметризрвані одним або декількома типами.

* Where.pas. Можна задавати обмеження на типи параметрів узагальнених класів. Обмеження бувають трьох сортів: наявність у типу-параметра конструктора за замовчуванням, успадкування його від конкретного класу або реалізація інтерфейсу.

Стандартна бібліотека .NET

* DateTime.pas. Даний приклад ілюструє застосування класу DateTime зі стандартної бібліотеки .NET.

* LinkedList.pas. Даний приклад ілюструє використання контейнерних класів зі стандартної бібліотеки .NET.

* WinFormWithButton.pas. Даний приклад ілюструє створення віконного програми.

Що таке .NET

Платформа Microsoft .NET - це комплекс програм, що встановлюється поверх операційної системи і забезпечує виконання програм, написаних спеціально для .NET. .NET-програми компактні, користуються єдиним набором типів даних і бібліотек. Компанія Microsoft активно розвиває платформу .NET, випускаючи нові версії з розширеними можливостями. На момент початку 2015 р останньою версією є .NET 4.5.

В результате компіляції .NET-програми генерується не машина код, а так звань байт-код, что містіть командіровку віртуальної машини (в .NET ВІН назівається IL-кодом від англ. Intermediate Language - проміжна мова). Команди байт-коди, Які НЕ залежався від процесора и операційної системи. При запуску програма, яка містить IL-код, подається на вхід віртуальної машини, яка і виробляє виконання програми. Частина віртуальної машини, яка називається JIT-компілятором (Just In Time - безпосередньо в даний момент), відразу після запуску .NET-програми переводить її проміжний код в машинний (проводячи при цьому його оптимізацію), після чого запускає програму на виконання. Якщо бути точними, то проміжний код переводиться в машинний частинами в міру виконання програми.

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

Програма або бібліотека для .NET називається складанням і має традиційне розширення - exe або dll. Оскільки в збірках міститься IL-код, вони значно компактніше звичайних програм і бібліотек. Так, додаток з головним вікном, меню і елементами управління займає на диску всього кілька десятків кілобайт.

Найбільш чистим .NET-мовою є C #: він створювався спеціально для платформи .NET і включає практично всі її можливості. .NET-мови легко взаємодіють один з одним не тільки за рахунок високорівневого проміжного коду, але і за рахунок загальної системи типів (CTS - Common Type System - загальна система типів). Всі стандартні типи (строкові, символьні, числові і логічний) мають однакове уявлення в пам'яті у всіх .NET-мовами. Це дозволяє, наприклад, створити бібліотеку dll на C #, помістити в неї опис класу, а потім скористатися цією бібліотекою з програми на PascalABC.NET, сконструювавши об'єкт даного класу. Можна також розробити бібліотеку на PascalABC.NET, а потім підключити її до проекту на Visual Basic.NET. Відзначимо, що традиційні бібліотеки dll не дозволяють зберігати класи, доступні ззовні, і мають ряд інших обмежень.

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

Є програми, які можуть відновлювати текст програми по IL-коду (наприклад, програма ILSpy).

Крім JIT-компілятора, важливою частиною платформи .NET є набір стандартних бібліотек (FCL - Foundation Class Library - загальна бібліотека класів). Серед них - бібліотеки роботи з графікою, мережею, базами даних, XML, контейнерами, потоками, що містять тисячі класів. Кожен .NET-мову може користуватися всіма можливостями цих бібліотек.

Є відкрита кроссплатформенная реалізація середовища Microsoft.NET - середовище Mono, що дозволяє зокрема розробляти і запускати .NET-програми під Linux.

Коротко відзначимо переваги і недоліки платформи .NET.

Переваги платформи .NET

* Платформа .NET підтримує безліч .NET-мов. У їх числі C #, Visual Basic.NET, F #, керований C ++, Delphi Prism, Oberon, Zonnon, Iron Python, Iron Ruby, PascalABC.NET.

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

* .NET-мови легко поєднуються один з одним, схожі один на одного по синтаксичним конструкціям і системі типів.

* Є велика бібліотека стандартних класів FCL.

* .NET-додатки компактні.

* Платформа .NET активно розвивається фірмою Microsoft, додаються як нові мовні можливості, так і нові бібліотеки.

* Компілятор .NET-мови створити значно простіше, ніж компілятор звичайного мови.

Недоліки платформи .NET

* Запуск .NET-додатки виконується в кілька разів повільніше запуску звичайного застосування, оскільки вимагає завантаження в оперативну пам'ять компонентів віртуальної машини і зовнішніх бібліотек.

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

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

* Запуск .NET-додатки обов'язково вимагає установки на комп'ютері платформи .NET. Без неї додаток працювати не буде (Відзначимо, що в Windows Vista і в Windows 7 платформа .NET вбудована).

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

переваги PascalABC.NET

Сучасна мова програмування Object Pascal

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

Крім цього, мова PascalABC.NET використовує більшість коштів, що надаються платформою .NET: єдина система типів, класи, інтерфейси, виключення, делегати, перевантаження операцій, узагальнені типи (generics), методи розширення, лямбда-вирази.

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

У розпорядженні PascalABC.NET знаходяться всі кошти .NET-бібліотек класів, постійно розширюються найсучаснішими можливостями. Це дозволяє легко писати на PascalABC.NET додатки для роботи з мережею, Web, XML-документами, використовувати регулярні вирази і багато іншого.

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

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

Проста і потужна середовище розробки

Інтегроване середовище розробки PascalABC.NET орієнтована на створення проектів малої та середньої складності. Вона досить легковажно і в той же час забезпечує розробника усіма необхідними засобами, такими як вбудований відладчик, кошти Intellisense (підказка по точці, підказка по параметрам, підказка по імені), перехід до визначення і реалізації підпрограми, шаблони коду, автоформатирование коду.

У середу PascalABC.NET вбудований також дизайнер форм, що дозволяє створювати повноцінні віконні додатки в стилі RAD (Rapid Application Development - швидке створення додатків).

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

У середовищі PascalABC.NET велику увагу приділено зв'язку запущеної програми з оболонкою: консольна програма, запущена з-під оболонки, здійснює введення-виведення в спеціальне вікно, вбудоване в оболонку. Можна також запустити кілька програм одночасно - всі вони будуть контролюватися оболонкою.

Інтегроване середовище PascalABC.NET дозволяє перемикати в налаштуваннях російську та англійську мову, при цьому локалізовані не тільки елементи інтерфейсу, але і повідомлення про помилки.

Крім цього, внутрішні уявлення PascalABC.NET дозволяють створювати компілятори інших мов програмування і вбудовувати їх в середу розробки за допомогою спеціальних плагінів.

Спеціалізовані модулі для навчання

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

Власні модулі, які є в PascalABC.NET, орієнтовані саме на початкове навчання програмуванню.

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

Крім цього, середа PascalABC.NET містить модуль електронного задачника Programming Taskbook (автор Абрамян М.Е.), що дозволяє здійснювати автоматичну постановку і перевірку завдань. Є також модулі для викладача, що дозволяють створювати завдання для виконавців Робот, Чертежник і електронного задачника.

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

Слід також зазначити студентські модулі: модуль Collections спрощених колекцій, модуль Arrays для найпростіших операцій з динамічними масивами і модуль Forms для ручного створення простих додатків з віконним призначеним для користувача інтерфейсом.

Відмінності мови PascalABC.NET від Delphi

Додано

1. Операції + = - = для подій .NET і для процедурних змінних.

2. Операції + = - = * = для цілих і + = - = * = / = для речових.

3. Операція + = для рядків.

4. Підпрограми зі змінним числом параметрів.

5. Операція new для виклику конструктора (ident: = new type_name (params);).

6. Операція new для створення динамічного масиву.

7. Операція typeof.

8. Тип sequence of T.

9. Використання uses для підключення просторів імен .NET (реалізовано в Delphi Prism).

10. Вид доступу internal (поряд з public, private, protected).

11. Ініціалізація змінних: var a: integer: = 1;

12. Ініціалізація змінних: var a: = 1;

13. Оголошення локальних змінних в блоці.

14. Оголошення параметра циклу в заголовку циклу: for var i: = 1 to 10 do, foreach var x in a do.

15. Оператор lock, що забезпечує синхронізацію потоків.

16. Методи в записах.

17. ініціалізатор полів в класах і записах.

18. Узагальнені класи (generics).

19. Реалізовано типізовані файли (на відміну від Delphi Prism, де вони прибрані).

20. Спрощений синтаксис модулів.

21. Опис методів всередині інтерфейсу класу або записи.

22. Реалізація записом інтерфейсу.

23. Методи розширення.

24. Лямбда-вирази.

змінено

1. Тільки скорочена обчислення логічних виразів.

2. Інший синтаксис foreach.

3. Інтерфейси interface в стилі .NET.

4. Інший синтаксис перевантаження операцій.

5. Статичні методи класів замість класових методів. Відсутність типу TClass.

6. Деструктори залишені лише для сумісності і не виконують ніяких дій.

7. Тип object - синонім System.Object.

8. Тип exception - синонім System.Exception.

9. Індексація string з 1, директива перемикання на індексацію з 0.

10. Процедура write виводить будь-які типи.

11. Структурна еквівалентність типів для процедурних змінних, динамічних масивів, типізованих покажчиків і множин (в Delphi Object Pascal - іменна еквівалентність типів за винятком відкритих масивів).

12. Сила-силенна на базі довільних типів (set of string).

13. Заборона використання покажчиків на керовану пам'ять.

14. Процедурні змінні (делегати) замість procedure of object.

15. З безтипових файлами file можна працювати за допомогою процедур read, write.

16. Масиви масивів відрізняються за типом від двовимірних масивів (зокрема, записи a [i] [j] і a [i, j] нееквівалентний).

17. Перевантаження виконується без ключового слова overload.

18. Всі конструктори мають ім'я Create.

19. Автоматичне управління пам'яттю за допомогою збирача сміття (за винятком покажчиків на некеровану пам'ять).

Відсутнє

1. Ключові слова і директиви packed threadvar inline asm exports library unsafe resourcestring dispinterface in out absolute dynamic local platform requires abstract export message resident assembler safecall automated far near stdcall cdecl published stored contains implements varargs default deprecated package register dispid pascal writeonly і пов'язані з ними можливості .

2. Приведення типів для змінних: Char (b): = 'd'.

3. Можливість привласнити адресу підпрограми вказівником pointer.

4. Записи з варіантами.

5. Строки PChar.

6. Можливість використовувати операцію @ для процедурних змінних.

7. Варіантні типи.

8. Безтипові параметри (var a; const b).

9. Відкриті масиви (не плутати з динамічними!).

10. Методи, пов'язані з повідомленнями (message).

11. Класові властивості.

12. Вкладені визначення класів.

13. Константи-поля класів.

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: