Programlama dillerinin sınıflandırılması. Bilgisayar programlama dilleri: türleri, tanımı, uygulaması ve incelemeleri Programlama farklılıklarının türleri nelerdir

Hızlı navigasyon:
1.31 Listeler dizilerdir. İlk buluşma. 1.30 Sonuç döndüren işlevler - dönüş 1.29 Alt programlar: Python'daki işlevler ve prosedürler 1.28 Veri türü dönüştürme - int() 1.27 Klavye girişi - input() 1.26 Veri türleri ve boyutları 1.25 Önkoşullu döngü - while. Fibonacci sayıları 1.24 Bir dizgenin uzunluğunu ölçme, listeler 1.23 Dizeleri dilimleme - mevcut metinden belirli sayıda karakter çıkarma 1.22 Dizeler ve kontrol karakterleri 1.21 Sistem hataları bir programda hata ayıklarken 1.20 Şube deyimi - if, açıklamalar 1.19 Yazdırma - print(), hızlı veri girişi, yuvarlama, açıklamalar 1.18 Programlama türleri. Kısım 2. Nesne yönelimli programlama 1.17 Programlama türleri. Bölüm 1. Yapılandırılmış programlama. Döngüler 1.16 Karakter bilgilerinin gösterimi - ASCII 1.15 İkili sayıların bölünmesi 1.14 İkili sayılarla matematiksel işlemler 1.13 Bilgiler nasıl saklanır ve kaydedilir. Bitler ve Baytlar 1.12 Tamsayı Çevirisi ondalık sistem 1.11 Tamsayıları onaltılıdan onluya dönüştürme 1.10 Tamsayıyı dönüştürme ikili numara onaltılıya çevirme 1.9 İkili bir tamsayıyı başka bir sayı sistemine dönüştürme 1.8 Sayı sistemleri 1.7 Boole cebri. Boole ifadeleri 1.6 Temel konseptler. Bölüm 3 - Sayılar, ifadeler, işlenenler, işlem işaretleri 1.5 Temel kavramlar. Bölüm 2 - Program, veri 1.4 Temel kavramlar. Bölüm 1 - Problem ve algoritma 1.3 SI geliştirme ortamı 1.2 Programlama dillerinin tarihi 1.1 Giriş

Herhangi bir programlama dili resmi dil, çünkü herhangi bir özel sorunu çözmek için insanlar tarafından icat edildi. Örneğin, matematikçilerin formül yazmak ve teoremlerin ispatlarını yazmak için kullandıkları bir dizi özel karakter ve formül yazmak için kurallar resmi bir dildir.

Programlama dilleri tanımlamayı amaçlayan biçimsel dillerdir.

Resmi diller, açık sözdizimsel kurallara sahip olmaları ile karakterize edilir.
Örneğin, 2x2=4 gösterimi sözdizimsel olarak doğru bir matematiksel gösterimdir, ancak 2=+4 değildir.

Rusça bir cümleyi ya da resmi dilde bir ifadeyi okuduğunuzda, çoğunlukla bilinçsizce yapısını belirlersiniz. Bu işleme ayrıştırma veya ayrıştırma denir. Eşdeğer İngilizce terim parsing (parsing) şeklindedir.

Buradan programlama paradigması denen şeye geliyoruz.

Programlama paradigması program yazma stilini belirleyen belirli bir kurallar dizisidir.

Programlama metodolojisinin özelliklerine göre dağıtılabilecek bu tür birkaç kural vardır:
- yapılandırılmış programlama
- nesne yönelimli programlama
- lojik programlama ve diğer...

Programlama paradigmasının, programlama dili tarafından benzersiz bir şekilde tanımlanmadığına dikkat edilmelidir; Neredeyse hepsi modern Dilleröyle ya da böyle programlama, farklı paradigmaların kullanımına izin verir.

İşte ilginç bir giriş dersi
programlama paradigmaları ile
Rusça:



Çeviren: Kovalev Filipp

Bu, Stanford Üniversitesi Bilgisayar Bilimleri Bölümü'nden Profesör Jerry Kane tarafından verilen bir genel bakış dersidir.
Programlama paradigmaları, C, Assembler, C++, Parallel Programming, Sheme ve Python dahil olmak üzere çeşitli dilleri temsil eder.
Hedefler bu kurs- öğrencilere bu dillerin her birinde nasıl kod yazılacağını öğretmek ve bu dillerin temsil ettiği programlama paradigmalarını anlamak.

Bilgisayar çağının şafağında, makine kodu insanlarla bilgisayarlar arasındaki tek iletişim aracıydı. Programlama dillerinin yaratıcılarının büyük başarısı, bilgisayarın kendisini bu dillerden makine koduna tercüman olarak çalıştırabilmeleriydi.

Mevcut programlama dilleri iki gruba ayrılabilir: prosedürel ve prosedürel olmayan (bkz. Şekil 4.1).

Prosedürel (veya algoritmik) programlar, belirli bir sorunu çözmek için bir reçete sistemidir. Bilgisayarın rolü, bu reçetelerin mekanik olarak yürütülmesine indirgenmiştir.

İşlemsel diller, düşük seviyeli ve yüksek seviyeli diller olarak ikiye ayrılır.

farklı şekiller işlemcilerin farklı komut setleri vardır. Programlama dili belirli bir işlemci türüne odaklanırsa ve özelliklerini dikkate alırsa, buna denir. düşük seviye programlama dili.
Bu, dil işleçlerinin makine koduna yakın olduğu ve belirli işlemci yönergelerine odaklandığı anlamına gelir.

Pirinç. 4.1. Programlama dillerinin genel sınıflandırması

Düşük seviyeli (makine yönelimli) diller, genellikle onaltılık biçimde olmak üzere makine kodlarından programlar oluşturmanıza olanak tanır. Çalışması zordur, ancak çok yetenekli bir programcı tarafından onların yardımıyla oluşturulan programlar daha az bellek alanı kaplar ve daha hızlı çalışır. Bu diller geliştirmeyi kolaylaştırır sistem programları, sürücüler (bilgisayar aygıtlarını yönetmek için programlar), diğer bazı program türleri.

Düşük seviyeli (makineye özgü) dil, montajcı, her bir makine kodu talimatını sayı olarak değil, sembolik kurallarla temsil eder.
anımsatıcılar.

Geliştirici, işlemcinin tüm özelliklerine erişebildiğinden, düşük seviyeli dillerin yardımıyla çok verimli ve kompakt programlar oluşturulur.

Üst düzey programlama dilleri bir kişiye bir bilgisayardan çok daha yakın ve anlaşılır. Bunlarda belirli bilgisayar mimarilerinin özellikleri dikkate alınmaz, bu nedenle düzeyde oluşturulan programlar kaynak kodu bu dilin bir tercümanının yaratıldığı diğer platformlara kolayca taşınabilir. Açık ve güçlü komutlar sayesinde üst düzey dillerde program geliştirmek çok daha kolay ve program oluşturmada çok daha az hata yapılıyor.

Üst düzey algoritmik dillerin temel avantajı, problem çözmek için programları insan algısına en uygun biçimde tanımlama yeteneğidir. Ancak her bilgisayar ailesinin kendine özgü dahili (makine) dili olduğundan ve yalnızca bu dilde yazılmış komutları çalıştırabildiğinden, kaynak programları makine diline çevirmek için özel çevirmen programları kullanılır.

Tüm çevirmenlerin işi iki ilkeden birine dayanır: yorumlama veya derleme.

Tercüme operatör-operatör çevirisini ve ardından kaynak programın çevrilmiş operatörünün yürütülmesini ifade eder. Bu bağlamda, yorumlama yönteminin iki eksikliğine dikkat çekilebilir: birincisi, yorumlama programı, orijinal programın yürütüldüğü tüm süreç boyunca bilgisayarın belleğinde olmalıdır, yani belirli bir miktarda bellek işgal etmelidir; ikincisi, aynı ifadenin çeviri işlemi, bu komutun programda yürütülmesi gerektiği kadar tekrarlanır ve bu da programın performansını keskin bir şekilde azaltır.

Bu eksikliklere rağmen, mütercim-tercümanlar kaynak programların geliştirilmesinde ve hata ayıklamasında uygun oldukları için yeterli dağıtım aldılar.

-de derlemeçeviri ve yürütme süreçleri zaman içinde ayrılır: ilk olarak, kaynak program tamamen makine diline çevrilir (bundan sonra bir çevirmenin varlığı rasgele erişim belleği gereksiz hale gelir) ve ardından derlenen program tekrar tekrar çalıştırılabilir. Bu nedenle, aynı program için derleme yöntemi çevirisi daha iyi performans sağlar. bilgi işlem sistemi gerekli RAM'i azaltırken.

Aynı dilden bir tercümana kıyasla bir derleyici geliştirmenin büyük zorluğu, bir programı derlemenin iki eylem içermesiyle açıklanır: analiz, yani girdinin dil yapılarını oluşturma kurallarına göre kaynak programın doğruluğunu belirleme dil ve sentez - makine kodunda eşdeğer programlar oluşturmak. Derleme yöntemiyle çeviri, çevrilmekte olan programın tekrar tekrar "görüntülenmesini" gerektirir, örn. tercüman-derleyicilerçok geçişlidir: ilk geçiş sırasında, bireysel operatörlerin dil yapılarının sözdiziminin doğruluğunu birbirinden bağımsız olarak kontrol ederler, sonraki geçiş sırasında operatörler arasındaki sözdizimsel ilişkilerin doğruluğunu vb. kontrol ederler.

Derleme yöntemi ile çeviri sonucunda elde edilen programa denir. nesne modülü, makine kodundaki eşdeğer programdır, ancak belirli RAM adreslerine "bağlı" değildir. Bu nedenle, çalıştırmadan önce nesne modülü işlenmelidir. özel program işletim sistemi(bağlantı düzenleyici - Bağlantı) ve dönüştürüldü önyükleme modülü.

Yukarıda tartışılan çevirmen-tercümanlar ve çevirmen-derleyicilerin yanı sıra, uygulamada çevirmenler de kullanılmaktadır. derleyici tercümanlar, her iki çeviri ilkesinin avantajlarını birleştiren: program geliştirme ve hata ayıklama aşamasında çevirmen yorumlayıcı modunda çalışır ve hata ayıklama işlemi tamamlandıktan sonra kaynak program nesne modülüne yeniden çevrilir (yani derleme yoluyla) yöntem). Bu, programları derleme ve hata ayıklama sürecini önemli ölçüde basitleştirmeyi ve hızlandırmayı ve daha sonra bir nesne modülünün elde edilmesi nedeniyle programın daha verimli yürütülmesini sağlamayı mümkün kılar.

Klasik prosedürel programlama, programcının sorunun nasıl çözüleceğini, yani algoritmanın formülasyonunu ve özel gösterimini ayrıntılı olarak açıklamasını gerektirir. Bu durumda, sonucun beklenen özellikleri genellikle belirtilmez. Bu grupların dillerinin temel kavramları operatör ve veridir.
Prosedürel yaklaşımda, operatörler gruplar halinde birleştirilir - prosedürler. Yapısal programlama bir bütün olarak bu yönün ötesine geçmez, yalnızca ek olarak bazı yararlı hileleri düzeltir.
programlama teknolojileri.

Programlamada temelde farklı bir yön, prosedürel olmayan programlamanın metodolojileri (bazen "paradigmalar" olarak adlandırılır) ile ilişkilidir. Bunlar, nesne yönelimli ve bildirime dayalı programlamayı içerir. Nesne yönelimli bir dil, birçok bağımsız nesne biçiminde bir ortam oluşturur. Her nesne ayrı bir bilgisayar gibi davranır, işleyişlerinin iç mekanizmalarına girmeden sorunları "kara kutular" olarak çözmek için kullanılabilirler. Profesyoneller arasında popüler olan nesne programlama dillerinden öncelikle C++ olarak adlandırılmalıdır, daha geniş bir programcı yelpazesi için Delphi ve Visual Basic gibi ortamlar tercih edilmektedir.

Bildirimsel bir dil kullanırken, programcı başlangıç bilgi yapıları, aralarındaki ilişki ve sonucun hangi özelliklere sahip olması gerektiği. Aynı zamanda, programcı onu elde etme prosedürünü ("algoritma") oluşturmaz (en azından ideal olarak). Bu dillerde "operatör" ("komut") kavramı yoktur. Bildirim dilleri iki aileye ayrılabilir - mantıksal (tipik olarak Prolog) ve işlevsel (Lisp).

En ünlü programlama dillerini karakterize edelim.

1.Fortran(FORMül TRANslating sistemi - formül çeviri sistemi); matematiksel yönelim problemlerini çözmede en eski ve hala aktif olarak kullanılan dil. Matematiksel ve mühendislik problemlerinin bilgisayar programlaması için klasik bir dildir.

2.TEMEL(Yeni Başlayanlar İçin Çok Amaçlı Sembolik Talimat Kodu - yeni başlayanlar için evrensel bir sembolik talimat kodu); birçok eksikliğe ve yetersiz uyumlu sürümlerin bolluğuna rağmen, kullanıcı sayısı açısından en popüler olanıdır. Basit programlar yazarken yaygın olarak kullanılır. .

3.Algol(ALGOritmik Dil - algoritmik dil); teoride önemli bir rol oynamıştır, ancak pratik programlamaşimdi neredeyse hiç kullanılmadı.

4.PL/1(PL / 1 Programlama Dili - ilk programlama dili); çok amaçlı dil; şimdi neredeyse hiç kullanılmadı.

5.Pascal(Pascal - bilim adamı Blaise Pascal'ın adını almıştır); hem programlama çalışmalarında hem de profesyoneller arasında son derece popüler. 70'lerin başında İsviçreli bilim adamı Niklaus Wirth tarafından yaratıldı. Pascal başlangıçta bir eğitim dili olarak geliştirildi ve gerçekten de şimdi okullarda ve üniversitelerde programlama öğretmek için ana dillerden biri. Bununla birlikte, toplamda nitelikleri o kadar yüksek çıktı ki, profesyonel programcılar da onu kullanmaya istekli. Turbo-Pascal sistemini geliştiren bir Fransız olan Philip Kahn, finansal da dahil olmak üzere daha az etkileyici başarı elde etmedi. Fikrinin özü, program işlemenin ardışık aşamalarını - derleme, bağlantıları düzenleme, hata ayıklama ve hataları teşhis etme - tek bir arayüzde birleştirmekti. Turbo Pascal'ın sürümleri neredeyse tüm eğitim kurumlarını, programlama merkezlerini ve özel firmaları sular altında bıraktı. Pascal dili temel alınarak birkaç daha güçlü dil (Modula, Ada, Delphi) oluşturulmuştur.

6.COBOL(COMmon Business Oriented Language - genel iş odaklı bir dil); büyük ölçüde kullanılmaz hale gelmiştir. Yönetim alanlarında toplu veri işleme için ana dil olarak tasarlandı.
ve iş.

7.ADA; 1975'ten beri Pentagon'un Evrensel Dil Tasarım Yarışması'nın kazanan dilidir (Mayıs 1979). Geliştiriciler, Jean Ihbia liderliğindeki bir grup bilim insanıdır. Kazanan dil, Augusta Ada Lovelace'tan sonra ADA olarak vaftiz edildi. ADA dili, dilin doğrudan halefidir.
Pascal. Bu dil, büyük dillerin oluşturulması ve uzun vadeli (çok yıllı) bakımı için tasarlanmıştır. yazılım sistemleri, paralel işlemeye, gerçek zamanlı süreç kontrolüne ve daha basit dillerle başarılması zor veya imkansız olan çok daha fazlasına izin verir.

8.Xi(C - "si"); sistem yazılımının oluşturulmasında yaygın olarak kullanılmaktadır. Modern programlama üzerinde büyük bir iz bırakan (ilk sürüm - 1972), yazılım sistemleri (işletim sistemleri dahil) geliştiricileri arasında çok popülerdir. C, hem üst düzey bir dilin hem de makine yönelimli bir dilin özelliklerini birleştirerek, BASIC ve Pascal gibi dillerin sağlamadığı bir şekilde programcının tüm makine kaynaklarına erişmesini sağlar.

9.C++(C++); 1980 yılında Bjarne Stroustrup tarafından oluşturulan C dilinin nesne yönelimli bir uzantısı. Programcı üretkenliğini önemli ölçüde artıran birçok güçlü yeni özellik, C dilinden miras alınan belirli bir alt düzey doğa üzerine eklenmiştir.

10.Delfi(Delfi); nesne yönelimli "görsel" programlama dili; şu sıralar çok popüler. Borland uzmanları tarafından Pascal dili temel alınarak oluşturulan Delphi dili, C ve C++ dillerinin gücüne ve esnekliğine sahip olup, veritabanları ile etkileşim sağlayan uygulamalar geliştirirken arayüzün rahatlığı ve basitliği açısından onları geride bırakmaktadır. çerçevesinde çeşitli çalışmalar için destek kurumsal ağlar ve internet.

11.java(Java); etkileşimli web sayfaları oluşturmak için son derece etkili, platformdan bağımsız nesne yönelimli programlama dili. Bu dil Sun tarafından 90'ların başında C++ temel alınarak oluşturuldu. Tüm alt düzey özellikleri ortadan kaldırarak C++ tabanlı uygulamaların geliştirilmesini basitleştirmek için tasarlanmıştır.

12.Lisp(LISP) işlevsel bir programlama dilidir. Bir liste biçimindeki veri yapısına odaklanır ve büyük miktarda metin bilgisinin verimli bir şekilde işlenmesini düzenlemenizi sağlar.

13.önsöz(LOGic'te programlama - mantık programlama). Dilin temel amacı gelişmedir. entelektüel programlar ve sistemler. Prolog, gerçeklere ve kurallara (yapay zeka sistemlerinin unsurlarından biri) dayalı bilgi tabanlarıyla çalışmak için özel olarak tasarlanmış bir programlama dilidir. Dil, bazı sonuçların veya sonuçların doğru olduğunun varsayıldığı ve ardından bu varsayımların gerçekleri ve çıkarım kurallarını içeren bir bilgi tabanında kontrol edildiği, tersine bir akıl yürütme zinciri gerçekleştirmek için bir geri izleme mekanizması uygular.
Tahmin onaylanmazsa geri dönüş yapılır ve yeni bir tahmin yapılır. Dil, yüklem hesabı teorisinin matematiksel bir modeline dayanmaktadır.

Web için programlama dilleri:

1. HTML. Evrak işleri için iyi bilinen bir dil. Çok basittir ve metni biçimlendirmek, resim eklemek, yazı tiplerini ve renkleri ayarlamak, bağlantıları ve tabloları düzenlemek için temel komutlar içerir.

2. PERL. Büyük boyutlu malzemelerin verimli bir şekilde işlenmesi için bir araç olarak tasarlandı. metin dosyaları, metin raporu oluşturma ve görev yönetimi.
Perl, C gibi dillerden çok daha güçlüdür. Dizeler, diziler, işlemci kontrolü ve sistem bilgileriyle çalışmak için sık kullanılan birçok işlevi tanıttı.

3. tcl/tk. Bu dil, rutin işlemleri otomatikleştirmeye odaklanmıştır ve güçlü komutlardan oluşur. Sistemden bağımsızdır ve aynı zamanda grafik arayüzlü programlar oluşturmanıza olanak sağlar.

4. VRML.İnternette sanal 3B arayüzleri düzenlemek için tasarlanmıştır. Çeşitli üç boyutlu sahneleri, aydınlatma ve gölgeleri, dokuları metin biçiminde tanımlamanıza olanak tanır.

Bir programlama dilinin seçimi birçok faktöre bağlıdır: amaç, kaynak program yazmanın kolaylığı, ortaya çıkan nesne programlarının verimliliği, vb. Bir bilgisayar tarafından çözülen görevlerin çeşitliliği, programlama dillerinin çeşitliliğini belirler.

Kontrol soruları

1. Programlama sistemleri nelerdir ve bunlar hangi program sınıfına aittir?

2. Programlama sistemlerine neler dahildir?

3. İlk programlar hangi programlama dilinde oluşturuldu?

4. Usul dilleri hangi dillere ayrılır?

5. Düşük seviyeli dilleri tanımlayın.

6. Hangi dil düşük seviyeli bir dildir?

7. Düşük seviyeli dillerin avantajları.

8. Üst düzey dilleri tanımlar.

9. Üst düzey dillerin avantajları.

10. Üst düzey dillere örnekler verin.

11. Çevirmenler ne içindir?

12. Derleyici ile tercüman arasındaki fark nedir?

13. Tercüme eksiklikleri (bir tür çevirmen olarak).

14. Program derleme süreci nedir?

15. Derleme sırasında hangi işlemler gerçekleştirilir?

16. Yük modülü ile nesne modülü arasındaki fark nedir?

17. Prosedürel programlama ile prosedürel olmayan programlama arasındaki fark nedir?

18. Ne tür programlamalar prosedürel değildir?
programlama?

19. Bildirim dillerinin özelliği.

20. Programlama dillerini kısaca tanımlayın: Fortran, BASIC, Pascal, Cobol.

21. Programlama dillerini kısaca tanımlar: Ada, C, C++, Delphi, Java.

22. Nesne yönelimli dillere örnekler verin.

23. Lisp hangi dil sınıfına aittir?

24. Prolog dili hangi dil sınıfına aittir?


Programlama dillerinin nesilleri

Programlama ihtiyacı, programlanabilir bilgisayarlardan önce bile ortaya çıktı. Örneğin 18. yüzyıldan itibaren tahta kalaslarla programlanmış, deliklerin doğru yerlere açıldığı tezgahların olduğu bilinmektedir.

Programlamanın gelişimi, 1945'te yayınlanan ve programın kendisinin verilerle birlikte bellekte depolandığı bir bilgisayarı tanımladığı John Von Neumann fikriyle kolaylaştırıldı.

Birinci nesil programlama dili makine kodudur. Makine kodu, bir bilgisayarın (işlemcinin) yürütebileceği komutlardan (ve bu komutlara ait verilerden) oluşur. Makine kodunda programlama yaparken, programcının programını işlemcinin anlaması ve yürütmesi için ikili kodda yazması gerekiyordu. Özünde, böyle bir programlama iyi bir donanım bilgisi ve anlayışı gerektirir, çünkü programlama sürecinde işlemcinin neler yapabileceğini, I / O-Giriş-Çıkış cihazlarının nerede bulunduğunu ve ayrıca nasıl iletişim kuracağını bilmek gerekir. onlarla ve belirli bir operasyon için ne kadar zaman harcanacağı. Böylece, makine kodu, karşılık gelen programın çalışacağı donanıma çok sıkı bir şekilde bağlıdır. Bugüne kadar, makine kodu bilgisayarlardan kaybolmadı, düşük seviyedeki (donanım seviyesi) tüm eylemler hala makine kodunda, yani. Program hangi programlama dilinde yazılmış olursa olsun, sonunda anlaşılır bir hale dönüştürülecektir. donanım makine kodu.

Assembler dilleri, ikinci nesil diller olarak kabul edilir. Makine kodu söz konusu olduğunda, tüm programlama ikili kodda gerçekleştirildi ve bununla bağlantılı olarak, okuma ve hata ayıklama çok zaman alıyordu. Assembly dilinde programlama yapılırken yönergeler kişiye anlaşılır bir biçimde sunulur. Programlamanın kendisi, makine kodunda programlamaya çok benzer, çünkü talimatlar makine kodundakiyle aynıdır (yalnızca farklı bir biçimde - sözcükler biçiminde). Assembly dilinde yazılmış bir program aşağıdakine benzer:

MOV AL, 19

EKLE, 4

ÇIKIŞ 2

Bu kod parçacığı, AL kaydına 19 değerini atar (genellikle değerler onaltılık sistemde sayılarla temsil edilir), AL kaydının değerine 4 sayısını ekler ve ardından 2 sayısını çıkışa gönderir. Yazılı program birleştiriciden makine koduna çevrilir ve bundan sonra işlemci yürütmeye başlayabilir.

Montaj dilleri ve makine kodu, düşük seviyeli diller olarak kabul edilir.

Üçüncü nesil programlama dilleri zaten üst düzey diller olarak adlandırılıyor. Bu tür programlama dilleri donanımla pek ilgili değildir. Bu, programcının artık donanımın yapısını ve özelliklerini çok kesin olarak bilmek zorunda olmadığı, ancak donanımdan nispeten bağımsız olarak bilebileceği anlamına gelir ve ardından bu program, bazı farklı araçlar kullanılarak donanım tarafından anlaşılabilir bir forma dönüştürülür. Daha spesifik olarak, bunun nasıl yapıldığı daha sonra açıklanacaktır.

Üçüncü nesil diller, bilinen ve kullanılan programlama dillerinin çoğunu içerir, örneğin:

FORTRAN (The IBM Mathematical FORmula TRANslating System), 1950'lerde matematiksel bilgi işlem ve bilimsel amaçlar için geliştirilmiş bir programlama dilidir.

COBOL (Common Business Oriented Language) - 1959'da oluşturulmuş, esas olarak iş ihtiyaçlarını karşılayan programlar yazmak için oluşturulmuş, nesne yönelimli bir programlama dili.

BASIC (Yeni Başlayanlar İçin Çok Amaçlı Sembolik Talimat Kodu) - 1963'te geliştirilen ve orijinal olarak mühendislerin bilgisayarlarda çeşitli simülasyonlar yapabilmesi için oluşturulmuş bir dil.

Pascal - 1970'lerde programlama öğretmek için oluşturulmuş bir programlama dili.

C - adı, bu dilin esas olarak B adlı bir dile dayanmasından kaynaklanmaktadır. İşletim sistemlerini yazmak için yaratılmıştır (birçok UNIX uyumlu işletim sistemi bu dilde yazılmıştır), uzun zamandır en popüler programlama dillerinden biri olmuştur.

C++, nesne yönelimli C'dir.

Java, C++ temel alınarak geliştirilmiş bir programlama dilidir.

Visual Basic, Delphi, Python, C# üçüncü nesil dillerdir. Birçok üçüncü nesil programlama dili, bazı dördüncü ve beşinci nesil dillerden daha gençtir (daha yeni).

Programlama dilleri dördüncü jenerasyonöğrenmelerini ve kullanmalarını kolaylaştırmak için tasarlanmıştır. Bu diller, tek bir uygulamaya odaklanan prosedürel olmayan olma eğilimindedir. Dördüncü nesil bir programlama diline örnek olarak SQL (Structured Query Language) verilebilir. Daha çok "ne yapılacağını" ve daha az "nasıl yapılacağını" söyler. Beşinci nesil diller, yapay zeka sistemlerinin geliştirilmesi ve bu konuyla ilgili problemlerin çözümü için oluşturulmuştur.

Temel programlama dilleri türleri.

Nesil programlama dillerinin aksine, temel türler bir dilin nasıl programlanabileceğini açıklar. Ana temel türler şunları içerir: prosedürel, işlevsel ve nesne yönelimli programlama dilleri.

Prosedürel programlama dillerinde, programlama dili eylemleri ve gerçekleştirilme sırasını tanımlar ve bu eylemler gruplara (alt programlara) ayrılır. Prosedürler, sırayla, yeniden kullanılabilen kod yapıları oluşturur. İşlevsel programlama dillerinde, tüm çözüm işlevler kullanılarak tanımlanır. Nesne yönelimli programlama dillerinde problem, sınıflarda (Eng. Class) açıklanan fonksiyonlar ve veri yapıları kullanılarak çözülür. Her sınıftan, bir dizi özellik ve / veya yönteme sahip olacak bir nesne oluşturabilirsiniz.

Özellikler, bir nesnenin içerebileceği ve nesnenin davranışını etkileyebilecek değerlerdir. Örneğin, "console window" sınıfını temel alarak, kullanıcının tek bir konsol penceresi olarak görebileceği "console1" nesnesini oluşturabilirsiniz. Bu nesnenin bazı özellikleri vardır (gösterilen, gizlenen, genişlik, yükseklik, konsol penceresindeki metin rengi, arka plan rengi vb.), bu özellikleri değiştirerek, bu özel durumda değiştirebilirsiniz. dış görünüş nesne.

Aynı örnekte, nesnenin de bazı yöntemleri olabilir, örneğin, karşılık gelen yönteme atıfta bulunarak, konsol penceresine bir miktar metin yazabilir, kullanıcı tarafından bir değişkene girilen metni okuyabilir, vb.

İkinci örnek, "metin değişkeni" sınıfıdır, bu sınıfa dayalı olarak "SimpleText" nesnesini oluştururken, ana özelliği saklanan metin değeri olan bir metin değişkeni yaratırız, ancak aslında bu nesnenin daha fazla özelliği vardır (örneğin , saklanan metin değerinin uzunluğu). Ayrıca, metin değişkeninin belirli bir yöntem kümesi olmalıdır (saklanan değerin karakterlerini küçük harfe, büyük harfe değiştirin, bazı karakterleri kaldırın, vb.).

Bu nedenle, sınıfları tanımlayarak ve nesneleri manipüle ederek çok karmaşık programlar oluşturmak ve çeşitli eylemler gerçekleştirmek mümkündür.

Yorumlanmış ve Derlenmiş Diller

Bir bilgisayarın yüksek seviyeli bir dilde yazılmış bir programı yürütmeden önce, bilgisayarın anlayabileceği bir dile "çevrilmesi" gerekir, örn. makine kodu. Bu çeviri işlemine çeviri, çevirmen programına ise çevirmen adı verilir. Çevirmenler iki sınıfa ayrılır: derleyiciler ve yorumlayıcılar.

Derleme, makine kodundaki bir programın (derleyici olarak adlandırılır) bir programlama dilinde yazılmış başka bir programı makine koduna dönüştürmesidir. Bundan sonra, programın ortaya çıkan makine kodu yürütülür. Derlenmiş dillerin örnekleri C, Fortran, Pascal'dır.

Yorum, makine kodundaki programın (yorumlayıcı) program dosyasını dahili belleğe yazması ve satır satır yürütmeye başlamasıdır. Bir örnek, eski BASIC dilidir.

Programın yorumlanması, derlenen kodun yürütülmesinden yaklaşık 10-200 kat daha yavaştır. Tersine, yorumlanmış bir programda hata ayıklama (bir programdaki hataları kaldırmak) genellikle çevrilmiş bir programdan daha kolaydır. Bazı uygun durumlarda ve mevcut araçlarla bu farklar çok daha küçük olabilir. iyi örnek Java'ya ara düzeyde optimize edilmiş ve derlenmiş kodla hizmet verir; bu kod çalışma zamanında belirli bir donanıma uyması için bir Just-in-Time derleyicisi tarafından çevrilir.

Prensip olarak, herhangi bir dilde yazılmış bir program hem yorumlanabilir hem de derlenebilir.

1. Giriş

Bilgisayarların insan faaliyetinin tüm alanlarına dahil edilmesi, bilgisayar teknolojisini kullanma becerilerinde ustalaşmak için çeşitli profillerden uzmanları gerektirir. İlk kurslardan itibaren bilgisayar kullanımı ve en basit sayısal yöntemlerle tanışan üniversite öğrencilerinin eğitim düzeyi artıyor, kurslarda ve mezuniyet projelerinde bilgisayar teknolojisi kullanımının norm haline gelmesinden bahsetmiyorum bile. üniversitelerin büyük çoğunluğunda.

Bilgisayar teknolojisi artık sadece mühendislik hesaplamalarında ve ekonomide değil, aynı zamanda tıp, dilbilim ve psikoloji gibi geleneksel olarak matematik dışı uzmanlık alanlarında da kullanılmaktadır. Bu konuda bilgisayar kullanımının yaygınlaştığı söylenebilir. Geniş bir uzmanlar kategorisi ortaya çıktı - endüstrilerinde bilgisayar kullanımı hakkında bilgiye ihtiyaç duyan bilgisayar kullanıcıları - mevcut bilgisayarlarla çalışma becerileri yazılım, belirli bir sorunu çözmek için uyarlanmış kendi yazılımınızı oluşturmanın yanı sıra. Ve burada programlama dillerinin açıklamaları kullanıcının yardımına gelir.

2. Programlama dili nedir

Programlama dili- icracı için uygun bir biçimde (örneğin, bir bilgisayar) algoritmaları tanımlamak için tasarlanmış resmi bir işaret sistemi. Bir programlama dili, bir bilgisayar programının derlenmesinde kullanılan bir dizi sözcüksel, sözdizimsel ve anlamsal kuralı tanımlar. Programcının, bilgisayarın tam olarak hangi olaylara yanıt vereceğini, verilerin nasıl depolanıp iletileceğini ve bunlar üzerinde çeşitli koşullar altında tam olarak hangi eylemlerin gerçekleştirilmesi gerektiğini belirlemesine olanak tanır.

İlk programlanabilir makinelerin yaratılmasından bu yana, insanlık iki buçuk binden fazla programlama dili geliştirdi. Her yıl sayıları yenileriyle doldurulur. Bazı diller yalnızca az sayıda kendi geliştiricisi tarafından kullanılırken, diğerleri milyonlarca insan tarafından bilinir hale gelir. Profesyonel programcılar bazen çalışmalarında bir düzineden fazla farklı programlama dili kullanırlar.

Dillerin yaratıcıları kavramı farklı yorumluyor. Programlama dili. Çoğu geliştirici tarafından tanınan ortak yerler arasında şunlar yer alır:

· İşlev: programlama dili, belirli bir bilgi işlem sürecinin yürütülmesi ve bireysel cihazların kontrolünün organizasyonu için bir bilgisayara talimatlar iletmek için kullanılan bilgisayar programlarını yazmak için tasarlanmıştır.

· Görev: Bir programlama dili, komutları ve verileri bir kişiden bir bilgisayara aktarmak için tasarlanırken, doğal diller yalnızca insanlar arasındaki iletişim için kullanılmasıyla doğal dillerden farklıdır. Prensip olarak, "programlama dilleri" tanımı genelleştirilebilir - bu, komutları, emirleri iletmenin bir yoludur, açık bir eylem kılavuzudur; insan dilleri de bilgi alışverişine hizmet ederken.

· Uygulamak: Bir programlama dili, veri yapılarını tanımlamak ve işlemek ve hesaplama sürecini kontrol etmek için özel yapılar kullanabilir.

3. Bilgisayarda problem çözme aşamaları.

VT'nin en etkili uygulaması, bilimsel araştırmalarda ve mühendislik hesaplamalarında emek yoğun hesaplamalar yaparken bulundu. Bilgisayarda bir problem çözerken, asıl rol yine bir kişiye aittir. Makine sadece geliştirilen programa göre görevlerini yerine getirmektedir. Problem çözme süreci aşağıda listelenen adımlara bölünürse, insan ve makinenin rolünü anlamak kolaydır.

Sorunun formülasyonu. Bu aşama, sorunun anlamlı (fiziksel) formülasyonundan ve nihai çözümlerin belirlenmesinden oluşur.

Bina matematiksel model. Model, fiziksel sürecin temel yasalarını doğru (yeterince) tanımlamalıdır. Mevcut modellerden bir matematiksel model oluşturmak veya seçmek, problemin derinlemesine anlaşılmasını ve matematiğin ilgili bölümleri hakkında bilgi sahibi olmayı gerektirir.

Dünya Kupası gelişimi. Bilgisayar yalnızca en basit işlemleri gerçekleştirebildiğinden, matematiksel bir formülasyonda bile problemin ifadesini "anlamaz". Bunu çözmek için, sorunu bir hesaplama algoritmasına indirgemeyi mümkün kılan sayısal bir yöntem bulunmalıdır. Her özel durumda, önceden geliştirilmiş standart çözümlerden uygun çözümü seçmek gerekir.

Algoritma geliştirme. Bir problemi çözme süreci (hesaplama süreci), temel aritmetik ve mantıksal işlemlerin bir dizisi olarak yazılır ve sonuç ve sorunu çözmek için algoritmayı çağırdı.

Programlama. Sorunu çözmek için algoritma, makine tarafından anlaşılabilen bir dilde, kesin olarak tanımlanmış bir işlem dizisi - bir program şeklinde yazılmıştır. İşlem genellikle bazı ara dillerin yardımıyla yapılır ve çevirisi makinenin kendisi ve sistemi tarafından gerçekleştirilir.

Program hata ayıklama. Derlenen program çeşitli türlerde hatalar, yanlışlıklar ve eksiklikler içerir. Hata ayıklama, program kontrolünü, hataların teşhisini (içeriğin aranması ve belirlenmesi) ve bunların ortadan kaldırılmasını içerir. Program, sonuçların güvenilirliğinden emin olmak için kontrol (test) görevlerini çözerek test edilir.

Hesaplamalar yapmak. Bu aşamada hesaplamalar için başlangıç ​​verileri hazırlanır ve hata giderilmiş programa göre hesaplama yapılır. aynı zamanda, sonuçların işlenmesindeki el emeğini azaltmak için, sonuçları metin biçiminde vermenin uygun biçimleri ve grafik bilgi, insan tarafından okunabilir bir biçimde.

Sonuçların analizi. Hesaplama sonuçları dikkatlice analiz edilir ve bilimsel ve teknik belgeler düzenlenir.

4. Programlama dilleri ne içindir?

Bilgisayar işlemi süreci, bir programın yürütülmesinden, yani bir dizi tamamlanmış programdan oluşur. belirli komutlarçok özel bir sırayla. Sıfırlardan ve birlerden oluşan komutun makine biçimi, ne tür bir eylemin gerçekleştirilmesi gerektiğini gösterir. İşlemci. Bu, bilgisayara gerçekleştirmesi gereken eylemlerin sırasını söylemek için karşılık gelen komutlar için ikili kod dizisini ayarlamanız gerektiği anlamına gelir. Makine kodu programları binlerce talimattan oluşur. Bu tür programları yazmak zor ve sıkıcı bir iştir. Programcı, yürütülmesinde kullanılan veri adreslerinin ikili kodlarının yanı sıra, her programın ikili kodunun sıfır ve bir kombinasyonunu hatırlamalıdır. Doğal insan diline daha yakın bir dilde program yazmak ve bu programı makine kodlarına çevirme görevini bilgisayara emanet etmek çok daha kolaydır. Böylece, özellikle program yazmak için tasarlanmış diller ortaya çıktı - Programlama dilleri.

Birçok farklı programlama dili vardır. Aslında, çoğu sorunu çözmek için bunlardan herhangi birini kullanabilirsiniz. Deneyimli programcılar, her bir belirli sorunu çözmek için hangi dilin kullanılmasının daha iyi olduğunu bilirler, çünkü her dilin kendi yetenekleri, belirli görev türlerine yönelimi, sorunları çözmede kullanılan kavramları ve nesneleri tanımlamanın kendi yolu vardır.

Tüm programlama dilleri seti iki gruba ayrılabilir: düşük seviyeli diller Ve üst düzey diller.

Düşük seviyeli diller, montaj dillerini içerir (İngilizce'den toassemble - birleştirmek, birleştirmek için). Assembly dili, anlaşılması kolay ve hatırlaması kolay talimatlar için semboller kullanır. Bir dizi ikili komut kodu yerine, sembolik tanımları yazılır ve komut yürütülürken kullanılan verilerin ikili adresleri yerine, bu verilerin programcı tarafından seçilen sembolik adları yazılır. Assembly dili bazen mnemocode veya autocode olarak adlandırılır.

Çoğu programcı, program yazmak için üst düzey diller kullanır. Sıradan bir insan dili gibi, böyle bir dilin kendi alfabesi vardır - dilde kullanılan bir dizi sembol. Bu semboller, dilin sözde anahtar kelimelerini oluşturur. Anahtar kelimelerin her biri işlevini yerine getirir, tıpkı alışık olduğumuz dilde alfabenin harflerinden oluşan kelimelerimiz olduğu gibi. verilen dil, konuşmanın farklı bölümlerinin işlevlerini yerine getirebilir. anahtar kelimeler dilin belirli sözdizimsel kurallarına göre birbirleriyle cümleler halinde bağlanırlar. Her cümle, bilgisayarın gerçekleştirmesi gereken bazı eylem sırasını tanımlar.

Üst düzey bir dil, kişi ile bilgisayar arasında aracı görevi görerek, kişinin bilgisayarla kişi için daha tanıdık bir şekilde iletişim kurmasını sağlar. Genellikle böyle bir dil, bir sorunu çözmek için doğru yöntemi seçmeye yardımcı olur.

Yüksek seviyeli bir dilde program yazmadan önce, programcının yazması gerekir. algoritma problem çözme, yani bu problemi çözmek için tamamlanması gereken adım adım eylem planı. Bu nedenle, bir algoritmanın ön derlemesini gerektiren dillere genellikle denir algoritmik diller

Daha dün, bilgisayar bilimi Sovyetler Birliği'nde sahte bilim olarak görülüyordu. Ve bugün, bazı hükümetler Rus bilgisayar korsanlarının saldırılarından şikayet ediyor.

Ve Rusya'da şu ana kadar az sayıda yüksek teknolojili cihaz ve cihaz üretiliyor olsa da, bizde de yeterince akıllı programcı var.

Bugün bilgisayar dilleri, bunların sınıflandırılması, özü, olasılıkları ve gelecekteki kullanım beklentileri hakkında konuşacağız.

Teori ile başlayalım. Her şeyden önce, kavramı ele alalım.

Bilgisayar dilleri nelerdir?

Bu, bir kişinin bilgisayarla "iletişimi" için oluşturulmuş bir işaretler, semboller sistemidir. Ne de olsa, öylece alıp bilgisayara gidip ona bir şeyler açıklamaya başlayamayız. Bunun için bilgisayar dillerini oluşturan özel kelime-kodlar ve kelime dağarcığı vardır. Ve zaten bilgisayara anlayacağı bir biçimde ulaşıyorlar.

Bugüne kadar, bir bilgisayar ile insan iletişimi için 8 binden fazla farklı dil vardır. Elbette hepsini bilemezsiniz. Birisi kendine bir dil yaratır ve biri bunu ticari olarak yapar.

Ancak iyi bir programcı, en azından birkaç temel olanı mükemmel bir şekilde bilmelidir.

En popüler programlama dilleri nelerdir?

Bilgisayar teknolojisi dünyası sürekli gelişiyor: yeni gelişmeler ortaya çıkıyor, geçmiş akla geliyor. Bununla birlikte bilgisayar programlama dilleri de karşımıza çıkıyor veya sıralanıyor. Küresel olarak kullanılan en popüler olanları şunları içerir:

Tabii ki, aslında daha da fazla dil var, ancak tüm bilgisayar uygulamalarının %90'ından fazlasının yazıldığı en temel dilleri seçtik. Sonra, her birine daha yakından bakalım.

Prosedürel C/C++

C ve C++ dilleri iki kardeş olarak adlandırılabilir. Bunların tamamen farklı iki programlama dili olduğu iddiaları var ki bu doğru değil. C++, program yazmayı kolaylaştıran ve aynı sözdizimini koruyan, önceki dilin biraz geliştirilmiş halidir.

C, geçen yüzyılın yetmişlerinden beri geliştirildi, seksenlerde C ++ yaratmaya başladılar. Bugüne kadar, ikincisi en popüler olanlardan biri olarak adlandırılabilir. O kadar çok yönlüdür ki bir işletim sistemi, aygıt sürücüleri, oyunlar ve daha fazlasını oluşturmak için kullanabilirsiniz.

Bu dilin avantajları ve dezavantajları hakkında konuşurken, kesin sonuçlar çıkarılamaz. Destekçileri var ve acımasız eleştirmenler var. Anlaşmazlıkların temeli, bu programlama dilinin kendine ait hiçbir şeye sahip olmamasıdır.

Yaratıcıları, tabiri caizse, birkaç programlama dilinin işlevlerini ve yeteneklerini bir araya getirdi. Sonuç, karmaşık ve büyük ölçekli bir programlama aracıdır. Ancak, bireysel işlevlere göre parçalara ayırırsanız, o zaman oldukça uzmanlaşmış dillerden daha düşüktür.

Bağımsız ve güvenli Java

Bu İngilizce bilgisayar dili Sun Microsystems tarafından geliştirilmiştir. Yazılan program özel bir bayt koduna çevrildiği için işletim sisteminin türü veya bilgisayar mimarisi ne olursa olsun çalışabilmektedir.

O yaptı java dili En popüler. Kesinlikle hepsinde bulunabilir Ev aletleri, ATM'ler, şehir makineleri ve bilgisayar teknolojisi ile ilgili hemen hemen her şey. Akıllı telefonlar ve telefonlar için en popüler uygulamaların yazıldığı yer Java'dır.

Ayrıca, bu programlama dili oldukça yüksek bir güvenlik seviyesine sahiptir. Programın yetkisi dahilindeki eylemleri yürütmesi, cihazlara komutları ilettiği tarafından kontrol edilir. Bu nedenle, başka bir görevi gerçekleştirmeye çalıştığınızda program çalışmayı hemen durdurur.

Dilin basitliğinden bahsedersek, benzer işlemlerin C ++ 'dan 1.2-2 kat daha uzun yazıldığını gösteren çalışmaları belirtmekte fayda var. Ayrıca, komutları yürütmek için birkaç kat daha fazla kaynak gerekir. Ancak üreticinin ekibi, bu programlama dilinin tüm eksikliklerini en aza indiren birçok güncellemeyi sürekli olarak yayınlamaktadır.

İnterneti fetheden PHP

Kendi web sitenizi mi oluşturmak istiyorsunuz yoksa web programlama mı yapmak istiyorsunuz? mükemmel PHP dili yaratma yeteneğine sahip olan dinamik sayfalar. Web siteleri oluştururken ve web uygulamaları yazarken belki de en popüler olanıdır.

Bu programlama dili açık kaynak geliştiriciler tarafından yaratıldığı için mükemmelliğe getirildi ve çılgın bir popülerlik kazandı. PHP, MySQL'den Access'e kadar çeşitli veritabanlarıyla kolayca etkileşime girer.

Facebook veya Wikipedia gibi internetteki en popüler web siteleri bu dilde yazılmıştır.

Üzerine yazmak yeterince kolaydır. Hatta dünyadaki PHP kodu üzerinde çalışan programcıların %60'ından fazlasının oldukça sınırlı bilgiye sahip olduğuna dair bir istatistik bile var. temel Seviye) İngilizce dili. Bu durumda bilgisayar okuryazarlığı, yalnızca gerekli işlev ve prosedürlerin bilgisi ile sınırlıdır.

Dil eleştirisini görmezden gelmek mümkün değil. 2015 yılında en popüler diller sıralamasında PHP 6. sırada yer almasına rağmen, buna karşı sık sık memnuniyetsizlik dile getiriliyor.

Her şeyden önce, bu dil bir grup programcı tarafından değil, birkaç kişi tarafından oluşturuldu. Bu nedenle, dilin sözdizimi birleşik değildir ve tek bir mimariye sahip değildir. Standart bir şablona göre değil, özel bir şekilde açıklanması gereken farklı prosedürler vardır.

Ayrıca, ana sorunlardan biri de aralarındaki uyum eksikliği olarak adlandırılabilir. farklı versiyonlar Diller. Önceki sürümler, kodu bir sürümden diğerine taşırken genellikle sorun yaratan güncellemelerle çalışmayı kesinlikle reddediyor.

Programlama dillerinin bilgi ve anlayışının uygunluğu

Son on yılda bir bilgisayarla "konuşma" yeteneği konusu giderek daha fazla ivme kazanıyor.

Ve bu şaşırtıcı değil, çünkü Bilişim teknolojisi huzursuzca hayatımıza girdi ve şimdiden bir diş fırçası bile "beyin" olmadan tamamlanmış sayılmaz. Kod programlanmalı ve cihazların servisi bir uzman tarafından yapılmalıdır. Bu nedenle, yetkin programcılara her zaman bir talep vardır.

Birçoğunun bilgisayar dillerini öğrenmesinin bir başka nedeni de ülke ekonomisinin durgunluğudur. Java'da profesyonel olarak yazabilen bir kişi, yabancı bir uygulama geliştirme şirketinde uzaktan çalışabilir ve kendi ülkesinde onlarca yıl biriktirilmesi gereken parayı bir ayda kazanabilir.

Ancak düşünürseniz, başarılı bir şekilde programlamaya ve yazmaya başlamak oldukça zordur. bilgisayar programları. ingilizce dili- yeni başlayanlar için ana engel budur. Ne de olsa çoğu program ve dil, bu uluslararası dilin kelime dağarcığı düşünülerek yazılır.

Dilleri çevrimiçi öğrenebilirsiniz

yani ders çalışmalısın yabancı Dil en azından temel düzeyde, Rus bilgisayar dili icat edilene kadar.

Ama merak etmeyin, dünya yerinde durmuyor. Bugün evinizden çıkmadan ders çalışabilirsiniz. Önemli olan bir bilgisayara ve internete sahip olmaktır. Bilgisayar dili eğitimi veren birçok site bulunmaktadır. Bunlardan en popüler olanları Codecademy, Code School ve Udacity'dir.