ModernPascal - ModernPascal - Wikipedia

ModernPascal
Asl muallif (lar)3F, MChJ.
Tuzuvchi (lar)Zamonaviy Paskal echimlari, MChJ
Dastlabki chiqarilish2000; 20 yil oldin (2000)
Barqaror chiqish
2.0 / 2015 yil 3-iyul; 5 yil oldin (2015-07-03)
YozilganPaskal, Ob'ekt Paskal, Bepul Paskal, Turbo Paskal
Operatsion tizimOS X, Linux, Solaris, FreeBSD, OpenBSD, Windows DOS / 32
TuriCLI Server skriptlari tarmoq
LitsenziyaMulkiy
Veb-saytzamonaviypaskal.com

Zamonaviy Paskal a yopiq manba, o'zaro faoliyat platforma, tarjimon, kompilyator va ish vaqti muhiti buyruq satri, server tomoni va tarmoq dasturlari uchun. Zamonaviy Paskal dasturlari yozilgan Paskal /Ob'ekt Paskal, va Zamonaviy Paskal ish vaqti ichida ishlatilishi mumkin Microsoft Windows, Linux, OS X, FreeBSD, Solaris va DOS / 32 operatsion tizimlar. Uning ishi 3F, LLC va sherik MP Solutions, LLC tomonidan o'tkaziladi va qo'llab-quvvatlanadi.

Zamonaviy Paskalda a I / O blokirovkasi API operatsion tizim dasturlari uchun odatda ishlatiladigan texnologiya.

Zamonaviy Pascal CodeRunner kabi dasturlarsiz veb-server sifatida ishlashga imkon beradigan o'rnatilgan kutubxonani o'z ichiga oladi Apache HTTP Server yoki IIS.

Tarix

Zamonaviy Paskal 2000 yilda Ozz Nikson tomonidan ixtiro qilingan, shu bilan birga DXJavaScript-ni Aleksandr Baronovskiy bilan birgalikda ishlab chiqilgan. Ozz .dan ilhomlangan Kylix 1999 yilda Borland's Pascal Team bilan uchrashgan va dasturlash tili "Modern Pascal" bilan o'rtoqlashgan.[1] Ozz o'zining savdo-sotiq to'plami DXSock-ni Kylix-ga o'tkazib, keyin zamonaviy Paskalni ishlab chiqishni boshladi, shuning uchun u paskal skriptlarini ishga tushirdi Microsoft Windows, Linux va OS X. [2]

2002 yilda 1.1-versiyasi chiqarildi. Zamonaviy Paskal v1.1 eng ko'p ishlashga qodir edi Turbo Paskal (DOS) sintaksis. Bu Variantlarni ichki sifatida o'zgaruvchan va kod nusxalari sifatida ishlatadigan so'nggi versiya edi. 1.1-versiyada o'rnatilgan RTL birliklarini qo'llab-quvvatlash joriy etildi, bu ishlab chiquvchilarga CRT / Display va TCP / IP Socket qo'ng'iroqlarini qo'llab-quvvatlash uchun til grammatikasini kengaytirishga imkon beradi.

2005 yilda Versiya 1.2 chiqdi. Zamonaviy Pascal v1.2 64bitli platformalar uchun mavjud edi, mahalliy 64bit ikkiliklari va 64bit raqamlari va xotira manzillari uchun ichki yordam.

2007 yilda 1.3-versiya chiqarildi. Zamonaviy Paskal v1.3 dinamik kutubxonalar, .so, .dylib, .DLL uchun o'zaro faoliyat platformalarni qo'llab-quvvatladi. Bu Linux Qt GUI ilovalari bilan bir qatorda mahalliy Windows GUI dasturlarini ishlab chiqishga qodir bo'lgan birinchi versiya edi. Tashqi kutubxonalarni qo'llab-quvvatlash orqali til endi buyruq satri yoki veb-server skript dvigatelining roli bilan cheklanib qolmadi.

2008 yilda 1.4 versiyasi chiqarildi. Zamonaviy Paskal v1.4-da kredit va moliya sohasida foydalanish uchun ichki sifatida DECLAN (DECisioning LANguage) deb nomlangan vilka mavjud edi. 1.4-versiya, shuningdek, o'rnatilgan ODBC ko'magi orqali ma'lumotlar bazalariga ulanish imkoniyati bilan bir qatorda TDataset-ning Borland Delphi kompilyatori bilan mosligini taqdim etdi. Bu zamonaviy Paskalga buyruq satri va veb-echimlar uchun deyarli barcha SQL ma'lumotlar bazalari dvigatellaridan foydalanish imkoniyatini beradi.

2009 yilda 1.5 versiyasi chiqdi. Zamonaviy Paskal v1.5 ajralish bosqichini qayta ishlash edi Leksika. Bu Zamonaviy Paskalda C / JavaScript-dan + =, - =, * -, / = kabi boshqa mashhur tillardan sintaksisni qo'shishni boshlagan birinchi versiya. 1.5 versiyasi endi Windows, Linux va OS X uchun mahalliy Apache moduli sifatida mavjud edi.

2010 yilda 1.6 versiyasi chiqarildi. Zamonaviy Paskal v1.6 o'rnatilgan RTL birliklarini o'z ichiga oladi: Ciphers, Compressions, Hashs. Ushbu versiya dasturlarni veb-saytga ko'chirishga qaratilgan va RESTful dasturlari tomonidan ishlatiladigan umumiy shifrlarni, xeshlarni va siqishni algoritmlarini qo'llab-quvvatlash uchun zarur bo'lgan.

2011 yilda 1.7 versiyasi chiqdi. Zamonaviy Paskal v1.7 Apache modulini qayta ishlab chiqardi. Ushbu versiyadan boshlab Apache Modulida zamonaviy Paskal endi o'rnatilmagan. Zamonaviy Paskal tezligi veb-serverlarga ColdFusion nTier orqa uchi dizayni ilhomlanib taqdim etildi. Bu kelajakda FastCGI, ISAPI va hattoki eski CGI va NSAPI interfeyslari joylashtirilishi mumkin degan ma'noni anglatadi. 1.7 versiyasi, shuningdek, biroz zamonaviyroq uslubda Chaining deb nomlangan eski Paskal 3.0 xususiyatini taqdim etdi.

2013 yilda 1.8 versiyasi chiqarildi. Zamonaviy Pascal v1.8 dasturi Delphiga o'xshash sinflar, aqlli yozuvlar, uyushmalar va o'z-o'zini boshqarish uchun qo'llab-quvvatlashni joriy etdi. 1.8-versiya Zamonaviy Paskal o'zining Paskal dialektiga aylana boshlagan birinchi versiyasi edi.

2014 yilda 1.9 versiyasi qurilgan, ammo ommaga taqdim etilmagan. Rivojlanish uchun zamonaviy Paskal v1.9 ishlatilgan DevelopIP, keng ko'lamli ommaviy veb-sayt.

2015 yilda 2.0 versiyasi boshlandi. Zamonaviy Paskal 2.0 - bu lape vilkasi. Oldingi versiyalar tez va samarali bo'lgan bo'lsa-da, ba'zi bir katta mijozlar uchun etarli darajada tez emas edi. Hozirgi ko'rsatkichlar shuni ko'rsatadiki, v2.0 soniyada 100 milliondan ortiq ko'rsatmalarni qayta ishlaydi - 1.9 versiyasidan 8 baravar tezroq va Alternativ Paskal skript dvigatellaridan ancha tezroq. 2015 yil iyul oyida Modern Pascal 2.0 o'zining yakuniy Beta tsiklini boshlaydi. Jamoa faol ravishda kod parchalarini va eski dasturlarni 2.0 ga ko'chirmoqda va kodni Github-da nashr etmoqda.

2017 yilda 2.0 versiyasi ommaga taqdim etildi, endi u mahalliy dBase III +, IV, V, VII, Clipper va FoxPro yordamlarini o'z ichiga oladi. So'nggi 24 oylik rivojlanish davomida 3F Github, Source 17 BBSes (shu jumladan QuickBBS, TPBoard, Hermes), BinkP (Fidonet) Protokoli, bir nechta Tossers, Adventure Game Studio (1984), Custom Micro Solutions, Inc. Buxgalteriya hisobi va sotish bo'yicha dasturiy ta'minot, Internet RIA dasturlari. 3F shuningdek kengaytirilgan ASCII, ANSI va UTF8 grafikalari uchun shaffof yordamni taqdim etdi.

Umumiy nuqtai

Zamonaviy Paskal buyruq qatori interfeysi yordamida DOS-ni dasturlar singari yaratishga va ishga tushirishga imkon beradi Paskal va o'nlab yillardagi bepul paskal kodlari, siz biznes-klasslar va buyruq dasturlarini amalga oshirishingiz va boshqarishingiz mumkin.

Zamonaviy Paskal tezligi mustaqil vositachilik vositasi yoki orqa vosita kabi o'xshash echimlarni yaratishga imkon beradi. Apache moduli bilan birgalikda Celerity veb-skript echimlarining keng doirasini yaratish uchun ishlatilishi mumkin.

Zamonaviy Pascal CodeRunner mustaqil tarmoq vositalarini yaratishga imkon beradi, shu jumladan veb-serverlar, elektron pochta serverlari, chat serverlari. CodeRunner boshqaradi TCP sizning kodingiz uchun aloqa, hatto TLS / SSL. Ishlab chiquvchi sifatida siz shunchaki aloqa o'rnatilgandan keyin nima bo'lishiga e'tibor berasiz.

Kod namunasi[3]

dastur O'yin.O'lja.Misol;foydalanadi Matematika;konstMaksimal ehtimoli=1000;turi   LootType=(Qon toshi, Mis, Zumraddan, Oltin, Heronit, Platina,             Shadownite, Kumush, Soranit, Umbrarit, Kobalt, Temir, Hech narsa yo'q);   Talonchi = Sinf      Ehtimollar:Array[0..12] ning Longint;      Tanlang:xususiy funktsiya:LootType ning ob'ekt;      AsString:xususiy funktsiya(l:LootType):Ip ning ob'ekt;   Oxiri;funktsiya Talonchi.Tanlang:LootType;var   Loop,tasodifiy qiymat:So'z;Boshlash   tasodifiy qiymat:=Tasodifiy(Maksimal ehtimoli-1);   Loop:=0;   Esa Ehtimollar[Loop mod 13]<tasodifiy qiymat qil Inc(Loop);   Natija:=LootType(Loop mod 13);Oxiri;funktsiya Talonchi.AsString(l:LootType):Ip;Boshlash   Ish l ning      Qon toshi:Natija:="Qon toshi";      Mis:Natija:="Mis";      Zumraddan:Natija:="Zumraddan";      Oltin:Natija:="Oltin";      Heronit:Natija:="Heronit";      Platina:Natija:="Platina";      Shadownite:Natija:="Shadownite";      Kumush:Natija:="Kumush";      Soranit:Natija:="Soranit";      Umbrarit:Natija:="Umbrarit";      Kobalt:Natija:="Kobalt";      Temir:Natija:="Temir";      Boshqa Natija:='';   Oxiri;Oxiri;protsedura Talonchi.Ozod;BoshlashOxiri;// Boshqa barcha dasturlardan keyin ro'yxatga olinishi kerak //protsedura Talonchi.Init;Boshlash   Tasodifiy;   bilan O'zi qil boshlash // usullarni instansiyaga bog'lash uchun ishlatiladi!      Ehtimollar[0]:=10;      Ehtimollar[1]:=77;      Ehtimollar[2]:=105;      Ehtimollar[3]:=125;      Ehtimollar[4]:=142;      Ehtimollar[5]:=159;      Ehtimollar[6]:=172;      Ehtimollar[7]:=200;      Ehtimollar[8]:=201;      Ehtimollar[9]:=202;      Ehtimollar[10]:=216;      Ehtimollar[11]:=282;      Ehtimollar[12]:=Maksimal ehtimoli;      // RTTI / VMT yukidan qochish uchun:      Usuli(@asstring) := [@Talonchi.AsString, @o'zini o'zi];      Usuli(@tanlang) := [@Talonchi.Tanlang, @o'zini o'zi];      Usuli(@ozod) := [@Talonchi.Ozod, @o'zini o'zi];   Oxiri;Oxiri;var   o'lja:talonchi;   n:longint;boshlash   o'lja.init;   uchun n:=0 ga 99 qil Yozuvchi(O'lja.AsString(O'lja.tanlang));// uchun n: = 0 dan 99 gacha Writeln (Loot.choose); {Enum-ni String-ga aylantirish uchun ichki makros ishlatilgan}   o'lja.ozod;oxiri.

Chiqish

Labirent / xarita o'yinida navigatsiya paytida topilishi mumkin bo'lgan o'ljalarning tasodifiy ro'yxatini ko'rsatadi.

Dastlabki kod namunasini o'qish / kuzatib borish osonroq narsa bilan almashtirildi.

Salom Dunyo

Turbo Pascal sintaksisini ishga tushirishimiz mumkinligi sababli Salom dunyo dasturi ModernPascal-ning oddiy kodi "Hello World" bilan bir xil kodlangan.

dastur Salom Dunyo; boshlash   Yozuvchi('Salom Dunyo!');oxiri.

ModernPascal qisqacha Paskal tilini ham qo'llab-quvvatlaydi, shuning uchun siz hech qanday rasmiyatchiliksiz bayonotlarni bajarishingiz mumkin.

Yozuvchi('Salom Dunyo!');

O'rnatilgan birliklar

Paskal tilida qayta ishlatiladigan usullar to'plami a deb nomlanadi Birlik, boshqa tillar ko'pincha ushbu modullarni yoki kutubxonalarni chaqirishadi. Zamonaviy Paskalda atrof-muhitga o'xshash qo'ng'iroqlarni boshqarish uchun o'rnatilgan birliklar mavjud fayl tizimi I / O, tarmoqqa ulanish uchun rozetkalar TCP, ikkilik ma'lumotlar (buferlar), sinflar va ob'ektlar, kriptografiya funktsiyalar, ma'lumotlar oqimlari, doimiy ifoda, to'plamlar, jurnalga yozish, konfiguratsiya fayllaridan foydalanish ini, CSV yoki sdf (CSVga o'xshash) formatlari, ma'lumotlar bazalari orqali ODBC, o'rnatilgan dBase, Clipper va FoxPro va boshqa asosiy funktsiyalar.

Bog'liqliklar

Zamonaviy Paskal hech qanday uchinchi tomon kutubxonalarini talab qilmasdan ishlaydi. Zamonaviy Paskalda ixtiyoriy ravishda OpenSSL-ga erishish talab qilinishi mumkin TLS / SSL tinglovchilar va mijozlar.

Fayllar kiritilgan

  • Zamonaviy Paskal tijorat kompilyatori: MPC (derazalar: mpc.exe)
  • Zamonaviy Paskal buyruq qatori interfeysi: MP2 (derazalar: mp2.exe)
  • Zamonaviy Paskal RTL Engine (kompilyatsiya qilingan skriptlar uchun): MPX (derazalar: mpx.exe)
    • OS X va Linux (lar) da tuzilgan skriptda! # / Bin / mpx - o'z-o'zini boshqarish uchun!
  • Zamonaviy Paskal tezligi: tezligi2 (derazalar: celerity2.exe)
  • Tezlikni oshirish uchun zamonaviy Paskal Apache moduli: mod_pascal.so (derazalar: mod_pascal.dll)
  • Zamonaviy Pascal CodeRunner: coderunner2 (derazalar: coderunner2.exe)

Yivlash

Zamonaviy Paskal, kirish-chiqish qo'ng'iroqlarini blokirovkalash yordamida bitta ipli model yordamida ishlaydi. Celerity va CodeRunner - bu o'z-o'zidan ishlaydigan dvigatellar bo'lib, zamonaviy Paskalning o'zi o'n minglab bir vaqtda ulanishlarni qo'llab-quvvatlashga imkon beradi. Kodning har bir nusxasi uchun bitta ipning dizayni juda ishonchli dasturlarni yaratish uchun ishlatilishini anglatadi. Zamonaviy Paskal dasturining loyihalashtirish maqsadi shundan iboratki, har qanday dasturchi mahorat darajasi xotira sızıntısından, iplar o'rtasida o'zgaruvchan to'qnashuvdan va hokazolardan qo'rqmasdan ishlay olishi kerak. Ushbu yondashuv u ishlaydigan kompyuterning protsessor yadrolari sonini kattalashtirishga imkon beradi. . Ushbu yondashuvning salbiy tomoni - bu iplarni almashtirish kontekstining ko'payishi, ammo Zamonaviy Paskal tili Dell noutbukida 50 000 dan ortiq bir vaqtda ulanish / skriptlarni boshqarish bilan sinovdan o'tgan.

Adabiyotlar

  1. ^ "Zamonaviy Paskal | Public Wiki". UordKunningham. Olingan 28 mart 2016.
  2. ^ "Zamonaviy Paskalning evolyutsiyasi | Public Blog". Barcha Nu.de. Olingan 28 mart 2018.
  3. ^ "Kod namunalari | Modern Pascal Solutions, LLC". Zamonaviy Paskal echimlari, MChJ. Olingan 18 mart 2018.

Tashqi havolalar