Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ОписаниС языка PascalABC.NETΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 3

Автор W Cat

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компиляции .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 отсутствуСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ большого числа собствСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.