Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

PascalABC.NET

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

Статус версії сторінки

На цій сторінці показано неперевірені зміни

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

PascalABC.NET — це також проста і потужнаінтегроване середовище розробки, що підтримує технологіюIntelliSense, що містить засоби автоформатування, вбудований відладчик і вбудований дизайнер форм. Крім того, консольнийкомпілятор PascalABC.NET функціонує наLinux іMacOS підMono.

Історія розвитку

[ред. |ред. код]

У 2003 році на факультеті математики, механіки та комп'ютерних наукПФУ було створене навчальне середовище програмування Pascal ABC. Система є інтегрованою оболонкою з вбудованим інтерпретатором мови програмування Pascal, близької до мовиDelphi. Попри неповну реалізацію мови, вона стала вдалою заміною застарілій системіTurbo Pascal в первісному навчанні програмування. Як навчальну систему її використовували в багатьох регіонахСНД.

У каталозі Soft@Mail.ru програмаPascal ABC в 2006 році визнана програмою тижня.

У 2005—2006 роках система була повністю перероблена: змінена її архітектура — на повноцінний компілятор мови, близької до Delphi, з розширеннями, пов'язаними з платформою.NET. Нова система отримала назвуPascalABC.NET.

У червні 2009 з'явилася перша стабільна версіяPascalABC.NET 1.2.

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

У серпні 2010 у WDE з'явилася можливість створювати прості графічні додатки. Вебсередовище розробки було закрите в жовтні 2017 року.

У серпні 2011 здійснено перехід на .NET 4.0 у версії 1.8.

У січні 2012 вебсередовище розробки WDE також була переведена на .NET 4.0 .

З травня 2012 у вебсередовище розробки додана підтримка компіляторівC# ,VB.NET,IronPython іF#, у зв'язку з чим вона була перейменована вProgrammingABC.NET WDE.

У лютому 2013 вийшла версія PascalABC.NET 2.0 з дизайнером форм.

15 травня 2013 вийшла версія 2.1 з англійської локалізацією інтерфейсу і повідомлень про помилки.

15 лютого 2014 вийшла версія PascalABC.NET 2.2. Багаторазово прискорено звернення до символів рядка на запис.

28 серпня 2015 вийшла версія PascalABC.NET 3.0. PascalABC.NET став вільним і поширюється під ліцензією LGPLv3.

12 лютого 2016 вийшла версія PascalABC.NET 3.1. З'явилися кортежі і зрізи, значно оновлена стандартна бібліотека.

29 серпня 2016 вийшла версія PascalABC.NET 3.2. З'явилися оператори yield і yield sequence, оновлена стандартна бібліотека.

30 серпня 2017 вийшла версія PascalABC.NET 3.3. З'явилися стандартні модулі GraphWPF і Graph3D, оновлена стандартна бібліотека[1].

Особливості мови 

[ред. |ред. код]

Розширення мови Паскаль 

[ред. |ред. код]
  • Оператори += -= *= /=
  • Внутрішньоблокова декларація змінних
  • Декларація змінних в заголовку циклу for
  • Ініціалізація змінної при присвоєнні:VAR N: integer: = 10;
  • Автовизначення типу змінної при ініціалізації:VAR X: = 1;
  • Цикл foreach
  • Підпрограми зі змінним числом параметрів
  • Множини set на базі довільних типівSet Of Integer
  • Методи в записах
  • Можливість визначати методи як всередині, так і поза інтерфейсу класу або записи
  • Поряд зі стандартним, спрощений синтаксис модулів
  • Операція new для виклику конструктора класу
  • Ініціалізатор полів класів та записів
  • Перевантаження операторів
  • Статичні конструктори
  • Підтримкадиректив OpenMP

Особливості мови, пов'язані з платформою .NET 

[ред. |ред. код]
  • Всі типи — класи
  • Стандартний тип BigInteger
  • Двовимірні динамічні масиви
  • Інтерфейси .NET
  • Підключення просторів імен .NET в розділі uses
  • Узагальнені класи, інтерфейси, підпрограми та процедурні змінні
  • Автоматична збірка сміття для об'єктів
  • Атрибути
  • Методи розширення
  • Лямбда-функції(Анонімна функція)
  • Автоклас
  • Безіменні класи
  • Підтримка некерованого коду через external

Стандартні модулі 

[ред. |ред. код]

Оскільки в PascalABC.NET можна користуватися всіма бібліотеками платформи .NET, то стандартні модулі нечисленні і орієнтовані на навчання:

  • Модуль растрової графікиGraphABC
  • Модуль векторної графікиABCObjects
  • МодульFormsABC для створення простих віконних додатків без дизайнера форм
  • МодульArrays для введення-виведення-заповнення одновимірних і двовимірних динамічних масивів
  • МодульCollections, що містить спрощені класи колекцій
  • Модулі виконавців Робот і креслярем(шкільна інформатика)

Приклади програм 

[ред. |ред. код]

Приклад 1. Використання методів розширення для програмування в функціональному стилі 

[ред. |ред. код]
vara:arrayofinteger:=(1,3,5,7,9,11,13,15,17,19);begina.Println;//Поміняти місцями першу і другу половини масиву з парною кількістю елементівAssert(a.Lengthmod2=0);varn:=a.Lengthdiv2;a.Skip(n).Concat(a.Take(n)).Println;end.

Приклад 2. 100! 

[ред. |ред. код]
beginvarp:BigInteger:=1;forvari:=1to100dop:=p*i;write(p);end.

Приклад 3. Виведення всіх чисел Фібоначчі, менших 1000 

[ред. |ред. код]
beginSeqWhile(1,1,(x,y)->x+y,x->x<1000).Printend.

Приклад 4. Частотний словник слів у файлі 

[ред. |ред. код]
beginvard:=newDictionary<string,integer>;foreachvarsinReadLines('words.txt')doforeachvarwordins.ToWordsdod[word]:=d.Get(word)+1;d.Print(NewLine);end.

Приклад 4а. Частотний словник слів у файлі. Рішення у функціональному стилі 

[ред. |ред. код]
beginReadLines('words.txt').SelectMany(s->s.ToWords()).GroupBy(v->v).ToDictionary(x->x.Key,x->x.Count()).Print(NewLine);end.

Приклад 5. Паралельне множення матриць з використанням директив OpenMP 

[ред. |ред. код]
usesArrays;procedureMult(a,b,c:array[,]ofreal;n:integer);begin{$omp parallel for}forvari:=0ton-1doforvarj:=0ton-1dobeginvarcc:=0.0;forvarl:=0ton-1docc+=a[i,l]*b[l,j];c[i,j]:=cc;end;end;constn=1000;beginvara:=Arrays.CreateRandomRealMatrix(n,n,1,1.1);varb:=Arrays.CreateRandomRealMatrix(n,n,1,1.1);varc:=newreal[n,n];vard:=Milliseconds;Mult(a,b,c,n);writeln((Milliseconds-d)/1000);end.

Ліцензія 

[ред. |ред. код]

PascalABC.NET є безкоштовним (freeware) програмним забезпеченням, поширюваним під власною пропрієтарною ліцензією.

Див. також

[ред. |ред. код]

Посилання

[ред. |ред. код]

Примітки

[ред. |ред. код]
  1. Что нового в версии (рос.) . Архіворигіналу за 20 лютого 2018.
Універсальні
C/C++
BASIC
Java
Pascal
PHP
Python
ActionScript
Інші
Отримано зhttps://uk.wikipedia.org/w/index.php?title=PascalABC.NET&oldid=45873087
Категорії:
Прихована категорія:

[8]ページ先頭

©2009-2026 Movatter.jp