Notaların Pascal işlemi. Dil programlama Pascal'ın gelişim tarihi. Zminni. Standart tipler

1970 yılındaki dağılma dalgası. Niklaus Werth yak mov, sıkı yazım ve sezgisel olarak mantıklı sözdizimi sağlayacaktır. Adlarını Fransız matematikçi, fizikçi ve filozof Blaise Pascal'dan alıyorlar.

Pascal Niklaus Wert tarafından dilin yaratılmasının amaçlarından biri öğrencilerin yapısal programlama bilgisini vurgulamaktır. Dosi Pascal, temel programlama için haklı olarak en iyi araçlardan biri olarak kabul edilir. Object Pascal gibi bu modern modifikasyonlar endüstriyel yazılımlarda (Delphi'nin çekirdeği) yaygın olarak kullanılmaktadır.


Blaise Pascal
1995 yılında piyasaya sürüldü Turbo Pascal ara yazılımının devamı olan Delphi programlama sistemi, eklentilerin hızlı bir şekilde oluşturulması için en iyi ara yazılımlardan biri haline geldi. Delphi, Pascal diline düşük nesne yönelimli uzantılar kattı; Dil güncellendi ve adı Object Pascal olarak değiştirildi. Delphi 7.0 sürümünden itibaren Delphi Object Pascal dili basitçe Delphi olarak anılmaya başlandı, eski adı sıklıkla vikorlaştırıldı. Ara yazılımın geri kalan sürümü Delphi XE'dir.
Delphi 7 ortamı

Pascal ve Free Pascal'ın ücretsiz uygulanmasından çok memnunum. Çıkış kodunun açıklığına ek olarak, ana avantajı çoklu platform ve çeşitli Pascal lehçelerini desteklemesidir. FreePascal'a dayanarak, Delphi ara yazılımına benzer, benzersiz bir çok platformlu Lazarus ara yazılımı oluşturuldu. Ancak entegre Free Pascal çerçevesinin onlarca yıldır değişmeyen konsol arayüzünün, işletim sistemlerinin mevcut masaüstü arayüzleriyle çok az ortak noktası olduğu ve daha çok yanlış oluşturulmuş olanlara benzediği ortaya çıkıyor. modası geçmiş dil.

Öte yandan, Delphi ortamı dünya çapında giderek daha hantal ve temel programlama için uygunsuz hale geldi. Ayrıca akademik araştırmalar için Delphi'nin günlük ücretsiz bir sürümü de bulunmaktadır. Bu faktörler Delphi'yi bu aydınlanma alanında neredeyse tamamen ön plana çıkarmıştır ve Lazarus'un ortası için, bütünlüğü ne olursa olsun, bu tür bölümler aynıdır.

Ağır dil programlama ve ağır standart kütüphaneleri içeren Java ve .NET platformlarının ortaya çıkışı Delphi dilinin konumunu zayıflatmıştır. Temel programlama için Java, C, C++, C#, Visual Basic, Python, Haskell gibi diller daha sık kullanılır hale geldi.

Pascal'ın gelişimiyle ilgili en parlak gelişmelerden biri, yaratıcıların haklı olarak 21. yüzyılın modern Pascal'ı olarak adlandırdığı RemObjects'in Oxygene derleyicisinin ortaya çıkmasıydı. Oxygene, .NET ve Java platformları da dahil olmak üzere çeşitli platformlar için kod üretebilir. Başlıca dezavantajı, maliyetsiz bir derleyicinin ve hafif amaçlar için bir orta yolun bulunmamasıdır. Ayrıca Oxygene, profesyonel açık sözlülüğünü yansıtan kanonik Pascal dilinden (prosedürler ve işlevler yerine sınıf yöntemleri) çok farklı olabilir.

Dil ve programlama sistemi İnternet sitesi Gelişen durumu değiştirmek için butona tıklayın ve hem yeni başlayanlar hem de profesyonel programlama için son derece yararlı olan Pascal'ı .NET platformuyla çoğaltarak açın.

Alfabe dili Pascal birkaç bölümden oluşur:

Latin harfleri: A a B b…

Rakamlar: 0 1 2..9

Matematiksel işlemlerin işaretleri: + - * /

Matematiksel semboller:<> =

Bölünme işaretleri: . , : ;

Özel karakterler: ( ) () $ ^

Pascal'ım tarafından yazılan program aşağıdaki bölümlere ayrılabilir.

Başlık

İşaret bölümü

Sabitlerin bölümü

Türler bölümü

Seçkinlerin bölünmesi

Prosedürler ve işlevler bölümü

Operatör bölümü

Tüm programlar mutlaka başlık bölümünde ve operatör bölümünde çalışır. Diğer depolar her gün açık olabilir. Programın belirli bölümlerinin yokluğunda doğrudanlığın orijinal düzeni korunur.

";" işaretiyle ayrılırlar.
Operatör bölümü operatör kollarında bulunur. Bu ayrılmış kelimeler başlar, biter. Operatör bölümü noktayla biter. Operatör kollarının ortasında kayıt genellikle üç işaretli bir girişle gerçekleştirilir.

1) Operatör kollarını sol kenarda aynı açıklığa ve operatörleri yerleştirme seviyelerinin arkasına dikin

operatör1;

operatör2;

operatör3;

2) Operatörleri kaydetmek, değişiklikleri, prosedürleri, işlevleri ve diğer program bileşenlerini belirtmek için küçük harfler kullanın. Pascal tercümanı hem büyük hem de küçük harfleri kullanmanıza izin verse de pratikte geri kalanların durgunluğu daha geniştir;

3) Operatörler ve program parçaları için yedek yorumlar oluşturun. Bu, önemli bir süre sonra hem diğer geliştiriciler hem de yazarın kendisi tarafından programların çalışma ilkelerinin anlaşılmasını kolaylaştıracaktır.

"Başlık" bölümü ayrılmış bir sözcükle başlar ve ardından programın adı gelir. Alfabedeki herhangi bir karakter kümesini bir takım suçlularla nasıl çözebilirim?

§ Ayrılmış kelimeler vikorize edilemez.

§ Numaraları kullanarak iş kuramazsınız.

§ İsim seçilirse boşluk düzeltilmez.



Uygula: program bir; programı olmak ya da olmamak; programı x5;

Veri türünü affedin.

Pascal'ın verilerinin türlerine göre karakterize edilip edilmediği. Tür şu anlama gelir: Bilgisayarın belleğindeki veri besleme biçimi, seçilen türe uygulanması gereken değiştirilebilir veya sabit bir değer olarak kabul edilen geçerli bir değerin olmaması ve bu türe atanacak geçerli işlemlerin olmaması.

Değişikliğin türü açıklamasında belirtilmiştir. Pascal'ın temel kavramlarından biri, atama işlemlerinde türlerin katı bir şekilde tersine çevrilmesidir.

Pascal dilindeki veri türleri beş ana sınıfa ayrılır.

1. Basitçe ipucu

2. Yapılandırılmış türler

3. Olası türler

4. Usul türleri

5. Nesne türleri

Basit tiplerden önce; tamsayı tipleri, konuşma tipleri, mantıksal tip, karakter tipi, aşırı dikkat tipi, aralık tipi bulunmaktadır.

Bu türler arasında konuşma türünden farklı, sıralı tür adı verilen bir tür alt kümesi vardır.
Sipariş türlerinin birçok özelliği vardır.

1. Belirli bir sıra tipinin tüm olası değerleri, sıralı bir çarpımdır ve olası her değer, bir tam sayı olan bir sıra numarasıyla ilişkilendirilir.

2. Sonuçta herhangi bir sıra tipinin değeri sıfır sıra numarasıyla başlar (sonraki sıra numarası 1, 2, 3...'tür).

3. Bir tamsayı türünün değerinin sıra numarası, değerin kendisidir.

4. Herhangi bir sıra tipi için, birinciye ek olarak dış görünüm değeri ön değerdir ve dış görünüm değeri, kalan değere ek olarak bir sonraki değerdir.

O zamana kadar istediğiniz sırayla beş işlemde yapabilirsiniz.

Standart çalışma Ord Girilen değerin seri numarasını çevirir. Anlamı tapınaklarda belirtilmiştir.

Standart çalışma Tercih belirlenen değere aktarılan değeri döndürür, eğer bu fonksiyon bu türün ilk değerine ayarlanmışsa, sıfırlama ile ilgili bir bildirim görüntülenir.

Standart çalışma Succ Ayrıca girişten sonra değerleri döndürür, türün kalan elemanına kadar işlem tamamlanırsa sıfırlama ile ilgili bir bildirim görüntülenir.

Standart Düşük işlemi, kendisine atanan sıra tipi aralığının en düşük değerini döndürür.

Standart Yüksek işlemi, kendisine atanan sıra tipi aralığındaki en yüksek değeri döndürür.

Pascal'ımızın beş değerli tam sayı türü vardır (Tablo 6). Cilt tipi, tam sayıların alt katları anlamına gelir.

Tablo 6 - Pascal filminin tam sayı türleri

Kural olarak tüm veriler için tamsayı türü seçilir.

Tüm tiplerin üst limit değeri ve alt limit değeri sabit olarak belirtilmiş olup farklı adlara sahiptir. Program metninde her türlü veri onluk veya onaltılık formatta ve onlu nokta içerme zorunluluğu olmaksızın kaydedilir.

popo:
1 - bütün tip
1.0 - konuşma türü
100 – onlarca formatı (100)
#100 - onaltılık format (256)

Toplama, toplama ve çarpma işlemleri ile eşitleme işlemleri tüm veriler üzerinde mümkündür. Tamsayı sabitinin türü, verilen sabitin değerlerini içeren en küçük aralığa sahip bir tamsayı türüdür. Atanan operatörde sağ elin değeri, değiştirilebilir malzemenin boyutuna veya türüne bakılmaksızın hesaplanır.

Mantıksal tür Boolean türünde olmalıdır.
Boolean tipinin değerleri iki değere sahip olabilir: doğru(1) şu YANLIŞ(0). Mantıksal bir durgunluk türü için yalnızca iki ayarlama işlemi vardır: ve ayarlanmama. Ciddi tip boolean bir bayt işgal eder.

Karakter türü karakter- veri türü, bir karakterin saklanma amacı (harf, işaret veya kod). 256 karakterlik genişletilmiş ASCII koduna sahip herhangi bir tesisiniz olabilir. Zminna tipi karakter bir byte hafıza kaplıyor. Char türüne ilişkin değerler kesme işaretiyle belirtilir. Ayrıca ASCII tablosundan değer ve kodları da belirleyebilirsiniz. Karakter tipi veriler üzerinde eşitleme işlemleri gerçekleştirilebilir.

Aşırı sigorta türü, tanımlayıcılar kümesinin sıralaması, aşırı sigortalanma yolundaki görevler olarak belirtilir. Bu durumda koma bölümlerinin tanımlayıcılarının listesi yuvarlak kollarda gösterilir. Tip kısmında reasürans yapılacak tip belirtilir.

popo:
A=(2, 4, 1, 7);
B=("c", "L", "3", "|");

Aşırı tepki verilen türdeki değerler klavyeden girilemez veya ekranda görüntülenemez.

Verilerin aralık türü, önceden tanımlanmış türlerden birinin değerinin bir alt kümesinin ek olarak belirtilmesiyle belirtilir. Konuşma suçlamasının ardındaki tüm basit türleri vikoristuvat edebilirsiniz. Belirli bir aralık için en küçük ve en büyük değerler iki noktayla ayrılmış olarak gösterilir. Bu durumda suç aynı türdendir.

Konuşma türü, kayan noktalı ve sabit sayıda basamaklı formatta temsil edilen gerçek sayıların bir alt kümesini içerir.

Pascali'nin beş tür konuşma türü vardır (Tablo 7).

Tablo 7 – Pascal konuşma türleri

Tekli, çiftli, kayma hassasiyetli türler üzerinde işlemler ve

Katlama türü tüm Pascal uygulamaları tarafından desteklenmeyebilir. Bu nedenle Real tipinin erişilebilir olması önemlidir.

Pascal programı Niklaus Wirth tarafından oluşturuldu ve adını 17. yüzyılın Fransız filozofu ve matematikçisinden aldı. Blaise Pascal. O zamanlar Wert, İsviçre'deki Federal Teknik Üniversite'de bilgisayar bilimi profesörüydü ve öğrencilerin programlamaya başlamalarına yardımcı olabilecek bir dil talep ediyordu.

Pascal'ın konsepti 1970 civarında N. Wirt tarafından genişletildi ve Pascal, yenileri üzerine yazılan program metinlerinin uygulama kolaylığı ve doğruluğunda hızla büyük bir artış elde etti. Pascal'ın parçaları Ada ve Modula-2 gibi diğer programlamaların geliştirilmesine temel oluşturdu ve parçalar Pascal'a benzer yapılar açısından zengindir; Pascal bilgisi diğer programlamaların geliştirilmesi için sağlam bir temel oluşturur.

1970'lerde Pascal için uluslararası bir standart geliştirilmeye çalışıldı. 1982 yılı sonucunda ISO 7185 standardı ortaya çıktı.

Anders Hejlsberg'in çabalarıyla Mova Pascal, profesyonel Turbo Rascal programlama sistemine dönüştürüldü. Bir süredir ortalıkta olan ve geniş çapta genişletilmeyen sürüm 1.0'dan sonra, sürüm 2.0 1984'ün ortalarında ortaya çıktı. Genişleme hızlı bir şekilde devam etti. 1985 sonbaharına kadar, sürüm 2.0'dan yeni özelliklerle yükseltilen sürüm 3.0 ortaya çıktı: derleyici ve editör daha verimli hale gelmeye başladı, ek RUN komutunu kullanarak parametreleri bir programa aktarmak mümkün hale geldi, MS-'yi kaldırıyoruz. Programlardan DOS tıklaması, dosyalar ile manuel robot haline gelmiştir. 1988'den beri sürüm 4.0 genişletildi.

İşte Turbo Pascal sunumunun yeni hali. Yalnızca gelişmiş bir derleyici değil, aynı zamanda tamamen yeni bir yazılım programıdır. Programları birlikte derlenebilecek parçalara (modüllere) bölmek mümkün hale geldi. 1988 sonbaharına kadar, daha da gelişmiş yazılım iyileştirmeleriyle birlikte sürüm 5.0 ortaya çıktı. Burada tüm başarılardan övgüyü hak eden ilk kişi yöneticidir. Turbo Pascal, kişisel bilgisayarların çoğu işletim sisteminde kullanılabilir.

Windows programları geliştirmek için Objects ve Delphi araçlarıyla birlikte Borland Pascal'ın ortaya çıkışı, Pascal'ın sahip olduğu gerçekten inanılmaz yetenekleri bir kez daha gösterdi. Borland Pascal ve Delphi dilindeki vikorist Pascal, Turbo Pascal'ı temel alır ve fikirlerini geliştirir.

Delphi bir Pascal film derleyicisidir. Delphi 1, optimize edici bir derleyiciyi, görsel bir ara yazılımı ve gelişmiş veritabanı yeteneklerini birleştiren ilk Windows uzantı aracıydı. Kader daha sonra Delphi 2'yi aynı şekilde kurdu, ancak mevcut 32 bit işletim sistemi Windows 95 ve Windows NT'nin yeni seviyesinde. Ayrıca Delphi 2, programa 32 bitlik bir derleyici sağlayarak daha verimli ve etkili programlar ve daha güçlü nesne kütüphaneleri oluşturdu.

Delphi geliştirme ekibinin çalışması, ürünün üçüncü versiyonunda program oluşturmaya yönelik genişletilmiş bir araç setinin, WWW programlarını geliştirmek için COM teknolojilerini kullanma yeteneğinin ve diğer birçok güncel programlama teknolojisinin ortaya çıkmasına yol açtı.

Delphi 4, Anders Hejlsberg'in 16 yıl önce ilk Turbo Pascal derleyicisini yaratmasından bu yana Pascal derleyicilerinin gelişiminde bir dönüm noktası olmuştur.

Pascal'ın) – Zagalny önemi olan Vysokorivneva dil programlaması. En iyi bilinen programlardan biri, okulda başlayan endüstriyel programlamada yaygın olarak bulunur ve diğer birçok programın temelini oluşturur. ALGOL-68 dil standardının geliştirilmesi komitesine katıldıktan sonra 1968-69'da Niklaus Wert'in (1970'de yayınlandı) çalışma kitapları.

Tarihöncesi

Prosedürel programlamayı öğrenmek için Yakmov'un yaratımlarının Pascal'ı (Virt'e göre dil ilk dilin ötesinde düşünülemese de, dilin parçaları gerçek programlar yazmak için uygun değildir, öğrenmek için vikorist olmak gerekli değildir). Filmin adı, önde gelen Fransız matematikçi, fizikçi, yazar ve filozof Blaise Pascal'ın onuruna verilmiştir.

Uygulamalar

UCSD Pascal'ı

1978'de San Diego Üniversitesi'nde (Kaliforniya, ABD), taşınabilir p-kodunda Pascal dili için bir derleyici içeren ve modüller, sembol satırları gibi bir dizi Pascal dil uzantısını uygulayan UCSD p-Sistemi geliştirildi. Ve geçişte, direktiflerin yayınlanması, giriş-çıkış işlemlerinin yapılması, birbiri ardına isimlendirilen dosyalara indirilmesi. Yıllar geçtikçe Pascal dilinin ana uygulamaları bu lehçeye dayanıyordu.

Apple'dan Nesne Pascal

Borland'dan Turbo Pascal ve Object Pascal, Microsoft Pascal

Çoğunlukla dilin geniş bir şekilde genişlemesini sağlayan Pascal'ın uygulanmasıyla yönlendirilen Borland'dan Turbo Pascal, daha sonra DOS (sürüm 5.5'ten başlayarak) ve Windows ve ardından Delphi için Pascal nesnesine dönüştü. tanıtıldı mı?

DOS için Turbo Pascal'da ve Windows için Delphi'de bulunan Pascal lehçeleri, diğer başarılı ticari uygulamaların varlığıyla popüler hale geldi.

Standart

1970 yılında Pascal'ın çalışmalarının başlamasından sonra, sadece eklemelerde değil, söz diziminde de farklılık gösteren uygulamalar ortaya çıktı ve dilin standardizasyon ihtiyacı ortadan kalktı. Filmin standardı 1974 yılında Niklaus Wert tarafından Kathleen Jensen ile birlikte geliştirildi. Daha sonra uluslararası standart ISO ve Amerikan standardı ANSI kabul edildi. Şu anda temelde farklı üç standart var: Uzatılmamış Pascal, Genişletilmiş Pascal, Pascal'a Nesne Yönelimli Uzantılar.

Pascal dil standartları: hafta sonu, uluslararası ISO ve Amerikan ANSI
İsimseçenekKim/de rozroblenoYaratılış Nehri
Pascal StandardıkoçanıN. Virt, Ketlin Jensen
Pascal StandardıkoçanıISO 7185:1983
ANSI/IEEE 770X3.97:1983
Uzatılmamış PascalkoçanıISO 7185:1990
Genişletilmiş PascalUzantılarANSI/IEEE 770X3.160:19891989
ISO/IEC 10206
Nesne odaklı
Pascal Uzantıları
nesne yönelimli uzantılarANSI/X3-TR-13:1994

Extended Pascal'ın nesne yönelimli uzantısının ana ek özelliklerinden biri, modülerliği ve ayrı derlemeyi kolaylaştıran özellikleridir.

Dilin standartlaşması, dildeki bu ve benzeri olasılıkların fiilen ortaya çıkmasıyla bağlantılı olarak geç kalmıştır. Ticari satışlar standart Pascal'ı genişletti; Apple tarafından Object Pascal'ın bir modifikasyonu olan UCSD Pascal'da, Borland tarafından Turbo Pascal'da (Apple'ın biraz değiştirilmiş bir versiyonu) ve aynı şekilde derlendi. Pascal'ın en yaygın ticari uygulamaları resmi dil standartlarının doğruluğunu karşılamıyor.

Bu yapının sözdizimi

Pascal, birincil görünümünde, tamamen prosedürseldir ve komut için ayrılmış sözcükler içeren bir dizi algoritma benzeri yapı ve yapıyı içerir if, Then, else, while, for, vb. Tim daha az değil, Pascal da harika Olasılıklar var İlk Algol-60'ta bulunan, belirlenmiş türler, kayıtlar, göstergeler, aşırı yorumlama ve kişiliksizlik gibi yapı bilgisi ve soyutlama. Bu yapılar genellikle Niklaus Wert AlgolW tarafından oluşturulan ve Hoare tarafından yeniden canlandırılan Simula-67, Algol-68'den yıkılmış veya yeniden icat edilmiştir.

Mevcut lehçelerde (Free Pascal), ters çevirme operatörleri ve fonksiyonları gibi işlemler mevcuttur.

Selam Dünya

Pascal'daki programlar, program anahtar sözcüğüyle başlar, ardından programın adı noktayla gelir (çoğu lehçede bu gerekli değildir), ardından parametre olarak harici dosya tanımlayıcıların bir listesi gelir; bunu değişkenleri, türleri ve sabitleri, prosedürleri ve işlevleri açıklayan bir bölümden ve bunları takip eden, programın giriş noktası olan ifade bloğundan oluşan programın gövdesi takip eder. Pascal filminde blok, başlangıç ​​ve bitiş anahtar sözcükleriyle ayrılır. Operatörler noktaları bir nokta ile paylaşırlar, gövdeden sonra programın sonunu gösteren bir nokta bulunur. Pascal'daki sembol kaydının hiçbir anlamı yoktur.

Yani Pascal'daki en basit program şöyle görünecektir: başlangıç ​​sonu. Program günlük işlemleri iptal etmez ve boş bir operatör bloğu yerleştirmez.

Satırı görüntülemek için popo programı Merhaba, Dünya! Program MerhabaDünya(çıkış);başla

WriteLn("Merhaba Dünya!"); (satır operatörü)

son.

Tipi haraçları

İlkel Pascal'ın veri türleri: kayan virgüllü sayılar (gerçek), tam sayılar (tamsayı), sembolik (karakter), mantıksal (boolean) ve yeniden yorumlama (yeni bir türün oluşturucusu, Pascal'dan tanıtımlar):

R: Gerçek; (Zminna konuşma türü) i: Tamsayı; (Zmіnna bütün tür) c: Char; (Zminna karakteri) b: Boolean; (mantıksal değişim) e: (elma, armut, muz, portakal, limon); (Zminna tipu-perehrahuvannya)

Açık görünüyor sıralı veri türleri (sıralı), bunlardan önce amaç türleri (imzalı ve imzasız), mantıksal (boolean), karakter (char), taşma türleri ve aralık türleri.

Sıra türleri, ord ek işlevi kullanılarak kaldırılabilen bir tam sayı (kod) ile belirtilir. Sıralı türlerle ilişkili tüm işlemler, kodlarıyla ilişkilendirilir.

X: 1..10; y: "a".."z"; z:armut..turuncu;

Sıralı türler için, inc, dec, succ, pred, ord, eşitleme işlemleri (=>< => <= <>), diziler arasında, çokluk ve aralık türlerindeki öğeleri belirtmek için case , for (döngü operatörü olarak) operatörlerinde kullanılabilirler.

Pascal'da C benzeri dillerin yanı sıra boolean ve char türlerinde aritmetik tamsayı işlemleri tanımlanmamıştır.

Pascal, zengin uzantılarının yanı sıra özel bir veri türünü de destekler kişiliksiz:var

Küme1: 1..10 kümesi; set2: "a".."z" kümesi; set3: inci seti..turuncu;

Zengin, modern matematiğin zengin algoritmalarda kullanılabilen temel bir kavramıdır.

Pascal'da çokluğun türü, sıralı türün aynı türündeki öğelerle karşılaştırılabilir. Bu özellik geniş çapta beğenilmekte ve dilde kişiliksizliği desteklemeyen eşdeğer yapı için çağrılmaktadır. Örneğin çoğu Pascal derleyicisi: eğer içerideysem (kişisel olmayan unsurun kimliğinin kontrol edilmesi). obrobatsya shvidshe, nіzh eğer (i>4) ve (i<11) then { проверка логическими условиями }...Çokluğun değerini ayarlamak için, çokluğun elemanlarının, virgüllerle ve kare kemerdeki yerleşimlerle güçlendirilmiş bir listesi görüntülenir (yukarıda gösterildiği gibi): var (çarpıcı değişikliklerin bölümü)

D:karakter kümesi;

başla (bloklamak için koçanı)

D:=["a", "b"];

... Pascal Jensen ve Virt'te satırlar, paketlenmiş bir sembol dizisi olarak temsil ediliyordu; Artık sabit dowzhin kokusu iptal edildi ve bu güne kadar boşluklarla desteklendi.

Modern Pascal'da satırlarla çalışmak için birleştirme (+) ve hizalama (>) işlemlerini destekleyen dize türü kullanılır.< = <> >= <=). Строки сравниваются в лексикографическом порядке . Например, строки считаются равными если они имеют одинаковую длину и коды всех символов с одинаковыми индексами совпадают.

1970'ler-1990'ların dil lehçelerinde string [n] veya basitçe string yazın; char dizisindeki bir karakter dizisi olarak görünür (n, UCSD Pascal'da 80 ve Turbo/Borland Pascal'da 255 değerini alır), bir kodun kodu Bu girdiyle boş karakter Maksimum 255 karakter boyutunda son satırın, özellikle de hemen satırın önkoşulu olarak hizmet eder. Delphi ve FreePascal'da, belleği derleyici tarafından dinamik olarak görülen ve tahsis edilen AnsiString türü String olarak kullanılır ve mevcut uygulamalarda maksimum satır boyutu 2 gigabayt olarak ayarlanmıştır. Ek olarak, Delphi ve Free Pascal'da WideString türü dize olarak kullanılabilir, ancak UCS-2 kodlamasındaki 16 bitlik karakter ifadeleri engellenir, bu da tek baytlık satırlardan büyük baytlık satırlara ve geriye dönüşüme izin verir standart kütüphanede ve günlük dilinizde.

Aşağıdakiler nedeniyle yeni türler tanımlanabilir:

X = Tamsayı; y = x;

... Ayrıca depolar aşağıdaki tiplerden inşa edilebilir: tip (tip ayırma bölümü)

A = Tam Sayı Dizisi; (Belirlenen dizi) b = kayıt (Belirlenen kayıt) x: Tamsayı; y:Karakter; son; c = a'nın dosyası; (Dosyaya atama)

Pascal'daki dosya türleri yazılı, metin ve türsüz dosyalara bölünmüştür.

Yukarıdaki örnekte gösterildiği gibi, Pascal'da yazılan dosyalar benzer öğelerin bir dizisidir. Dış görünüm dosyası için arabellekte f ^ ile gösterilen bir değişiklik göstergesi vardır. Alma (okuma için) ve koyma (yazma için) prosedürleri göstergeyi bir sonraki öğeye taşır. Okuma, read(f, x) ile get(f) ile aynı şekilde uygulanır; x:=f^. Görünen o ki kayıt, write(f, x) ile f^: = x; aynı olacak şekilde gerçekleştiriliyor. (f) koy. Metin dosyaları, karakter tipindeki dosyanın bir uzantısı olarak tasarlanmıştır ve yazılan dosyalar üzerindeki standart işlemlere (okuma, karaktere yazma) ek olarak, konsol giriş-çıkışına benzer şekilde tüm veri tiplerindeki dosyalarda sembolik giriş-çıkışa izin verir. .

Türleri olmayan dosyalar, dosya türüne göre oylanır. Bunlarla birlikte, özel blok okuma ve blok yazma prosedürlerinin (UCSD uzantısı) kullanıldığı bir arabellek aracılığıyla, belirlenmiş bir periyodun belirli sayıda blok baytı üzerinde bayt bayt türlenmemiş G/Ç işlemlerini gerçekleştirebilirsiniz.

Vkazivniki

Pascal çeşitli göstergeleri destekler (yazılan ve yazılmamış işaretçi): tip

A = ^b; b = kayıt x: Tamsayı; y:Karakter; z: bir; son;

Pointer_to_b:a;

Burada değişiklik pointer_to_b'dir - b veri tipinin ve kaydın bir göstergesi. Tipik bir göstergenin türü, sorulan türe atanabilir. Bu bir kural değil ama konuşma ne olursa olsun, galip geldiği gerçeği karşısında şaşkına döndüğü açık. Bu hariç tutmanın getirilmesi, bir kaydın envanterindeki bir kayıt için bir gösterge (ayrıca: boş gösterge - sıfır) dahil olmak üzere doğrusal listeler, yığınlar ve çekmeceler dahil olmak üzere veri yapılarının yinelenen değerlerini düzenlemeyi mümkün kıldı.

Yazılan bir gösterge için "rosiname" işlemi atanır (sözdizimi: gösterge^).

Yeni bir kayıt oluşturmak ve a ve b alanlarına 10 değerini ve A karakterini atamak için aşağıdaki operatörler gereklidir: yeni(işaretçi_to_b); (Şovmen anısına vizyon)

pointer_to_b^.x:= 10; (pointer_to_b^.y:= "A";pointer_to_b^.z:= sıfır;...dispose(pointer_to_b); (göstergeden gelen hafıza) Kayıt ve nesne alanlarını ölçeklendirmek amacıyla uygulamada gösterildiği gibi with operatörünü de kullanabilirsiniz: yeni(işaretçi_to_b);

pointer_to_b^ dobegin ile

X: = 10; y:= "A"; z:= sıfır

bitiş;...dispose(pointer_to_b);

Prosedür türü

Pascal Jensen ve Virta'nın orijinal filminde prosedür türü yalnızca resmi bir parametreyi açıklarken kullanıldı. Zaten TP tam teşekküllü bir prosedür türü haline geldi. Belirtilen tür, alt programların arayüzünü açıkça tanımlayan prosedür ve fonksiyonun başlığını (isimsiz) içerir. Bu tür bir değer için, alt programa yukarıda açıklanan türe karşılık gelen bir başlığa sahip bir gösterge yerleştirin. Ek değişiklik kimliği için belirli bir prosedüre veya işleve tıklayabilirsiniz. işlevim=işlevi:dize yazın;

function func1:dize;başla

İşlev1:="işlev N 1"

işlev func2:dize;başla

İşlev2:="işlev N 2"

var eğlence:işlevim;başla

Fun:=@func1;writeln(fun) (func1 fonksiyonuna tıklanır)

son.

Operatörler keruvannya vikonnyam programları

Pascal yapılandırılmış bir programlama dilidir; bu, programın ideal olarak bir GOTO komutuna ihtiyaç duymadan sırayla eklenen bir dizi standart ifadeden oluştuğu anlamına gelir. bir süre<>b yap (döngü iz fikir değişikliği)

Writeln("Para basımı");

a > b ise (zihinsel operatör)

Writeln("Umova vikonala")

else (else-bölümü - farklı olabilir)

Writeln("Umova vikonal yapmadı");

for i:= 1 - 10 do (yineleme döngüsü)

Writeln("Yineleme No", i:1);

tekrarla (başparmak sonrası döngü)

C:=a+1

durum i (zihinsel çokluk operatörü)

0: yaz("boş"); 1: yaz("bir"); 2: write("iki") else write("bilinmeyen numara") (diğer bölüm - günlük olabilir)

son; Operatörlerde while , for , if , case operatörünün kapsamında kullanabilirsiniz engellemek. Birincil operatör veya blok olan böyle bir yapıya denir. katlama operatörü.

Derleme işlemini gerçekleştirmek için Pascal, derleyici direktiflerine ihtiyaç duyar. Yorumlarda bulunurlar ve derleyicinin çalışma modlarını değiştirmenize olanak tanır; örneğin, giriş-çıkış işlemlerinin doğrulanmasını, yeniden değişimin doğrulanmasını etkinleştirin ve devre dışı bırakın:

Ata(inp, "metin.txt"); ($I-) (GÇ kontrol modunu etkinleştirme - giriş-çıkış yürütmesi sırasında program tamamlama kodunu oluşturma) ( (dosyanın bulunamadığı durumlar için)) reset (inp); ($I+) (etkin IO kontrol modu) eğer IOresult=0 ise başlayın (değerler ioresult( değiştirilerek doğrulanır)<>0 giriş-görüntüleme sırasında) ... kapat (inp); end else writeln("dosya bulunamadı")

Derleme işlemi sırasında derleyici tarafından derlenen C/C++ önişlemci direktiflerine benzer direktifler ($ifdef, $define, $include) vardır.

Prosedürler ve işlevler

Pascal'da alt programlar prosedürlere ve işlevlere bölünmüştür:

Sözdizimsel olarak prosedürler ve işlevler şunlardan oluşur: başlık(prosedür veya işlev anahtar kelimesini, kollardaki geçen parametrelerin açıklamasıyla takip edilebilecek adları, işlev için çift sembol aracılığıyla döndürülen değer türünü ve onunla birlikte noktayı içerir), başlıktan sonra gelir bir iz vücut bundan sonra bir sembol yerleştirilir; . program madeni(çıkış);

prosedür print(var j: tamsayı);

Sonraki fonksiyon(k: tamsayı): tamsayı; sonraki başla: = k + 1 bitiş;

Writeln("Usyogo: ", j); j:= sonraki(j)

ben:= 1; ben iken<= 10 do print(i)

son. Bir programın yanı sıra bir prosedürün gövdesi de prosedürlerin ve işlevlerin tanımını içerebilir. Bu şekilde prosedürler ve işlevler her zaman olduğu gibi derinlemesine iç içe yerleştirilebilir, bu durumda programın gövdesi en sıkı şekilde bütünleşmiş olur.

Üstelik bölümler yerine, ortasında bulunan prosedür/işlev açıklamasından önce genişletilen değişkenlerin, türlerin, sabitlerin, dış organların (prosedürler, işlevler, programlar) açıklaması vardır. Ayrıca bir prosedürün çoğu lehçesinde, harici bir prosedürün parametrelerini değiştirebilirsiniz.

İleri anahtar sözcüğü, gövde yerine prosedür/fonksiyon başlığından sonra yerleştirilebilir, böylece prosedür/fonksiyonun açıklaması çağrıdan sonra programda yer alır ve gramların tek geçişte derlenmesi olasılığı nedeniyle Pascal'da desteklenir.

İşlev olarak prosedürler, işlevlerin değerleri döndürdüğü ancak prosedürlerin döndürmediği anlamına gelir.

Modüller

Modüllerin ortaya çıkmasından önce Pascal'ın uygulamaları, C:'deki #include mekanizmasına benzer şekilde, başlık dosyalarını dahil etme mekanizması yoluyla modülerliği vurguladı; bu, sözde yoruma bakın, örneğin ( $INCLUDE "file") yerine, belirlenen dosya doğrudan çıktı, metin görünümündeki programın metnine dahil edildi. Bu şekilde, düzenleme kolaylığı için program kodunu ayrı parçalara bölmek mümkün oldu ve derlemeden önce bunlar otomatik olarak tek bir program dosyasında birleştirildi ve sonuç olarak derleyici tarafından derlendi. Bu modülerlik uygulaması ilkeldir ve belirgin bir kusuru yoktur, bu nedenle hızla değiştirildi.

Pascal dilinin mevcut uygulamaları (UCSD Pascal'dan başlayarak) modülleri destekler. Program modülleri iki tipte olabilir: Program anahtar sözcüğüyle başlayan ve gövdesi kod içeren, program belleğe yüklendikten sonra çalıştırılan ana program modülü ve bunların tipi sabit olan ek modüller, değiştirilebilir prosedürler Bu işlevler, ana modül de dahil olmak üzere diğer modüllerde kullanılmak üzere tasarlanmıştır.

Yapı

Pascal'a bağlanan modülün temel yapısı şu şekildedir: birim BirimAdı1;arayüz

... ...

begin (başlatma ifadelerinin yerleştirilmesi gerekiyorsa wiki olarak kullanılabilir)

...

son. Başka bir olası seçenek: birim BirimAdı2;arayüz

... ... ... ...

son. Ana programa bağlı olduğunda, modül dosyası UNIT anahtar kelimesiyle başlar ve ardından o noktada modülün adı gelir. Mevcut uygulamalar tipik olarak modülün adının, modülün uyduğu çıkış kodunun adıyla eşleşmesini gerektirir. Modül üç bölümden oluşur: arayüz bölümü, uygulama bölümü ve modülün gövdesi.

Arayüz bölümü ilk olarak INTERFACE anahtar kelimesiyle başlar ve uygulama bölümünün ve gövdenin başladığı modülde biter. Arayüz bölümünde, modül çağrılarında kullanılabilen nesneler duyurulur (türler, sabitler, değişkenler, prosedürler ve işlevler - bunlar için başlıklar yerleştirilir). Bu durumda, türlerin sık sık karıştırılmasına izin verilir: kokular belirlenmiş bir yapı olmadan, anlamsız bir şekilde dile getirilebilir. Bu tür bir kontrol seçildiğinde, harici programın, uygulamanın ayrıntılarına erişimi reddetmek yerine, değere atanan türün parametrelerindeki değişiklikleri açıklamasına izin verilir. Arayüz bölümündeki prosedürler ve işlevler, parametreli veya gövdesiz ileri başlıklar şeklinde sunulur. Modülün arayüz bölümünün depolanması, vicorist modülünün kodunu oluşturmaya yetecek şekildedir. Değişiklikler arayüz bölümünde yapılır ve globaldir, böylece tek bir kopya halinde görünürler ve bu modülün parçası olan programın tüm bölümlerinde kullanılabilirler.

Uygulama bölümü arayüz bölümünü takip eder ve IMPLEMENTATION anahtar sözcüğüyle başlar. Nomom'da, prosedürlerin envanteri, bu işlevler, ilnerefik güvenlikteki kafa ve türün, sabitin, yılanların, bu işlevlerin prosedürlerinin böyle bir açıklaması, işleyen gerçekçi prosedürler için yakі değildir. Arayüz bölümünde duyurulan prosedür veya fonksiyonun açıklaması, kafa karışıklığının sorumlusu olan başlığın kendisinden kaynaklanmaktadır. Gövde, hem arayüz kısmında hem de uygulama bölümünde bu modülün diğer prosedürlerinden ve işlevlerinden etkilenebilir. Uygulama bölümünde bahsedilen değişiklikler aslında geneldir (yani programın tamamı için böyle bir değişikliğin yalnızca bir kopyası vardır) ve bu modülün bölümlendirme bölümünde açıklanan prosedürler ve işlevler olmadan kullanılamaz. aynı zamanda bedeni. Ancak arayüz kısmında türlerin kısa bir açıklaması bulunmaktadır, bu türler uygulama bölümünde anlatılacaktır.

Modülün gövdesi, içeriğin en üst seviyesinde yer alan BEGIN anahtar kelimesiyle başlar. Modül kurulduğunda bir kez derlenen program kodunu yerleştirmeniz gerekir. Gövde, başlatma, koçanı değerlerinin değiştirilebilir bir modül tarafından tahsis edilmesi, işi için kaynak tahsisi vb. için dondurulabilir. Modülün gövdesi farklı olabilir. Bazı Pascal uygulamalarında, örneğin Delphi'de, modülün gövdesi yerine iki bölüm (ayrıca gerekli) olabilir - BAŞLATMA ve SONUÇLANDIRMA. Koku, belirtilen anahtar kelimeden sonra modülün sonunda görünüyor. Birincisi başlatma bölümü, - modül kurulduğunda görüntülenecek kod, diğeri - sonlandırma bölümü, - modül kaldırıldığında görüntülenecek koddur. Sonlandırma bölümü eylemlerden çıkabilir, çıkabilir ve başlatabilir; nesneleri bellekten silebilir, dosyaları kapatabilir, kaynakları silebilir.

Modül, END anahtar sözcüğü ve ardından bir nokta gelmesiyle biter.

Vikoristannya

Arızalı bir modülü, ana programı veya başka bir modülü vikorize etmek için, vikoristiniz hakkında kafa karışıklığını önlemek amacıyla modülü içe aktarın. USES anahtar sözcüğü olan modüllerin bağlanmasına ilişkin ek talimatların ve ardından bağlanması gereken modüllerin adlarının aranması önemlidir. Bağlantı modülde aktif olduğundan, bağlantı talimatı doğrudan program başlığından veya INTERFACE anahtar sözcüğünden sonra gelmelidir.

Arayüz bölümüne bağlı modüller, hem uygulama bölümünden hem de gövdeden olmak üzere her modülden seçilebilir. Alternatif olarak, uygulama bölümü, uygulama bölümü için ne gerekiyorsa, arayüz bölümüne bağlanan modüllerin adlarını girmek için bağlantı talimatını (IMPLEMENTATION anahtar sözcüğünden sonra gelen) kullanabilir. Uygulama bölümü için ayrı bir bağlantı listesi seçilmesinin nedenlerinden biri, iki veya daha fazla modülün birbirine bağlanması durumudur. Döngüsel mesajların bu tür modüllerin karışıklığını suçlamaması için, bunlardan biri diğerinin uygulama bölümüne bağlanmasından sorumludur.

Nesne modüllerinin arayüz bölümlerinde herhangi bir gürültü olup olmadığı modülün bağlı olduğu programdan kontrol edilebilir. Bağlı modüllerden içe aktarılan nesnelerin adları kendi adlarından çıkarılır ve istenildiği zaman değiştirilebilir. İki veya daha fazla bağlı modül yeni nesneler içeriyorsa ve derleyici bunları ayıramıyorsa, böyle bir nesnenin vicor'unu denediğinizde bir derleme hatası - belirsiz bir ad - göreceksiniz. Bu durumda, programcının adın niteliğini ayarlaması gerekir - adı şu biçimde belirtin: "<имя_модуля>.<имя_объекта>».

Aynı isimli iki farklı modülün değiştirilmesi gerektiğinde sorunlar ortaya çıkabilir. Modüller yalnızca derlenmiş görünümde mevcut olduğundan (isimlerini değiştirmek imkansızdır) anında içe aktarılamazlar. Böyle bir soruna yerel olarak standart bir çözüm yoktur, ancak belirli derleyiciler, içe aktarılan modüllere takma adlar atama ve herhangi bir dosya için modül gibi doğrudan ekleme yöntemi dışında, bunu atlamanın başka yollarını bulabilir.

Derleme ve düzenleme

Modüller ayrı derlemeyi sağlayacak şekilde tasarlanmıştır; derleyici, içe aktarılan modülleri, kendi vikoristleri olan modülü derlemek için derlemez. Ancak bir modülü doğru bir şekilde derlemek için derleyicinin derlenmekte olan tüm modüllerin arayüz bölümüne erişiminin olması gerekir. Bu tür erişimin düzenlenmesine yönelik karmaşık yaklaşımlar da dahil olmak üzere iki farklılık vardır.

  • Modulі, özel bir formattaki (cilt bileşiminde) Binarni dosyalarında, Yaki zberezen'de, OB'kti hakkında bir rapor, ilinterfate güvenliğinde kontrol edildi ve tacot, derlemelerin ödülünden daha fazlasıdır. oksit kodunun modülü. Bir modülü derlerken derleyici, içe aktarılan tüm modüllerin zaten derlenmiş ve kullanılabilir olduğundan emin olacaktır. Bu durumda modüller doğru şekilde derlendiğinden derleme aşamasında çıktı metinlerine gerek duyulmaz.
  • Modüller ilk ikili dosyalar halinde derlenir ve bağlayıcı tarafından yalnızca derlenmekte olan programın son dosyasının oluşturulması aşamasında dahil edilir. Modüllerin geliştirilmesini işlemek için derleyici, bu modüllerin metnini doğrudan çıktı diline işler ve ardından modülün yalnızca arayüz bölümünü dönüştürür. Kütüphane modülü derlenmiş bir biçimde (yeni çıktı metinleri olmadan) sağlandığı için, modülün çıktı kod dosyası, arayüz bölümünü yerleştiren ikili dosyaya dahil edilir. Bu, derleyicinin modüllerin çıktısını doğru bir şekilde ayrıştırması için yeterlidir ve programın derlenmesi aşamasında bağlayıcı, ikili dosyayı programa dahil eder.

Modülün normal çalışması için aşağıdaki adımları tamamlamanız gerekebilir: değişiklikleri başlatın, gerekli dosyaları açın, belleğe ve diğer kaynaklara bakın. Her şey modülün gövdesinde veya başlatma bölümünde organize edilebilir. Başlatma ile sonuçlanan eylemlerin sonlandırma bölümünden toplanması gerekmektedir.

Pascal dil programı 1968-1971'de kaldırıldı. Niklaus Wirth Zürih Bilişim Enstitüsü'nde (İsviçre). Pochatkova, PASCAL dilinin meta geliştirmeleri – “sistemli bir disiplin olarak programlamanın başlangıcı için” bir araca duyulan ihtiyaç. Bununla birlikte, PASCAL dilinin olağanüstü etkinliği, hesaplama niteliğindeki küçük görevlerden karmaşık yazılım sistemlerinin (derleyiciler, veritabanları, işletim sistemleri vb.) geliştirilmesine kadar çok çeşitli uygulamalarda hızla ortaya çıktı. Bugün Pascal dünyadaki en yaygın ve en popüler programlar grubuna aittir. Dilin sayısal uygulaması tüm makine mimarileri için pratiktir; Pascal dilinin onlarca lehçesi ve problem odaklı uzantıları geliştirilmiştir.

Dilin özellikleri, onun tiplendirilmesi ve yapısal (prosedürel) programlamanın özelliklerinin açıklığıdır. Pascal bu tür ilk dillerden biriydi. M. Wirth'e göre disiplinli bir program benimseyebilir, bu nedenle katı tiplendirme nedeniyle Pascal olası sözdizimsel belirsizlikleri minimuma indirmiştir ve sözdiziminin kendisi sezgisel olarak anlaşılabilir. İşte sizinle ilk tanıştığım zamana.

Tim daha az değil, başlangıçta birkaç eksiklik var: değişken yaşam dizilerinin işlevlerini aktarmanın imkansızlığı, dinamik bellekle normal çalışma işlevlerinin olmaması, sınırlı giriş-çıkış kitaplığı, diğer diller tarafından yazılan işlevleri bağlama özellikleri ayrı derleme özelliklerinin varlığı vb. Aşırı sigorta eksikliklerinin çoğunun ortaya çıkmadığını, ancak programın başlangıcında avantaj haline gelebileceğini belirtmek gerekir. Ayrıca 70'li yılların ortasındaki akademik programım Fortran, Volodyov'un görkemli eksiklikler açısından zengin olduğu ve Pascal'ın ileride önemli bir croque olduğu şey.

Tim, dilin ilerleyişi, Pascal diline dayalı programlama sistemleri geliştiren birçok ticari ve kar amacı gütmeyen kuruluş tarafından harekete geçirildi.

Diğerleri arasında bir şirket görülebilir Borland, Turbo Pascal(daha sonra Borland Pascal) önemli ölçüde genişletildi, birçok kısa dil eklendi ve yeni olanaklar eklendi. Mova zengin oldu ama birdenbire hoşgörüsünü ve gücünü kaybetti.

Dilin gelişiminde ve özgür bir dilin ortaya çıkışında önemli bir nokta Pascal GNU Pascal'ı diğer Pascal'ların pirinçlerini ortadan kaldıran ve insanların "acımasız" programlama yöntemleriyle, özellikle de güçlü olanlarıyla tamamen motive olmalarını sağlayan, diyelim ki, Turbo Paskal, Ve yeni bir programda yazılan programların son derece geniş taşınabilirliğinin sağlanması (10'dan fazla farklı işletim sistemi altında 20'den fazla farklı platform).

Şu anda filmin bu tür versiyonlarının popülaritesi araştırılıyor. TMT Paskal'ı, Ücretsiz Pascalі GNU Pascal'ı. Vikorist'e devam ediyor ve Borland Pascal'ı. Rozvitkom filmi Borland Pascal'ıє Nesne Pascal'ı- Filmin Pascal versiyonu nesne yönelimli programlama özellikleriyle genişletildi. Kalan sürümler Borland Pascal'ıçekirdek programlamanın temelini oluşturur Delfi.