Yirminci yüzyılın elli yılında, elektronik lambalı bilgisayarların ortaya çıkmasıyla birlikte, hareket programcılığında büyük bir gelişme görülmeye başlandı. O zamanlar çok daha pahalı olan bilgisayarlar çok daha pahalıydı, daha az gelişmişti, ister bir program, ister vimagali oldukça verimli bir kod. Bu kod, mov Assembler'da manuel olarak geliştirilmiştir. 1950'lerin ortalarında, John Beckus'un IBM tasarımı altında, algoritmik genişleme dil programlama FORTRAN. Aritmetik değişkenlerin makine koduna dönüştürülmesi, algoritmaya olanak sağlayan FORTRAN mov'un (FORmula TRANslator) oluşturulması gibi, mov'un gelişimini zaten geliştirmiş olanlardan bağımsız olarak.

FORTRAN filminden önce yüksek verimli kodun oluşturulması anlatılmıştı. Filmin bu zengin yapıları, kısmen IBM 407 mimarisinin iyileştirilmesiyle geliştirildi. Bir deacoyu'nun yardımıyla, o zamanlar 1966'da bölünmüş olan FORTRAN IV'ün dilini birleştirmek mümkündü ve FORTRAN 66 diyebileceğim ilk standart haline geldi.

IBM mimarisine yönelik FORTRAN diline alternatif olarak, ALGOL (ALGOrithmic Language) dili 1950'lerin sonunda Peter Naur tarafından geliştirilmiştir. Film perakendecilerinin izlediği ana yöntem, sayım sisteminin kendine özgü mimarisinin bağımsızlığıydı. Ek olarak, ALGOL mov'un yaratıcıları, matematikte kabul edilen tiєї'ye yakın, algoritmaları ve zastosovuє sistem atamasını tanımlaması kolay olan mov'u genişletmek için harekete geçti.

FORTRAN ve ALGOL filmleri ilk oldu. programlama saymak.

İlk versiyonları 1960'ların koçanı üzerinde görünen Mova PL 1, IBM 360'ta yönelim koçanı bu v ve COBOL mov, rozroblenno in tsі ve roki'nin yardımıyla FORTRAN mov'un olanaklarını genişletiyor. PL / I filminin programcılar arasındaki popülaritesinden bağımsız olarak, IBM bilgisayarlarında ve EC serisinin makinelerinde uygulandığı gibi, bu şarap saatinde tamamen teorik bir ilgi alanıdır.

1960'ların sonlarında, Nayard ve Dahl'ın seramikleri altında, koristuvalnik veri türlerinin bir tür muzaffer kavramı olan Simula-67 dili geliştirildi. Aslında bu, zastosova'nın sınıfta anladığı ilk dildir.

70'lerin ortasında, Wirth, hemen geniş bir muzaffer olan Pascal hareketini dile getirdi. Aynı zamanda, ABD Savunma Bakanlığı'nın girişimiyle, bir robot, Lord Byron'ın programcısı ve kızı Adia Lovelace'ın onuruna Ada adını alan üst düzey bir film yaratmaya başladı. Filmin yaratılışı, vimog adı ve teknik özelliklerin değiştirilmesiyle başladı. Chotiri bağımsız grupları proje üzerinde çalıştı ve Pascal dilinin temeli olarak tüm pis kokulardan galip geldi. 80'li yılların koçanında 80'li yılların ilk kelime derleyicisi Ada filmidir.

evrensel dil programlama Denis Ritch ve Ken Thompson tarafından 70'lerin ortasında üç parçalanma mektubu. Tsya mov, sistem programlamamla ve zamanında UNIX işletim sisteminin çekirdeğini yazdığı için vykoristovavsya ile popüler oldu. Film standardı çalışma Grubu 1982'de ANSI Standartları Enstitüsü. 1990 roci'de evlat edinilmesinden itibaren uluslararası standart film. Mova mov programlama C ++ ve Java'nın geliştirilmesi temelinde lіg ile.

Algoritmik dil ile birlikte, iş bilgilerinin işlenmesi için kullanıldığı için dil ve parça istihbarat dili paralel olarak geliştirildi. İlkinden önce COBOL'u (COMmon Business Oriented Language) taşıyın ve diğerlerinden önce - LISP (LISt Processing) ve Prolog'u taşıyın. Mova LISP, 60'larda J. McCarthy'nin ker_vnitstvo'su altındaki genişlemeler, Igor'un teorisinde yaygın olarak bilinen liste derlememin ilk işlevi.

görünüm ile kişisel bilgisayarlar film çeliği depo parçalarıіntegrovanih razrobishchih rozrobki. Mov çıktı, rіznih'de scho zastosovuyutsya ofis programları, Örneğin VBA (Uygulama için Visual Basic).

1990'larda internetin yaygınlaşmasıyla birlikte veri işlemenin yayılma olasılığı da artıyordu ve bu da mov programlamanın gelişmesine olanak sağlıyordu. Filmler, Java, Perl ve PHP gibi sunucu eklentilerinin ve HTML ve XML gibi belge açıklamalarının oluşturulmasına yöneliktir. Geleneksel dil programlama C++ ve Pascal da değişiklikleri fark eder: programlamam altında, yalnızca dilin işlevselliği değil, aynı zamanda programlamanın orta noktası olarak kabul edilen sınıf kitaplıkları da anlaşılmaya başlar. Programlama dillerinin kendi özelliklerine yapılan vurgu, katkı maddelerinin birbirine bağımlılığı için mekanizmaların standardizasyonuna aktarılacaktır. Yeni teknolojiler tanıtılıyor - nesnelerin alt bölümleri arasındaki etkileşimi belirleyen COM ve CORBA.

MOV programlama alanları

Bu saatte, insan faaliyetinin çok farklı alanlarında zastosovutsya programlama hareketi, örneğin:

  • bilimsel hesaplama (film C ++, FORTRAN, Java);
  • sistem programlama (film C++, Java);
  • bilgilerin işlenmesi (film C ++, COBOL, Java);
  • parça zekası (LISP, Prolog);
  • görselleştirme etkinliği (Postscript, TeX);
  • bilgilerin uzaktan işlenmesi (Perl, PHP, Java, C ++);
  • belgelerin açıklaması (HTML, XML).

Bir saat boyunca, bazı filmler gelişti, yeni pirinci doldurdu ve taleplerini kaybetti, aksi halde ilgilerini yitirdiler ve bugün mümkün olan en kısa sürede tamamen teorik bir ilgiyi temsil ediyorlar. Önemli bir dünyada, aşağıdaki gibi faktörlerle bağlantılıdır:

  • belirli bir mov programlamasında eklerin geliştirilmesini destekleyen programlama ortamının varlığı;
  • kanalın güvenliği test programları;
  • zastosuvannyam'a özgü film programlamasından dağılımın değişkenliği;
  • film yapılarının netliği ve ortogonalliği;
  • zastosuvannya nesne yönelimli yaklaşım.

Her şeyden önce, nasıl programlanacağını öğrenmek istiyorsanız, tarihçeleri ve de stink zastosovuetsya hakkında biraz bilgi sahibi olmanız gerekir.

sana sunuyorum kısa bir bakış 25 hareket programı. En popülerden en az popülere doğru. Makale, programlama alanında yeni başlayanlar için yazılmıştır. Cilt dilini okuyabilir ve düğün için size en uygun olanı seçebilirsiniz.

Programlama dilini öğrenmeden önce ilk adım olarak ilerleyebilmeniz için kursu öğrenmenizi tavsiye ederim.

1. JavaScript

Prototip yönelimli betik dili programlama. Web tarafını canlı hale getirmek için JavaScript arka arkaya çalışır. Tarayıcıda, kokular aracı olmadan HTML i'ye bağlanır, taraf yenilir yenilmez - hemen tıklarlar.

eğer gidiyorsan Mova Java Komut dosyası, yenisinin adı farklıydı: "LiveScript". Ale, hatta daha popüler olan Java dili ve pazarlamacılar buna benim isim vereceğimi söylediler. yeni dil daha popüler.

JavaScript'in Java'nın "küçük kardeşi" olması planlanmıştı. Bununla birlikte, tarih kendi yolunda düzenlenmiştir, JavaScript güçlü bir şekilde virüstür ve aynı zamanda özgüllüğü ile kesinlikle bağımsız bir dildir ve Java'dan hiçbir farkı yoktur.

2 Java


Kesinlikle yazılan nesne yönelimli dil programlaması. Java programlarının sesi özel bir bayt koduna çevrilir, böylece kötü koku bir Java sanal makinesinin yardımıyla herhangi bir bilgisayar mimarisine uygulanabilir.

Benzer bir program programlama yönteminin avantajı, bayt kodunun işletim sisteminden bağımsızlığı ve her tür sanal makine için herhangi bir eklentiye Java eklentileri kurmanıza izin veren ayardır. Java teknolojisinin bir diğer önemli özelliği, yazılımın bir sanal makine tarafından kontrol edildiği güvenlik sistemidir.

Arkada, dil, James Gosling tarafından düğmeli elektronik cihazları programlamak için geliştirilen Oak ("Oak") olarak adlandırıldı. Yıllarca Java'da yeniden adlandırma ve istemci ekleri ve sunucu yazılımı yazma konusunda şampiyon olma.

3 PHP


Şifreli itirafımın yorumunu açık kodla (script dili) genişletelim. PHP özellikle web geliştirmeyi çalıştırmak için yapılmıştır ve yeni kod doğrudan HTML koduna aktarılabilir. Filmin sözdizimi C, Java ve Perl'den alınmıştır ve anlaşılması kolaydır.

PHP'nin ana yöntemi, web perakendecilerine dinamik olarak oluşturulmuş web taraflarını hızlı bir şekilde oluşturma imkanı vermektir, ancak PHP tıkanıklık alanı yalnızca cim'lerle sınırlı değildir.

4. Piton

Perakendecinin üretkenliğini artırmaya, kod okumaya ve web eklentileri geliştirmeye odaklanan, küresel bir tanınırlığı programlamak için yüksek profilli bir dil. Python çekirdek sözdizimi minimalisttir. Python'daki kod, o sınıfın modüller halinde birleştirilebilen işlevlerinde düzenlenir.

5.C#


Nesne yönelimli dil programlama. 1998-2001'de Microsoft'ta Anders Hejlsberg'in mühendislik ekibi tarafından Microsoft .NET Framework için eklenti geliştiricisi olarak geliştirildi. C#, sözdizimi C++ ve Java'ya en yakın olan C benzeri söz dizimi ile sim'mov'a getirilir.

Mova, statik yazım, subtrim polimorfizmi, operatör geçersiz kılma, delegeler, nitelikler, alt bölümler, yetki, belirtilen türler ve yöntemler, yineleyiciler, subtrim muting ile anonim işlevler, LINQ, dışlama, XML biçiminde yorumlar yapabilir.

6. Z++


Derleme, küresel bir tanımanın dil programlamasını statik olarak simgeliyor. Dünyanın en geniş dillerinden biri. Google Chrome, Mozilla Firefox, Winamp ve Adobe ürün grubu, C++'ı destekleyecek şekilde genişletildi. Ek olarak, bazı modern oyunlar ve işletim sistemleri, işleme ve derleme sürecinde C ++ ile geliştirilmiştir.

7. Yakut


Web eklentilerinin geliştirilmesini hedefleyen basit ve okunması kolay mov programlama. 1995 yılında Yukihiro Matsumto'nun dağılması. Mova maє maє nezalezhnoї ve operatsiynoї ї sistemy realіzatsієyu zengin akış, suvoroї dinamik typeіzієyu, skladalnik smіttya.

Ruby'nin temel amacı, basit ve aynı zamanda akıllı programların oluşturulmasıdır, önemli olan robotik programların hızı değil, küçük geliştirme saati, zeka ve sözdiziminin basitliğidir. Mova, "en az beceriksizlik" ilkesine bağlıdır: program, sanki bir programcıymış gibi davranmaktan suçludur.

8. CSS


Basamaklı Stil Sayfaları (basamaklı stil sayfaları), dil düzeninin dilinde yazılmış bir belgenin orijinal görünümünün resmi bir açıklamasıdır.
İyi görünen web sayfalarının tasarımının bir açıklaması olarak kazanmak önemlidir, HTML ve XHTML mizanpajlarının yardımıyla yazılmış veya ayrıca herhangi bir XML belgesini zastosovuvatisya yapabilirsiniz.

9.Ç


Küresel bir tanımanın statik olarak tiplendirilmiş mov programlamasının derlenmesi. Mova Cі buv, Dennis Ritchi tarafından 1972 roci'de Bell Labs'ta ayrıştırıldı. C ++, Java, C #, JavaScript ve Perl gibi bu tür mov programlamanın önünde Vіn є. Z tsієї vvchennya tsієї mov anlayışına ve diğer mov'a neden olur. Donanıma yaklaşmak için düşük seviyeli programların geliştirilmesi için Mova S vikoristovuetsya.

10. Amaç-C


Apple Corporation tarafından desteklenen, C dili ve Smalltalk paradigmalarına dayanan nesne yönelimli dil programlama derlemesi. Objective-C dili, C dilinin kişisel olmayan dilinin üzerindedir, bu nedenle C kodu, Objective-C derleyicisine anlam ifade edecektir. Dil önce Mac OS X (Kakao) ve nesne yönelimli OpenStep arayüzünün bir uygulaması olan GNUstep için yazılmıştır. Bu dil ayrıca iOS (Cocoa Touch) için yazılmıştır.

11 Kabuk

Stіlki mov değil, sіlki komut yorumlayıcısı (command mov). Yogo betikleri, yazılım güncellemelerini otomatikleştirmek için yazılır. Döngüler, dekuplaj, sağırlaştırma fonksiyonları için standart yapıları değiştirmek için. UNIX işletim sistemine benzer bir işletim sistemi ailesinde, SHELL dili standart bir taşınabilir görev yöneticisi olarak üstün gelir.

12. R


için Mova programlama istatistiksel işleme GNU projesi çerçevesinde açık kaynak koduyla hesaplama yapmak için ücretsiz bir yazılım ortamının yanı sıra grafiklerle veri ve çalışma. R, veri analizi için istatistiksel bir yazılım olarak geniş çapta tanınmaktadır ve etkili bir şekilde istatistiksel yazılım için standart haline gelmiştir. R'de bir komut satırı arayüzü vardır.

13. İnci


Vysokorivneva, rezil itirafın programlamasının dinamik dilini yorumluyor. Filmin adı, Practical Extraction and Report Language - "verileri ayıklamak ve sesleri katlamak için pratik dil" olarak deşifre edilen bir kısaltmadır. Filmin ana özelliği, sözdizimine dahil edilen normal komut dosyalarıyla çalışma da dahil olmak üzere, metinle çalışma konusundaki zengin yeteneğidir. Şu anda, sistem yönetimi, web geliştirme, yazılım geliştirme, oyunlar, biyoinformatik ve grafik iletişim arayüzlerinin geliştirilmesi dahil olmak üzere çok çeşitli projeler için çalışıyoruz.

14 Ölçek


İşlevsel ve nesne yönelimli programlama olasılığını artıran bileşen yazılımının basit ve hızlı oluşturulması için kısa ve güvenli tipte yeni programlamanın çoklu paradigması. Scala, Java programlarına benzer birçok yönden zengin bir programdır ve Java koduyla serbestçe etkileşime girebilir.

15. Git


Zengin film programlama derlemesi, Google tarafından ayrıştırma. Go dili, modern dallanmış sistemlerde ve zengin çekirdekli işlemcilerde çalıştırılabilen yüksek verimli programlar oluşturmak için kullanılan bir sistem programlama dilidir. Vіn, Cі filminin yerini alacak bir test gibi görünebilir. Geliştirme sırasında, yüksek verimli derlemenin güvenliğine özel dikkat gösterildi. Go programları, nesne kodunda derlenir ve sanal makine için çalışmaz.

16. SQL

Yapılandırma isteklerinin dili. resmi prosedürel olmayan hareket programlama, oldukça ilişkisel bir veritabanında oluşturma, değiştirme ve veri yönetimi için hazırlama, çekirdek tabanlı bir veritabanı yönetim sistemi. SQL, ilişkisel veritabanlarında kaydedilen verilerin tanımlanması, değiştirilmesi ve düzeltilmesi için tüm bilgilendirici ve mantıksal bilgilerim için ilk olanıdır. Skin SQL önermesi - ya tabandan veri almak ya da veri tabanına geri dönmek, böylece veriyi tabana getirmek.

17. Haskell


Ortak bir tanımanın standartlaştırılmış saf fonksiyonel hareket programlaması. Є hesaplama alt bölümleri ile en geniş kapsamlı programlama dillerinden biri. Vіdmіtna risa movi - typeіzatsії için seryozne stavlennja. Haskell, daraltılabilir veri türlerini öğrenmek ve denemek için harika bir dildir.

18. Hızlı


Vіdkritiy multiparadigmnosti kompilovaniya mova progruvannya zagalnogo prichennya. Apple tarafından ilk sezonda iOS ve OS X perakendecileri için yaratılan Swift, Cocoa ve Cocoa Touch çerçeveleriyle çalışır ve Objective-C'de yazılmış ana Apple kod tabanıyla özetler. Swift, Objective-C yoma'yı yeniden tanımlarken, bir dil programcısının beğenisine göre daha kolay okunacak ve dayanıklı olacak şekilde tasarlanmıştır. Swift, çok sayıda Objective-C yapmaya heveslidir, prote şarapları göstergeler olarak değil, sanki derleyici değiştiriliyormuş gibi değişiklik türleri olarak tanımlanır. Benzer bir prensip için birçok komut dosyası işlenir.

19.Matlab


Matrislere dayalı veri yapısını, çok çeşitli işlevleri, geliştirme ortamının entegrasyonunu, nesne yönelimli yeteneği ve diğer programlama dillerinde yazılmış programlara arabirimi içeren dil programlama, yüksek düzeyde yorumlanmıştır. MATLAB'da yazılan programlar iki türdür - işlevler ve komut dosyaları. İşlevler, giriş ve çıkış bağımsız değişkenlerinin yanı sıra ara sonuçları kaydetmek, hesaplamak ve değiştirmek için bir çalışma alanına izin verir. Scripti ve vikoristovuyut zagalny çalışma genişliği. Komut dosyaları gibi, işlevler de metin dosyaları gibi görünmekten kurtarılır ve dinamik olarak makine koduna derlenir.

20 Visual Basic


Mova programlamanın yanı sıra Microsoft Corporation tarafından geliştirilmekte olan yazılım geliştirme ortamının entegrasyonu. Visual Basic dilinin ruhu azaldı, atasının stili ve sözdizimi, birkaç lehçeye sahip BASIC dilidir. Aynı zamanda Visual Basic, nesne yönelimli ve bileşen yönelimli programlama dillerinin prosedürlerini ve öğelerini içerir.

Visual Basic ayrıca Microsoft Windows ailesinin işletim sistemleri için RAD veritabanı eklentilerini genişletmenin iyi bir yoludur. Ortadan bir anda teslim edilen hazır bileşenlerin olmaması, programcıyı programcıya yardım etmeye çağırır ve programı başlatmak için yazılan koda hiç dikkat etmeden eklentinin iş mantığını geliştirmeye başlar.

21. Delphi


Güçlü bir statik değişiklik tipine sahip zorunlu, yapılandırmacı, nesne yönelimli dil programlaması. Ana araştırma alanı uygulama yazılımı yazmaktır.

Bugün, Windows için 32 ve 64 bit programları genişletmek amacıyla, Apple Mac OS X için olduğu kadar, Windows için de eklentiler oluşturmak mümkündür. Google Android(ARM işlemcileri anında hackliyor).

22. harika


Nesne yönelimli dil programlama, Python, Ruby ve Smalltalk yetenekleriyle Java dilinin bir uzantısı olarak Java platformu için genişleme. Groovy, JVM bayt koduna dinamik derleme ve diğer Java kodu ve kitaplıklarıyla sorunsuz çalışma ile Java benzeri sözdizimini hackler. Mova, herhangi bir Java projesinde veya bir MOV komut dosyası olarak öne çıkarılabilir.

23. Visual Basic.NET


Visual Basic'in cehennem gibi bir evrimi olarak görülebilecek nesne yönelimli dil programlama, Microsoft platformları.AÇIK VB.NET'in önceki daha büyük sürümle (Visual Basic 6.0) çok fazla sinerjisi yoktur. Eski sürümlerin (* .vbp) projelerinin geliştirilmesi, yalnızca bunların özel bir sihirbaz (Geçiş Sihirbazı) tarafından VB.NET formatına dönüştürülmesinden sonra mümkündür; Prote, dönüşümden sonra, orijinal kılavuz metin kutusuna ihtiyacınız var.

24.D

Multiparadigmatik Derlemeler Digital Mars'ta Walter Bright tarafından oluşturulan dil programlama. Başa dön C++ filminin yeniden yapılandırılması gibi D fikirleri, varyantı değil, C++'ın değeri ne olursa olsun prote. Ayrıca dil, Python, Ruby, C#, Java, Eiffel'de dil programlama kavramını tanıttı.

25. Montajcı


Komutlarla düşük seviyeli makine yönelimli dil, güvenli hale getirebilen makine komutlarına bağlı değildir. ek yetenek makro komut penceresi; otokod, ifadeler, makrolar gibi üst düzey programlama dili yapıları ile uzantılar, programların modülerliğini sağlar.

Montajcı dili - makine kodunda yazılmış programların anlaşılır bir biçimde dosyalanması için bir meydan okuma olarak bir atama sistemi. Assembler dili, programcının alfabetik anımsatıcı işlem kodlarını kullanmasına, kendi takdirine bağlı olarak EOM ve bellek kayıtlarının sembolik adlarını atamasına ve ayrıca kendisi için uygun olan adresleme şemalarını ayarlamasına izin verir. Buna ek olarak, wine, sayısal sabitleri temsil etmek için farklı sayı sistemlerini seçmenize izin verir ve program etiketleri satırlarını arayabilmeniz için sembolik adlarla belirleme olanağı sağlar.

Profesyonel programcılardan çok fazla talep edilmeyen tüm pis kokuları almadım. Görevim vikonan, artık dil ve destek seçiminizi kaybettiniz. Çabalarınızda iyi şanslar.

Çoğu modern bilgisayar programının yazılması, yüksek bir eğitim düzeyinde gerçekleştirilir. Birçoğunun 60'lı ve 70'li yıllarda ve güncel dosyalarda dolaşıma girmesi dikkat çekicidir. Yüksek dilli dil hakkında başka hangi gerçekleri söyleyebiliriz? En geniş farklı çözüm yelpazesi nedir?

Üst düzey dil yazma programlarının özü

Yüksek düzeyde dil programlama, makineden bağımsız olarak sınıflandırılabilen bir araçtır. Bu ne anlama geliyor? Sağda, bu filmde programlama çaça kategorilerine ayrılmıştır.

Є makine kodu: ara donanım öğeleri olmadan bilgisayarın çekirdeğini kontrol etmek için kullanılan bir dizi algoritma. Gelecek makineler için daha eski olacak: belirli bilgisayar türleri için yalnızca tek algoritmalar geliştirilecek.

Montajcıyı hareket ettirin. Aslına bakarsanız, koku, ek makine kodu için PC donanım bileşenlerinin düşük seviyeli yönetimi ile tanınan tomurcuğun üzerindedir. Ale, bagatmanın arkasında, montajcı filminin işaretleri makine-bayatına da uyarlanmıştır. Kural olarak, kokular belirli bir PC donanım bileşeni çeşitliliğine uyarlanır. Їх asıl görev, diğer düşük seviyeli iletişimlerin yardımı için bilgisayarın koristuvachevі yönetimini affetmektir.

Kendi başına, yüksek düzeyde programlama dili, bilgisayara özel olarak yüklenmiş olmasına bakılmaksızın, bir PC'den koristuvachevy vzaemodiya oluşturmanıza olanak tanır. O yogo makine karesine kadar izler. İşletim sistemleri yazılırken çoğu zaman programlama üst düzeyde yapılır. Assembler'da yazılan Ale є OS. Düşük ve yüksek seviyeli filmler aynı anda kazanılabilir. Yüksek hızlı PC komutlarından sorumlu olan Lyudina, aksi takdirde bunları belirli donanım bileşenlerine iletmekten suçludur ve bu işlev, yapıya geri dönen yüksek hızlı dillerle aynı anda farklı birleştirici dillerle uygulanabilir. isletim sistemi.

çevirmenler

Üst düzey programlamada yer alan en önemli unsurlar çevirmenlerdir. İşlevleri farklı olabilir. Çevirmenlerin engellemesinin kilit alanları arasında, üst düzey programlama dilinde oluşturulan komutların, bir PC'nin belirli bir donanım bileşenini, örneğin bir işlemciyi anlayarak makine koduna "aktarılması" yer alır. Bu işlevi dönüştüren çevirmenlere derleyiciler de denir. Є Є іnshiy raznovid vіdpovіdnih komponentіv - іnpretatori. Pis koku, kendi satırında, yüksek seviyeli komutların işletim sistemini anlayanlara veya bir programa "aktarılması" için tanınır.

Yüksek seviyeli dillerin sınıflandırılması

Özgün dil programları farklı kriterlere göre sınıflandırılabilir. Şema genişletildi, kokuya göre aşağıdaki ana farklılıklar bölünecek:

Prosedür odaklı (hesaplamanın herhangi bir aşamasında bilgileri işlerken aracın kalitesine atanır);

Problem yönelimi (zasіb vysіshennya galuzevyh olarak wykoristovuyutsya ve PC'nin genişletilmiş alanlarıyla oluşan uygulamalı problemler);

Nesne yönelimli (ilk iki dil türüyle birlikte kullanılabilirler, ancak farklı eğitim düzeyine sahip çok çeşitli perakendecilere uyarlanabilirler, örneğin görsel arayüzle bir çözüme bakmak).

Şimdi en son sınıflandırma olan üst düzey programlamanın tarihsel ve güncel olaylarına bakalım.

Yöntem Odaklı Filmler

Fortran bu kadar görülebilir. Vin, yüksek düzeydeki ilk programlamamla saygı görüyor, geniş bir zastosuvannya için yaratacağız. Basit bir yapı ile karakterizedir. Prosedür odaklı dillerden önce BASIC de dahil edilmiştir. Programlamayı öğrenirken en sık görülen galiplerden biri olarak kabul edilir. Prosedür odaklı başka bir filmin poposu - СІ. UNIX işletim sistemi için oluşturulmuş bir grup şarap. Bu temelde, nesne yönelimli programlama araçlarıyla desteklenen C ++ dili oluşturuldu. Bu kategoriye dahil edilebilecek bir başka dil de Pascal'dır. Genellikle aynı şey programlama öğrenmek için de geçerlidir. Bu filmin uygulanabilirliği, profesyonel yazılım türleri geliştirmek için daha da zor bir araç olarak kazanmanıza olanak tanır.

Problem odaklı film

Bunlar Lisp, Prolog'da görülebilir. 1962 roci'deki bölünmelerin ilk hamlesi - Fortran'ın yaratılmasından sonra roki'nin doğuşuyla. Tarihte bir başkası gibi böyle bir mertebede bakılır. Sıra sıra sembollerle robotik programcılar için aktif olarak bir araç gibi çalıştı. Uygulamada Lisp, analitik hesaplamalara atananların yanı sıra uzman olarak sınıflandırılan sistemlerde galip geldi. Prologue, mantıksal programlama alanında yaygın olarak bilinir. Uygulamada, işin çoğu, farklı sistemlerde parça zeka algoritmalarını yönetmekle ilgilidir.

Film Nesne Yönü

Vivchimo artık nesne yönelimli kategorisine getirilebilen üst düzey programlama dilini uyguluyor. Bunlara Visual Basic, Delphi, Visual Fortran, daha fazla C++ ve Prolog++ dahildir. Aslında her türlü pis koku kendince yöntem odaklı filmlerdir. Bununla birlikte, diğer araçlara çağrılan gerekli algoritmaların ve perakendecilerin daha da geliştirilmesi yöntemiyle görsel kontrol öğelerinin birçok eklemesi vardır. Böylece, üst düzey programlamanın ilk dili olan Fortran, Visual Fortran'ın ek olanakları için BT kolaylaştırıcıları tarafından operasyonel terimlerle kullanılabilir. Benzer bir yöntemle, Basic veya Prologue'da hızlı bir şekilde ustalaşabilirsiniz.

Zdіysnyuєtsya, üst düzey dil Object Pascal'da Delphi programlamasının yardımıyla kendi satırında. Nesne yönelimli dil olarak sınıflandırılan çok sayıda başka PZ geliştirme ortamı vardır. Yazılımın geliştirilmesine yönelik bu teknoloji alanı aktif olarak gelişmektedir.

Fortran i Lisp - birinci ve diğer yüksek dilli filmler

Üst düzey programlamanın ilk dilinin Fortran ve ayrıca başkaları tarafından saygı duyulan Lisp olduğunu belirtmekte fayda var. 1954'te, John Backus tarafından büyülenen IBM şirketinden perakendeciler, böyle bir programın yardımıyla bir PC ile etkileşimi önemli ölçüde kolaylaştırma olasılığını ortadan kaldıran bir dil yarattılar, çünkü o ana kadar yardım için mümkün olmuştu. makine komutları veya derleyici. Vіn otrimav adı Fortran і sorunsuz bir şekilde SRSR'de Ruslaştırılmış isimler altında vodomy oldu. Fortran, bilimsel hesaplamalar için popüler bir araç haline geldi.

Aynı derleyici haline gelen IBM spilnot fahivtsy'sinin yaydığı ana devrimci unsur, birleştiriciye bir alternatiftir. Uygulamanın ilk yıllarında, pek çok rozrobnikov vvazhali derleyicisi olan Fortran'ı kullanarak programlar yazmak, işçilik maliyetleri açısından her şeyden önce her şey için çok uzak kararları zovsіm değildir. Zengin bir makine kodu, etkili bir şekilde, çevirmenin yayını ile daha basit, daha alçak katlandı. Bununla birlikte, bilgisayarların üretkenliğinin hızla arttığı dünyada, programlar, daha iyi bir derleyici olmadan etkili bir yazılım oluşturmanın sorunlu olacağını, sanki bilgisayar sorunlarının sayısını artıracakmış gibi fark etmeye başladı. Bu nedenle, perakendecilerin IBM'den onarımı daha fazla gelişmeyi ortadan kaldırdı. Zengin yollarla Fortran programlama dilinin ana sözdizimsel yapıları, yeni çözümler oluşturulurken temel olanlar olarak kullanılmaya başlandı.

Fortran'a gömülü kavramların geliştirilmesi alanında pratik sonuçlara ulaşmanın bir örneği olarak, Lisp'in oluşturulması kullanılabilir. Dile 1958'de bir dizi genişletme verildi; Lіsp buv razrazrobleniya John McCarthy ve BT çiftçileri için popüler dergilerden birinde yayınlar. Bu filmin temel amacı listelerin derlenmesidir. Lisp, parça istihbarat sistemlerinin perakendecileri arasında popüler oldu. Yoga temelinde Planner, Scheme ve Common Lisp gibi filmler yaratıldı. Lisp ayrıca birçok modern yazılım geliştirme aracına önemli katkılarda bulunmuştur. Günümüz dünyasında popüler olan üst düzey programlama dillerinin yapısı Fortran ve Lisp algoritmalarına dayanmaktadır.

Ancak yazılım araçları geliştirmek için incelenen araçların sınıflandırılmasında diğer yaklaşımlara da göz atmak gerekecektir.

Evrensel Yüksek Karşılıklı Filmler

Dolayısıyla, mevcut uzmanlar evrensel yüksek kaliteli filmler görüyor. Onlardan önce, 60'larda parçalanmış olanlar, zokrema görülebilir. Ana Özellikler:

Çok çeşitli görevlere yönelme (bize ileri, sayılacak);

Mevcut yapıların ve algoritmaların sayısı çok fazladır;

Önem yalnızca kişinin kendi saati için değil, bilgisayar teknolojisinin mevcut gelişim aşaması için de önemlidir;

Zorunlu metodolojinin en önemli dili için destek.

Evrensel filmler, çok çeşitli BT geliştirmelerinin temelidir. Bu kokulardan önce iç yapı kısmında doğrudan benzerlerinin olmadığı görülmektedir. Vlasne, modern nesne yönelimli arayüzlerde farklı dillerin görevinin alaka düzeyini açıklayacak kadar zengindir. Yani zaznachenih mov'da zagalne - bir tür haraç. Anlamlı dünyadaki bu faktör onun evrenselliğini belirler. Evrensel olarak sınıflandırılabilecek hareketin en dikkat çekici güçlerinin sayısında ise bir düşüş var. Dolayısıyla, tarihsel olarak, şiirlerin çoğu, kural olarak, seleflerin kavramlarına dayanıyordu.

benzersiz filmler

BT uzmanlarının faaliyetleri, bağımsız "benzersiz filmler" kategorisinde görülmektedir. Bunlar arasında: APL, Cobol, Forth, SETL ve ayrıca CLU. özgüllük nedir?

APL'nin en önemli yönü, dizilerin (vektörler ve matrisler) bir anahtar yapısal tipe atanmasıdır. Cobol filminin özgüllüğü ticari alana odaklanmıştır. Bu nedenle, sonuçları sunmak için standartlaştırılmış bir formatla bağlantılı görevlerin yürütülmesi durumunda bunu yapmaya değer. Mova Forth, sonek yazma programlarının yanı sıra geliştirilmiş yığın notasyonu ile karakterize edilir. Move SETL, anahtar veri türlerinden birinin kapasitesinde çok sayıda anlama sahiptir. Üst düzey programlamam da CLU'dur. Ana özelliği, soyut veri türlerine sahip robotik kavramıdır. Pek çok BT çiftçisi, örneğin Nesne Yönelimli Cobol gibi benzersiz hareketlere dayalı yeni çözümlerin ortaya çıkmasında mantıklı olabilir.

Paralel Programlamayı Alın

Bu kategori çok sayıda karar içerebilir. Kendi ellerimle, paralel programlama filmleri, sınıflandırma için çok sayıda ikame edicinin annesi olabilir. Örneğin, süreçleri organize etme yöntemi. Dane, bunlarda görünen paralel programlama özelliklerinin sınıflandırmasını sunar:

spiv programları;

galvanizleme;

ob'ednan;

paralel yay;

Süreçleri olan robotlar için algoritmalar.

Klassifіkatsії mov için Іnsha pіdstava, tür olarak kabul edilir - süreçleri senkronize etme yöntemleri. Ek kararlar, bu sıraya göre şunları içerebilir:

semafor;

Monitör;

- "buluşma";

Kritik iş;

Uzaktan prosedür döngüsü;

Atomik olarak kategorize edilen işlemler.

Bu türün örnekleri Modula-2, BLISS, Concurrent Pascal, DP, Argus'tur.

mov ailesi C

Daha sık olarak, buna C gibi bir çözümün üst düzey programlamasının bir örneği olarak baktık. Aslında, bu bütün bir aile biçimidir. Önünde yatan filmler, C'nin özel yapılarıdır. Bu nedenle, çeşitli nesne yönelimli bileşenlerin eklenmesi, C ++ 'nın geliştirilmesine yol açtı. Bir dizi C yapısını filtrelemenin özünden sonra, Java dili ortaya çıktı. Pascal filminin yaratıcısı Niklaus Wirth'in de belirttiği gibi Java'nın Oberon projesi için çok iyi işler yaptığı görülüyor. Üst düzey JavaScript için ne gerekiyor? Çılgınca, zastosuvannya'nın web sayfalarını geliştirmek için bir araç olarak karmaşıklığına şaşırmayın. Ale to mov programlaması üst düzeyde yalan söylemez, zokrema, HTML, XML ve SGML. Pis koku, köprü metnini işaretlemek için bir araç olarak sınıflandırılır.

pascal mov ailesi

Üst düzey Pascal'ın film programcılığı da bir aile kurar. Nesne yönelimli bir tür olarak sınıflandırılan Pascal Bouv, vlasne, Oberon kreasyonları temelinde. Oberon'un temel özelliği, güvenli tipler sağlama yeteneğidir. Krem Oberon, Pascal ailesine Modüla-2'nin yanı sıra Bileşen Pascal'ı da ekleyebilirsiniz.

ada mov ailesi

Hareket kategorisinde temel - ABD Savunma Bakanlığı'nın ihtiyaçları için açıklamalar Ada. 70'lerin akrabalarında buv kreasyonlarında - rokіv'ın 80'lerinin koçanı üzerinde. Çok sayıda işlev, olasılık ve çok yönlülük ile karakterizedir. Ada mov ailesi Cedar, Modula 3 gibi çözümleri içerir.

Simula mov ailesi

Simülasyon modellemeye bağlı programlama perdelerindeki Mova Simula uzantıları. Belirli çözümlerin özellikleri, belirli bir çekirdeğin radyasyonundadır. Bu seçim, zastosuvannya'nın daha sessiz alanlarına uyum sağlayarak farklı genişletmeleri zastosovuvati yapmanıza olanak tanır. Simula temelinde, veri, prosedürler ve ayrıca yönetim ile çalışmayı temsil eden tek bir soyutlama algoritmaları içinde kombinasyonlar oluşturmakla karakterize edilen nesne yönelimli Smalltalk dilini ve BETA'yı yarattılar. BETA nesneleri, örneğin değişikliklerin kalitesi, işlevler veya paralel sistemler gibi farklı bağlamlarda görüntülenebilir.

Görev sayısını artırmak için, grafik işlemciler aynı anda giderek daha aktif hale geliyor ve ardından güç kaynağı olmadan kalıyorlar: konfigürasyonları değiştirmek için etkili programlar nasıl yazılır?

06/15/2011 Andriy Adinec

Görev sayısını artırmak için, grafik işlemciler aynı anda giderek daha aktif hale geliyor ve ardından güç kaynağı olmadan kalıyorlar: konfigürasyonları değiştirmek için etkili programlar nasıl yazılır? CUDA veya OpenCL'yi birbirine bağlayan standart çözüm, algoritmayı rastgele uygulamanıza, onların yardımıyla belirli bir yapılandırma için optimize edilmiş sürümü test etmenize olanak tanır. Daha yüksek seviyedeki grafik işlemcileri programlamak için, örneğin mov'un genişletilmesi için oluşturulabilecek araçlara ihtiyacınız var.

Üç yıl önce, grafik işleme birimleri (Grafik İşleme Birimi, GPU) bir PC için bir video kartı gibi görülmedi, ardından aynı zamanda bunların ayarları değişti - GPU'nun özel sunucu modelleri ortaya çıktı, odaklandı hesaplama görevlerini çözme, bilgi işlemde artan üretkenlik winkli sistem rekor üretkenlik, scho Top500'de diğer sıraları işgal etti. Ve bu tür makineler için verimli programlar nasıl yazılır? Standart sürüm - aynı kümede GPU ve MPI programlama için CUDA veya OpenCL'yi birbirine bağlar. Sahiplik ustaları tarafından aktif olarak tanıtılan çok sayıda araç mevcuttur, onlar için zaten birçok program yazılmıştır, ancak yeterli değildir.

CUDA ve OpenCL C filminin uzantılarıdır, düşük seviye araçlarla yapmak isterseniz pis koku evlilik için katlanılmaz. Onların yardımıyla, GPU için algoritmayı bağımsız olarak uygulamak, belirli bir tasarım için optimizasyonu test etmek mümkündür ve yapılandırma sürümü önemli ölçüde daha katlanmış görünür. Tüm optimizasyonların manuel olarak yapılması gerekir, bu da kodun boyutunda ve okunabilirlikte iyileşmeye yol açacaktır. OpenCL yardımıyla oluşturulan programlar çok çeşitli mimariler arasında aktarılacaksa, böyle bir aktarımla üretkenlik kaydedilemez. Daha yüksek düzeyde GPU programlama için araçlara ihtiyacınız var.

Bu tür araçları farklı şekillerde oluşturabilirsiniz: yeni bir programlama dili tanıtın; zaten net olan dile, PGI Accelerator modelinde veya CAPS HMPP'de nasıl çalışılacağına dair yönergeler ekleyin; genişleyen dil ile hızlandırın. genişleyen film- sözdizimi ve anlamı sabit olmayan, ancak programcının ihtiyaçlarına göre bayatlıkta değiştirilebilen hareket programlama. Geleneksel olanlarla çiftler halinde, bir melez gibi, bir dizi avantajı düşünürler: içlerine yeni olasılıklar eklemek daha kolaydır; pis koku vіdkritі; bu tür dillere dayalı yeni programlama modellerinin geliştirilmesi daha basittir, genişleme için osilatörlerin aşağı yukarı eşit derecede küçük olması gerekir; bu tür hareketlerin yardımıyla programlarda ince ayar yapmak ve optimize etmek daha kolaydır.

genişleyen film

Dilin genişletilebilmesi için yeni dilde bulunması gerekir:

  • derleyiciyi değiştirmeden, ancak tüm derleyiciler tarafından desteklenen genişletme mekanizması, yani zocrema, derleyiciler arasında standart bir arayüzün varlığı;
  • filmleri genişletmek için makrolar veya yarı alıntı gibi kod ağacını genişletmek ve manipüle etmek için yapılar;
  • uzantıyı yazmaya çalışın, örneğin dilin kendisi genişler, gerilimi aktarılan dil de uzantının kodunun aynı şekilde çalışabilmesi için bu dilde bir program olsun.

Görünüşe göre mov, yak vydpovidat sim omogam, eşit derecede zayıf: Lisp, Nemerle, Seed7, xoc ve Stratego. Cі mov uzantısının amacı olan bu xoc ile Zeta mov uzantısı uzantıyı yazmak için, Stratego ise çıktı kodunu dönüştürmek için mov etki alanıdır. Nemerle - zaferci bir ortam olan genişletilmiş dil. Açık.

Tüm hareketler, program ağacıyla çalışma mekanizmalarını ve her şeyden önce, en yaygın kodun yardımı için program ağacını temsil eden nesnenin özellikleri olan yarı alıntının tasarımını geliştirmek için geliştirilmektedir.

Move Nemerle kazanmanın mümkün olduğu bir yapıya sahiptir, örneğin, 0 koçan değerleri ile i'nin açık değişiminden oluşan bir ağaç yaratıyorum. Yarı alıntı, dize nesnelerinin oluşturulmasına benzer. dize sabitleri ile. Şek. 1 yarı alıntının ucu işaret edildi. Enterpolasyonun yapısı, yarı alıntının ortasındaki sabitleme şablonundaki değişikliklerin değerlerinin girilmesine izin verir. Nemerle'de hangi fitiller için $ (...) yapıları var, bu yüzden örneğin bir liste sağlamanız gerekiyor. Ayrıca dilin genişletilmesinde program ağacının ayrıştırılmasında da yapılar bulunmaktadır. Nemerle hamlesi, kalitesinde maç (...) (...) operatörünün kullanıldığı Cі hamle anahtarının bir analogu olan bir maç operatörüne (...) (...) sahiptir. yarı alıntı yapan yapılar kazanılır. Bu enterpolasyon ile, başarılı bir ayar zamanlarında olduğu gibi, yeni değişikliklerin atlanması olarak yorumlanır, ilgili alt ağaçların değerleri alınır. Örneğin, ifade deyimi için (e) (| => ...), e gibi bir ağacın intikamını almak, a'yı yemek için değiştirmek ve b'yi değiştirmek için.

Bir ağaç programıyla çalışmak için araçlar, film uzantısının yapılarında yer alır. Nemerle filminin bu tür makroları var - derleme aşamasında kullanılan ve haftalık olarak sitede sunulan program ağacının bir parçasını döndüren özel işlevler. Bu durumda makro, programın parçalarını parametre olarak kabul eder ve bunları değiştirebilir. Prensip olarak, bir makroyu birincil işlevle tamamen aynı şekilde çağırabilirsiniz; ancak daha fazla esneklik için bir makroyu özel bir sözdizimine bağlama. Bu, Nemerle diline yeni sözdizimsel yapılar eklemenizi ve böylece dili genişletmenizi sağlar.

Şek. Şekil 2'de, cilt virüsünde değişiklikler ve bir dizi yineleme içeren zengin bir döngüyü seslendirmenize izin veren sözdizimsel uzantılara sahip bir makro örneği sunulmuştur ve şekil 2'de. 3 Programın dönüşümü, makronun nasıl oluşturulacağı ile ilgili bir örnek verilmiştir. Saygılarımla, böyle bir uzantı olan makro, çıktı kodunun 30 satırından daha azını alır ve bununla birlikte, af için bir dizi dönüşüm içerir. Geleneksel yaklaşımla, böyle bir uzantının uygulanması önemli ölçüde daha büyük miktarda kod gerektirecek ve ayrıca derleyicinin iç ömrünün geliştirilmesini gerektirecektir.

Tarihsel olarak, ilki, büyük bir liste olarak göründüğü ve program ağacıyla çalışmak için özel yapılar gerektirmeyen program olan Lisp'teki makroların mekanizmasıydı, aynı şekilde bu hareket genişletmesinde program en fazla genişlemeyi aldı. Nemerle'deki makrolar Lisp'tekilere benzer. xoc sisteminde, ayrıştırma ağacının gramerini ve özniteliklerini genişleterek uygulamaları genişletmek için bir mekanizma vardır. İster dilin bir uzantısı olsun, iki özellik belirlersiniz: sözdizimsel yapı türü ve temel dildeki viraz, öyleymiş gibi davranmayacağınız şekilde.

Genişleyen hareket, zengin standart yapıların makrolar aracılığıyla uygulanmasıyla karakterize edilir. Nemerle filminde tüm döngüler ve eşleştirme gibi akıllı operatörler makrolar aracılığıyla uygulanıyor ve Lisp'te makrolar standart döngü yapılarına ve sesli işlevlere sahip.

Bir film nasıl kazanılır?

Genişletilebilir film programlama için, GPU programlama için Nemerle filminin bir uzantısını oluşturma yöntemi olan NUDA (Nemerle Unified Device Architecture) projesi çerçevesinde geliştirilen grafik işlemcileri programlamanın en manuel yolunu sağlayan yapılar yazabilirsiniz. Programın sunumu için GPU ile hedef dil arasında bir arayüz olarak OpenCL kullanılmaktadır.

İlk defa, wiki'yi GPU'ya uygulamanız ve Nemerle filminde kodu çoğaltmanız gerekiyor. Herhangi bir arıza durumunda, basit veri tipleri, yapıları ve dizilerle çalışmanın yanı sıra döngüler ve açma gibi ayrı hareket operatörleri kullanılır. GPU'nun kodu, diğer işlevlerde veya NUDA çekirdeğinde suçlanmalıdır. Çekirdeğin dış görünümü, çekirdek kodunun arkasında OpenCL kodu ve ana bilgisayar tarafında çekirdek wiki'si için bir saplama yöntemi oluşturan nukernel makrosu tarafından tanımlanır. Kodu oluşturmadan önce, tüm makrolar analiz edilir ve makrolar döngüye alınır ve ayrıştırılır. Çekirdeğin ortasında bir işlev çağırmak gerekir, bu işlev, OpenCL mov'da bu işlev için kod üreten nucode makrosu tarafından belirlenmekten suçludur. Çekirdek çağrısı, nucall makrosunun yardımının arkasındadır; çekirdeğin krіm parametreleri, kendisine başladığı akış ızgarasının yapılandırmasına iletilir.

Çoğunlukla GPU'nun çekirdek kapasitesinde, döngünün gövdesi kazanır, bu nedenle döngünün hemen GPU'ya aktarılması arzu edilir. Nemerle bunu uygulayabilir - NUDA'daki varsayılan makroya nuwork denir. Şarapların genel dil parametreleri kapasitesinde, akış bloğuna kabul edilir ve akış bağlamı ve döngü gövdesi kodunun analizi temelinde, değişiklik kümesi belirtilir. parametrelerin kapasitesinde çekirdeğe geçmek için gereklidir. Çekirdeğin gövdesi, döngünün gövdesinden oluşturulur, döngü indeksini akışın genel sayısı boyunca sayar ve ayrıca, küresel ağ boyutu bölünmemişse döngüyü bunun etrafına doğru bir şekilde sarmanıza izin verdiğini de anlar. iplik grubunun boyutuna göre. Döngünün sonunda, oluşturulan çekirdeğin bir haftalık tıklamasını oluşturan nucall makrosuna bir haftalık tıklama sağlanır.

Prensip olarak, Nemerle dosyalarının ve dosyalarının GPU programlarında ince ayar yapılmasına izin vermek veya bunları yüksek genel yüklere getirmek mümkündür - dizinin, çekirdeğin bir dış görünüm döngüsü ile GPU belleğine kopyalanması ve ardından kopyalanması gerekir geri. Bu nedenle, GPU için programlarda, GPU ile CPU arasında led senkronizasyonuna sahip özel tip diziler vardır. Bu, bir yandan, verileri kopyalamak için program komutlarıyla metni rahatsız etmemeye ve diğer yandan verileri kopyalamak için havai hatları gizlemeye izin verir. Bu tür diziler için, Nemerle'deki en büyük dizilerde olduğu gibi, ek bellek koleksiyonu için belleğin yönetimi kazanılır. Böyle bir dizinin belleğini görüntülemek için, bellek görünümünün en büyük operatörüne yüklenmesi gereken nunew makrosunu kullanın.

Şek. Dizileri katlamak için 4 zvichayna programı verilir ve sağ elini kullanır - benzer bir program, ancak aynı zamanda GPU'da hesaplama için. Bellekten GPU programlarından yararlanmak kolaydır - kodun pratikte değişmediği belleği görme döngüleri ve işlemlerinden önce makroları durdurmak gerekli değildir. NUDA yardımıyla yazılan program 20 satırdan az kod alıyor. Benzer bir program, ancak saf olarak benim C ve OpenCL'de 100'den fazla satır ödünç alıyor.

GPU ile çalışmayı kolaylaştıran krem ​​makrolar, NUDA uzantı sistemi ayrıca döngülerin dönüştürülmesi için ek açıklamalar içerir. Ek açıklamalar aslında özel makrolardır. Örneğin, sabit sayıda yineleme ve tam olarak ortaya çıkan vikonu yogo ile döngüden önce bir satır içi açıklama zastosovuetsya. Açıklama dmine vikonu є derin razgorka döngüsü. "Gliboka razgorka", vücudun dekіlkoh kopyalarının döngüye oluşturulması ve yeniden karıştırılmasının yalnızca döngünün kendisi için değil, aynı zamanda koku bağımsızmış gibi iç içe döngüler için olduğu anlamına gelir.

etki

Bir programcının neden yeni bir mov okuması ve genişleyen mov'un yeni kitaplıklarında uzmanlaşması gerekir? Bunun ana nedeni verimliliktir. Algoritmanın, sanki Nemerle filmindeki diziler ve kayıtlarla çalışıyormuş gibi paralel döngülerde çalışmasına izin vererek, programı GPU için almak üzere ek açıklamaların bir kopyasını ekleyin. Bu durumda program, nVidia ve AMD grafik işlemcileri ile x86 işlemcileri dahil olmak üzere OpenCL desteği olan herhangi bir eklentiye kurulacaktır. Yalnızca OpenCL teknolojilerinin veya CUDA'nın yardımıyla aynı şeyi başarmak için, yalnızca çıktı kodunu yazmak için değil, aynı zamanda ana bilgisayar ile GPU arasındaki etkileşimi iyileştirmek için önemli ölçüde daha fazla kaynak harcamak gerekecektir.

Diğer bir sebep ise oluşturulan kodun üretkenliğidir. CUDA veya OpenCL'de, döngülerin dönüşümü manuel olarak yapılmalıdır, üstelik bu sadece dış görünüm mimarisi içindir. Süreç maliyetli ve af açısından zengindir ve sonuç olarak kodun silinmesi destek için önemli ve elverişsiz olabilir. NUDA'dan bu çalışma ek açıklamalar için yapılabilir. Örneğin, ondalık çekirdekler için, ek açıklamalar satır içi ve dmine için görüntü katlama veya çoklu matris işlemlerini optimize edebilirsiniz. Zbіlshennya rozmіru vyhіdnogo kodu olmadan vdaєtsya podvishchennya üretkenliği iki ila beş kez. Bu durumda, kendileri manuel olarak dönüştürülmüş olsalar bile, düzenin en uygun parametrelerini iyileştirmek ve iyileştirmek için zaman kaybetmeden, kodda 1 kat ve bazen de büyüklük sırasına göre bir artışa yol açacaktır. . Örneğin, nVidia Tesla C2050'de değişken doğrulukla matristen matrise çarpımı en son uygulamadan (CUBLAS 3.2) %40'tan fazla daha iyi bir şekilde aktarmak için NUDA'da yedi satırlı evrensel bir program geliştirildi. Elle yazılan benzer bir program 70 satır kod aldı. Doğal olarak, standart görevler için, üretkenliği artırmak için kodu bir kez manuel olarak yazabilirsiniz, ancak belirli görevler için işçilik maliyetlerinin düşürülmesi ve verimliliğin artırılması söz konusu bile olmayacaktır. Nareshti, verimlilikteki artış, uzantıların kendileri oluşturulmadan önce gerçekleştirilir: bunları ek uzantılar için oluşturmak daha kolaydır, ek geleneksel araçlar için daha düşüktür. Tüm NUDA sistemi, işlevselliğine bakılmaksızın yalnızca 12 bin alır. Ryadkіv kodu, rahuyuchi testleriіv değil. Bu çok değil, örneğin Nemerle filminin derleyicisi (seçim 9025) 130 bine yakın ödünç alıyor. Ryadkiv.

Genişletilmiş dil - bu zor bir araçtır ve paralel hesaplamalarda yogo vikoristannya hala çok koçan kampındadır. Paralel mov programlarının geliştirilmesi alanında pek çok proje var ve onlardan yardım için öğrenip öğrenemeyeceğiniz, kitaplıkları genişletip genişletebileceğiniz. Hareket eden asenkron bloklara kod blokları ve paralel döngüler eklemek mümkündür, bölünmüş diziler gibi programlama küme sistemleri için kullanışlı yapılar oluşturmak mümkündür. Nareshti, ek yardım için Chapel veya X10 gibi yeni bir paralel programlama dilini teşvik edebilirsin.

Andriy Adinets([E-posta korumalı]) - Genç Araştırmacı NIVC MGU (Moskova).



1.1 Microsoft Visual Studio C++

Microsoft Visual Studio, Microsoft'un yazılım geliştirme ortamı ve bir dizi başka aracın entegrasyonunu içeren bir ürün serisidir.

Visual Studio, aşağıdaki bileşenlerden birini veya daha fazlasını içerir:

Visual Basic .NET ve ortaya çıkmadan önce - Visual Basic;

Görsel C++;

Görsel C#.

Çok çeşitli teslimat seçenekleri ayrıca şunları içerir:

Microsoft SQL Server veya MSDE;

Visual Source Safe - dosya sunucusu sürüm kontrol sistemi;

Geçmişte, Visual Studio deposundan önce ürünler şunları da içeriyordu:

VisualInterDev;

Görsel J++;

Görsel J#;

Görsel FoxPro.

Paketin en önemli sürümleri:

Visual Studio 97 - Visual Studio'nun ilk sürümü yayınlandı; Vaughn, Professional ve Enterprise olmak üzere iki sürüm halinde piyasaya sürüldü. Visual Basic 5.0, Visual C ++ 5.0, Visual J ++ 1.1, Visual FoxPro 5.0 ve ASP ara yazılımı - Visual InterDev'i içeriyordu. Visual Studio 97, Microsoft'un çeşitli programlama dilleri için tek bir geliştirme ortamı yaratmaya yönelik ilk girişimiydi: Visual C++, Visual J++, Visual InterDev ve MSDN, Developer Studio adlı tek bir ortam için yarıştı. Visual Basic ve Visual FoxPro, geliştirme için ara katman yazılımı konusunda galip geldi.

Visual Studio 6.0 - Cherry 1998'de yayınlandı - Visual Studio'nun Win9x platformunda çalışan son sürümü. Daha önce olduğu gibi, Visual Basic'i kazanan programcılar arasında popülerdir. Verilen sürüm.NET platformunun ortaya çıkmasından önce Microsoft gibi Windows eklentileri geliştirmek için ana ortamdı.

Visual Studio .NET (kod adı Rainier; dahili sürüm 7.0) - Şubat 2002'de yayınlandı (.NET Framework 1.0'ı içerir). Visual Studio .NET için Service Pack 1 (2002), Ocak 2005'te yayınlandı.

Visual Studio .NET 2003 (kod adı Everett; dahili sürüm 7.1) - Nisan 2003'te yayınlandı (.NET Framework 1.1'i içerir). Visual Studio .NET 2003 için Service Pack 1, 13 İlkbahar 2006'da Yayınlandı.

Visual Studio 2005 (kod adı Whidbey; dahili sürüm 8.0) - Bugün 2005 itibarıyla yayınlandı (.NET Framework 2.0'ı içerir). Yaprak dökümü 2005'in başlangıcında, Express sürümünde bir dizi ürün de vardı: Visual C ++ 2005 Express, Visual Basic 2005 Express, Visual C # 2005 Express ve içinde. 19 Nisan 2006'da Express başyazısı ücretsiz hale geldi. VS2005 için Service Pack 1 ve 14 Aralık 2006'da yayınlanan tüm Express sürümleri. Windows Vista'daki akıl sağlığı sorununu gideren SP1 için ek yama, 3 Haziran 2007'de yayınlandı.

Visual Studio 2008 (kod adı Orcas) - .NET Framework 3.5 ile aynı anda 19 Sonbahar 2007'de yayınlandı. Windows Vista (alternatif olarak XP tarafından desteklenir), Office 2007 ve web eklentileri için eklentiler oluşturmayı amaçlar. LINQ, C# ve Visual Basic'in yeni sürümlerini içerir. Stüdyodan önce Visual J#'a sahip değilsiniz. 28 Temmuz 2008'den itibaren Rusça versiyonu artık mevcuttur.

Visual Studio 2008'in halefi ürünün kod adı Hawaii'dir. 29 Eylül 2008'de Visual Studio 2010 i.NET Framework 4.0'a gelen bazı yenilikleri temsil eden bir duyuru yapıldı.

Visual Studio.Net 7.0'ın hizmetlerini hızlandırmaya yardımcı olan bir eklenti listesi, küçük Windows eklentilerini hızlı ve etkili bir şekilde oluşturmanıza izin verdiği için birçok yeni teknolojiyi ve aracı siparişinize almanıza olanak tanır. ons, artık masaüstü uygulamaları, web uygulamaları ve web servisleri (Web Servisleri) olarak adlandırıldığı kabul edilmektedir. Microsoft şirketi, programcının cephaneliğine yeni bir C# mov (örneğin, C Sharp) ekledi; bu, fahivts'in kabulü olarak bir dekilka oluşturmak, katlanır projelerin geliştirme döngüsünü hızlandıracak.

Saygınızı kazanmaktan suçlu olduğum için ana yenilik, Visual C ++, Visual Basic ve C # 'nin bir ve aynı orta geliştirme IDE'sini (Entegre Geliştirme Ortamı) kazanmasıdır ve bu da farklı karmaşık projeler oluşturma yeteneği verir. diller (karma dil çözümleri). Bagatomov'un orta geliştirmesi .Net (.Net Framework), üç ambarın toplamıdır:

incelenen mov kitaplığı hour vikonannya (Common Language Runtime) seti için zagalna;

satıcı sınıflarının birleştirilmiş kitaplığı (Birleşik Programlama Sınıfları);

web uzantısı modeli (Active Server Pages.Net).

İlk depo, hem vykonannya aşamasında hem de geliştirme aşamasında işlev gören vykonannya saati (Common Language Runtime, kısaltılmış CLR) için bir kitaplıktır. Kodu izleme saatinin altında, zengin katkı maddesi akışının dinamiklerini takip edin, süreçlerin etkileşimini güvence altına alın, güvenliklerini destekleyin, hafızayı görme ve geri çağırma prosedürlerini otomatikleştirin. Geliştirme aşamasında CLR, programcı tarafından değiştirilen tipik görevleri otomatikleştirerek yeni teknolojilerin benimsenmesini önemli ölçüde basitleştirir. Bileşenleri COM standardında (Bileşen Nesne Modeli, kısaltılmış COM - Zengin Bileşen Nesnelerinin Modeli) derlerken elde edilen avantajlar özellikle dikkate değerdir.

Başka bir depo (Birleşik Programlama Sınıfları), satıcıya, API'nin (Uygulama Programlama Arayüzü) programlama arayüzünün bir parçası olan diğer kaynakların yanı sıra, birleştirilmiş, nesne yönelimli, genişletilebilir bir sınıf kitaplığı sağlar. Visual Basic'e dayalı olarak MFC (Microsoft Foundation Classes), WFC (Windows Foundation Classes) öğelerini ve API'nin bir bölümünü birleştirir.

Üçüncü ambarın (ASP.Net) kendisi, HTML arabirimindeki tipik öğelerin geliştirilmesinde nesne yönelimli teknolojiyi kullanma olanağı sağlayan sınıfların bir üst sınıfıdır. Aslında sunucu tarafında vikonuvannya, tsі elemanları tasarım fonksiyonları koristuvach arayüzü için tanınan HTML kodu gibi görünüyor. Bununla birlikte, sunucunun geliştirilmesiyle, nesne programlama modelini umut eden bir sabit cihaz kazanmak mümkündür. Sonuç, web eklemelerini teşvik etmek için çok daha kolay bir süreçtir. ASP.Net'e ek olarak, yeni bir konsepti veya yazılım geliştirme modelini destekliyoruz. Vee, şarkı söyle, onun hakkında chuli, "zayıf" bir müşterinin teknolojisi gibi. Bu modelin temel özü, ürün için değil, hizmet için temel kodu temel almasıdır.

.Net Framework geliştirme ortamını temel alan kod, saldırıya uğramış kod olarak adlandırılır. (yönetilen kod) vіdmіnu vіd vіd zvichaynogo, nekerovannogo kodu üzerinde (Yönetilmeyen kod)..Net kipinde derleyiciler mov'a bakar ve metadata oluşturur (Meta veriler), kodun kendisini nasıl destekleyeceğiniz. Tse, veri türlerini, nesneleri ve mesajları açıklayan ek bilgiler ürettikleri anlamına gelir. Nesne arama ve edinme, işlev başlatma, parametre aktarımı, belleğe nesne yerleştirme için meta verileri aramak için Ortak Dil Çalışma Zamanı kitaplığı.

Önemli bir işlev, sanki kütüphane vikonannya saatinde galip gelmiş gibi, artık vikoristovuyutsya olmadığı için nesnelerin işgal ettiği hafızayı otomatik olarak çağırır. İnovasyon pahasına, birçok bileşenin güvenilirliğini artırmak için çağrı yapılır, böylece her şey genişletilir. Böyle bir rütbe tarafından yönetilenlerin yaşam saati olan Dani'ye kerovanny dani denir. (yönetilen veriler). Kodunuz nasıl є keranovym (yönetilen kod), o zaman törensel haraçlarla besleyebilirsin ya da onları besleyemezsin. Dahası, verilerinizin korunup korunmadığını bilemeyebilirsiniz.

Yazma saati için küresel kitaplık (CLR), CLR kitaplığındaki çeşitli diller ve çeviriler (hedef) üzerine genişletildiği için bir ek ve depo koleksiyonudur. Bu modüller tek bir projeye entegre edilebilir ve birbirleriyle aynı dilde oluşturulmuş şekilde etkileşim kurabilirler. Örneğin, bir sınıf bildirebilir ve ardından başka bir dilde farklı türde bir sınıf oluşturabilirsiniz. Sınıf yöntemlerini başkası tarafından yazılmış bir modül içinde kullanabilirsiniz. Bu entegrasyon, çeşitli dillerin derleyicileri ve araçlarının, CLR'de tanımlanan küresel tip sisteminde ve geliştirmede benimsenen yeni kodlama kurallarında kök salması için mümkün hale geldi.

1.2 C++ Oluşturucu

Borland C ++ Builder - aynı geliştirme ortamını ve Delphi bileşenleri kitaplığını kullanarak C ++ 'da uzantılar oluşturmanıza olanak tanıyan yazılım uzantılarının geliştirilmesi için Borland tarafından yakın zamanda piyasaya sürüldü. Bu yazıda, C++ Builder'ın geliştirilmesinin ortası ve çekirdek arayüzün tasarımında yer alan ana ilkeler ele alınmıştır.

C++ Builder bir SDI eklentisidir, yapılacak en önemli şey araç çubuğunu (sol elle) ve bileşen paletini (sağ elle) yapılandırmaktır. Tabii ki, C ++ Builder'ı başlatırken kilitler için, nesne denetçisi penceresi (sol el) ve yeni bir ek formu (sağ el) görüntülenir. Bir ek biçiminde, düzenleyicinin penceresini kodda bulabilirsiniz.


Şekil 1. Orta C++ Oluşturucu

Formlar, C++ Builder'a yapılan eklemelerin temelidir. Çekirdek arabirim için tanınan ekin oluşturulması, bileşenler adı verilen C ++ Builder nesnelerinin öğelerinin biçimine eklenir. C++ Builder bileşenleri, zengin yan not defterinin yanında görünen bileşen paletinde listelenir. C ++ Builder'ın önemli bir özelliği, kendi bileşenlerinizi oluşturmanıza ve bileşen paletini ayarlamanıza ve ayrıca oluşturmanıza izin vermesidir. farklı versiyonlarçeşitli projeler için bileşen paleti.

Bileşenler görünür (görsel) ve görünmez (görsel olmayan) olarak ayrılır. Görsel bileşenler, tasarım saati ile aynı zamanda bildirilir. Butts - düğmeler ve düzenleme alanları. Görsel olmayan bileşenler, tasarım süresi boyunca form üzerinde piktogramlar olarak gösterilir. Bir saat beklediğiniz kokuyu hiç göremezsiniz, ancak aynı zamanda aynı işlevselliği de göremezsiniz (örneğin, verilere güvenli erişim, standart Windows 95 iletişim kutularını ve daha fazlasını arayın).


Mal. 2. Görünür ve görünmez bileşenlerin seçimi

Forma bir bileşen eklemek için, palet üzerinde istediğiniz bileşeni fare ile seçip, tasarım formunun gerekli alanına farenin sol tuşu ile tıklayabilirsiniz. Bileşen formda görünür ve ayrıca hareket edebilir, boyutu ve diğer özellikleri değiştirebilirsiniz.

C++ Builder'ın dış görünüm bileşeninin üç farklı özelliği vardır: güç, güç ve yöntemler.

Paletten bir bileşen seçip şekle eklerseniz, Object Inspector otomatik olarak o alt bileşenin yetkisini gösterir, böylece onu bu bileşenle birlikte kullanabilirsiniz. Nesne denetçisinin üst kısmında, formda görünen nesnelerden gerekli nesneyi seçmenizi sağlayan, görebileceğiniz bir liste vardır.

Baskınlık, yogayı tanımlayan bileşenin nitelikleridir. eski görünüm ve davranış. Güç sütunundaki birçok bileşenin gücü, kilidin arkasında ayarlandığı için bir değere sahip olabilir (örneğin, düğmelerin yüksekliği). Bileşenin güçleri, güçlerin yanları olarak görüntülenir (Özellikler). Nesne Denetçisi, bileşenlerin yayınlanan gücünü denetler. Crimia yayınlanmış otorite, bileşenler olabilir ve çoğu durumda kamuya açık olabilir (kamuya açık), yayın otoritesi, programın yalnızca bir saat çalıştırılmasıyla kullanılabilir. Nesne denetçisi, tasarım saatinin yetkilerini ayarlamak için seçilir. Yetki listesi, nesne denetçisinin yetkilerinin yanında yayınlanmıştır. Program saati bileşeninin gücünü görüntülemek için tasarım saatinin gücünü değiştirebilir veya kod yazabilirsiniz.

Bileşenin yetkisi atandığında, form üzerinde bileşeni seçmek, nesne denetçilerinde yetki tarafını seçmek, yetkiyi seçmek ve ek yetki düzenleyici için değiştirmek gerekir (giriş için basit bir alana da sahip olabilirsiniz). metni veya listeyi seçebilirsiniz, açılır, diyalog paneli vb.).

1.3 Delfi

Delphi - genişlemenin ortası, Delphi mov programının çevirisi (ortadaki mov'un 7. versiyonundan başlayarak Delphi, eski adıyla Object Pascal olarak adlandırılıyordu), Borland şirketinin geliştirilmesi ve uygulamaların uygulanması 2003'te piyasaya sürülen Borland Delphi paketi 2003'te Object Pascal, esasen Pascal filminin nesne yönelimli uzantılara sahip bir sürüm düşürmesidir.

Delphi - dilin Delphi diliyle programlanması gibi yazılım geliştirmenin ortasıdır. Delphi dili, iyi bilinen Object Pascal programcılarını temel alan, türü kesin olarak belirlenmiş, nesne yönelimli bir dildir.

Delphi, bir dizi en önemli teknolojinin birleşimidir:

    makine kodu için son derece üretken derleyici;

    - nesne yönelimli bileşen modeli;

    - yazılım prototiplerine görsel (ve ayrıca svidky) teşvik edici eklemeler;

    - veri tabanlarını canlandırmak için verileri ölçeklendirme.

    Borland Delphi 8 Studio, kendinizinkini yaratmanıza izin verir. farklı programlar: Rozpodіlenimi bazlarının program yönetimine en basit tek uçlu eklemeler şeklinde. Depodan önce paket, robotu veri tabanları, XML belgeleri, bir üretim öncesi sistemin oluşturulması ve diğer görevlerin tamamlanması ile güvence altına alan çeşitli yardımcı programları içerir. Bu sürümün ana özelliği, .NET teknolojisinin desteğidir.

    Delphi'deki modelin ana vurgusu, kodu olabildiğince verimli hale getirenler için çabalamaktır. Ayrıca herhangi bir sınırlandırma olmaksızın kendi güçlü nesnelerinizi oluşturabilirsiniz. Delphi dili, iyi bilinen Object Pascal programcılarını temel alan, türü kesin olarak belirlenmiş, nesne yönelimli bir dildir.

    Delphi'nin standart teslimatı, 270 temel sınıfın ana nesnelerini içerir. Bu harekette, veritabanlarına ek olarak, programlarda gezinmek ve іgrovі yapmak için manuel olarak yazmak daha iyidir. Grafik kabukları oluşturmak için saygılı ve kullanışlı arayüzü alırsanız, Delphi dilinin anlaşılması için daha erişilebilir, ancak aynı zamanda ve programlamanın daha da zor olduğunu güvenle söyleyebilirsiniz.

    Delphi'nin .NET için tam yaşam geliştirmesinin ilk sürümü Delphi 8'di. Yalnızca .NET için program yazılmasına izin veriyordu. Bu saatte, Delphi 2006'da, standart .NET sınıf kitaplığı olan VCL for .NET'i kullanarak .NET için programlar yazabilirsiniz. Ara katman yazılımı ayrıca C# dilinde .NET eklentileri ve C++ dilinde Win32 eklentileri oluşturmanıza olanak tanır. Delphi 2006, VCL ve CLX kitaplıklarına harika eklentiler yazmak için işlevlerin yerini alacak. Delphi 2006, ECO (Enterprise Core Objects) sürüm 3.0'ın yardımıyla MDA teknolojisini sunar.

    2006'nın sonunda Borland şirketi, JBuilder'ın doğrudan entegrasyonu yoluyla JBuilder, Delphi ve C++ Builder geliştirme ortamlarının daha kapsamlı entegrasyonu hakkında bir karar aldı. 2006'nın başlarında Borland, RAD Studio'nun Turbo adlı daha hafif bir sürümünü yayınladı: Turbo Delphi, Turbo Delphi for .NET, Turbo C#, Turbo C++. 2008 yılı sonunda ürün yelpazesinin geliştirildiği açıklandı.

    2007'nin sonunda CodeGear, Win32 için yeni Delphi 2007 ürün serisinden ve PHP için tamamen yeni bir ürün olan Delphi 2007'nin piyasaya sürülmesinden memnun kaldı. Siyah 2007'de CodeGear, burada hakkında bilgi edinebileceğiniz bir yol haritası başlığı yayınlayacak şekilde gelecek için planlarını sundu.

    25 Eylül 2008'de CodeGear'ın yeni ustası Embarcadero, Win32 2009 için Delphi'de bir basın açıklaması yayınladı. Sürüm, dile kişisel olmayan bir yenilik getirdi, örneğin:

    - filmin tüm bölümlerinde, VCL ve RTL'de kısaltmalar için tam Unicode desteği;

    - zagalnenі tipi, iyi jenerik kokuyor.

    - anonim yöntemler.

    Geniş orta bagatlar yazılım ürünleri, Delphi'de Zroblenih, şunları bilebilirsiniz:

    1. Borland ürünleri: Borland Delphi, Borland C++ Builder, Borland JBuilder 1 ve 2 sürümleri.

    2.Yönetim / veritabanı geliştirme: MySQL Araçları (Yönetici, Sorgu Tarayıcı), IBExpert, TOAD

    3. Mühendislik yazılımı: Altium Designer / Protel (elektronik tasarım).

    4. Grafik görüntüleyiciler: FastStone Image Viewer, FuturixImager, Photofiltre.

    5. Video ve ses programı: KMPlayer (video ve ses programı), X-Player (ses programı).

    6. İnternette bilgi dağıtımı: Skype (VoIP ve IM), QIP, QIP Infium ve R & Q, (Іmi), The Bat! si.Mail (e-posta istemcileri), PopTray (posta doğrulama talebi), FeedDemon (RSS / Atom yeni gruplarını inceleme), XanaNews (yeni grupları okuma), Xnews (yeni grupları okuma).

    7. Müzik oluşturma: FL Studio (eski adıyla FruityLoops).

    8.Yazılım Geliştirme: Dev-C++, Dev-PHP, Maguma Open Studio ve Open Perl IDE (IDE), DUnit (birim testi), Jedi Code Format (program kodu biçimlendirme), Game Maker (oyun yapımı) Yardım ve Kılavuz (geliştirme) yazma sistemi), Inno Setup (kurulum motoru).

    9. Web geliştirme: Macromedia HomeSite (HTML düzenleyici), TopStyle Pro (CSS düzenleyici), Macromedia Captivate (ekran yakalama), Quick Page 2008 (Web geliştirme ortamı).

    10.Web tarayıcıları (MSIE sarmalayıcıları): Avant Tarayıcı, Netcaptor.

    11. Yardımcı Programlar: Spybot - Search & Destroy, Ad-Aware (casus yazılım önleme), jv16 PowerTools, FDK (sistem optimizasyonu için zengin bir işlevsel yardımcı program), Total Commander ve Frigate (dosya yöneticileri), DarkCrypt TC / GUI (şifreleme yazılımı ), ImageSpyer ve StegoTC (yazılım steganografik kompleksi), Copernic Desktop Search, PowerArchiver ve PeaZip (arşivleyiciler), MCubix (akıllı veri analizi), Download Master [indirme yöneticisi], ACProtect (EXE dosyalarını paketlemek ve çıkarmak için bir program).

    12. Metin editörleri: SynEdit, Bred2, KeyNote, cEdit Professional, Programmer's Notepad, UniRed, gleditor.

    13.Alt dosyaların düzenleyicileri (HEX düzenleyicileri): Hexapad

    14. Muhasebe ve dosyalama: Intuit'in Lacerte Profesyonel Vergi Yazılımı, QuickBooks / EasyACCT Deneme Dengesi Yardımcı Programı, Doküman Yönetim Sistemi ve İstemci Veritabanı Onarım Yardımcı Programı gibi tüm alt sistemler dahil.

    15. Elektronik metin okuma ve kataloglama programları: DarkLib (katalogcu ve çok formatlı kitap okuyucu), IxReader (kitap okuyucu).

    2 Porіvnyalny, mevcut nesne yönelimli dilin kısa payının olasılıklarının (ilerlemesinin) ve bunlara dayalı olarak gelişme olanaklarının analizi

    2.1 Pascal Nesnesi

    Nesne Pascal - Apple Computer tarafından Niklaus Wirth ile ortaklaşa geliştirilen Pascal filminin çoğunlukla nesne yönelimli lehçesi. 1986'da Borland, Macintosh için Turbo Pascal ürününe benzer bir Pascal uzantısı ekledi; Turbo Pascal 5.5'in piyasaya sürülmesiyle, uzantı DOS için kullanılabilir hale geldi. Delphi 7 ile başlayarak, Borland resmi olarak dilini Delphi olarak adlandırmaya başladı. Ancak, Object Pascal diğer satıcılar tarafından desteklenmekte ve geliştirilmektedir. Object Pascal'ın (Crimea Delphi) en ciddi uygulamaları TMT Pascal, Virtual Pascal ve Free Pascal'dır.

    Delphi'deki bir programın bir proje dosyasından (dpr uzantılı bir dosya) ve bir veya daha fazla modülden (pas uzantılı dosyalar) oluşup oluşmadığı. Bu tür dosyalar, Object Pascal'ın program birimini tanımlar.

    Kalın yazılan kodda sözde ayrılmış kelimeler, italik - yorumlar (kitapta ayrılmış kelimeler ve yorumlar bu şekilde görülmektedir). Nitekim program metni, ayrılmış kelime programı ile başlar ve kelime sonu ve ardından bir nokta ile biter. Bir sonraki noktadan sonra, sonun program biriminin sonlandırıcısı olarak adlandırılmasına saygı duyuyorum: programın metninde böyle bir sonlandırıcı göründüğü anda, derleyici programın analizini uygular ve metni yok sayar.

    Ayrılmış sözcükler, Object Pascal'da önemli bir rol oynayarak programlara doğal İngilizce dilinde yazılmış metinler yazma gücü verir. Ayrılmış sözcük (ve Object Pascal'daki їх bir düzine düzinedir), programın metnini yogo ve mi okuyacak şekilde analiz eden derleyici için zihinsel bir not taşır: sağa ve aşağıya kızgın aşağı.

    Yorumlar ise derleyici için hiçbir şey ifade etmez ve onları görmezden gelir. Yorumlar, programın diğer alanlarını açıklamaya yardımcı olacak programcı için önemlidir. Programın metninde yorumların bulunması, anlamayı kolaylaştırır ve bunun için bir müfredat yazıldığı için programın uygulama özelliklerini kolayca tahmin etmenizi sağlar. Object Pascal'da, karakter dizisinin kıvrık yaylara yerleştirilip yerleştirilmediğini yorumlamak önemlidir. Yukarıdaki metinde böyle iki yorum ve bir satır var

    ($R*.RES)

    gerçekten yorum değil Bir kod parçasını yazmanın bu özel sırasına derleyici yönergesi denir (bizim durumumuzda - derleyiciye sözde kaynak dosyasının programına bağlanma talimatı). Yönergeler, kıvrık yayın hemen arkasında duran $ simgesiyle başlar.

    Yorumlar hakkında konuşulan dil, Object Pascal'da ara yorum olarak (*, *) ve // ​​sembollerinin bir paritesinin de kullanılabileceğine saygı duyuyorum. Kemerler (* ... *) kıvrık kemerler gibi kötüdür, yani yorum, içlerine metnin bir parçasını dahil etmek için önemlidir ve // ​​sembolleri, derleyiciye yorumun onları takip etmesi ve sonuna kadar denemesi talimatını verir. akış hattı:

    (Tse yorumu)

    (*Tse tezh yorum*)

    // Satırın sonuna kadar olan tüm karakterler bir yorum ekler

    Program kelimesi, programın adı ve programın başlığının onaylandığı bir tire ile ondan sonra gelir. Başlığın arkasında, programcının (veya Delphi'nin) tanımlayıcı programdaki zaferleri açıkladığı bir açıklama verdim. Tanımlayıcılar, türler, değişiklikler, prosedürler, işlevler gibi program öğelerini belirtir (program öğelerinden üç kez sonra bahsedeceğiz). Derhal, ek önermeler için, ayrılmış sözcük kullanımları (zafer) ile başladığından, programcı derleyiciyi programın bu parçaları (modüller) hakkında bilgilendirir, çünkü programın bölümlerinin depolarının nasıl olmadığına bakmak gerekir ve diğer dosyalarda nasıl sıralanabilecekleri. sıralar

    kullanır

    Formlar, 'Unitl.pas'(fmExample) içindeki Unit1;

    Programda Forms Æ Unit1 modüllerini kullanarak dosyanın proje için nasıl oluşturulacağını belirtin. Forms modülü standarttır (yani, zaten Delphi'ye sahibiz) ve Unit1 modülü yenidir, daha önce buna sahip değildik ve bu durumda Delphi, modülün metniyle birlikte dosyaya da gösterilmelidir (içinde 'uniti.pas') ve modülün adı 'form açıklama dosyasına (fmExample) modülle ilişkilendirilmiştir.

    Programın gövdesi, start (start) kelimeleriyle başlar ve bir nokta ile sonlandırıcı end ile çevrilidir. Gövde, Object Pascal filminin birkaç operatöründen oluşur. Dış görünüm operatöründe bir gün uygulanır - değişikliğin değerini değiştirmek, hesaplamanın sonucunu analiz etmek, alt programı tamamlamak vb. Programımızda kazanan üç operatör vardır:

    Uygulama.Başlat;

    Application.CreateForm(TfmÖrnek, fmÖrnek);

    Uygulama.Çalıştır;

    Dış görünümleri, Uygulama nesnesinin yöntemlerinden birine kadar uygular.

    Nesneye, verilerin ve alt programların işlenmesi için intikam alınması gereken programın bir parçasının özel bir kayıt sırası denir. Veriler, nesne alanları olarak adlandırılır ve alt programlar, yöntemler olarak adlandırılır. Nesne bir bütün olarak belirli bir tür görevin yerine getirilmesi için tasarlanmıştır ve programda uygunsuz bir amaç olarak kabul edilir (başka bir deyişle, bir alan veya bir yöntem dışında nesneyi "ziyaret etmek" mümkün değildir). Nesneler, günümüz programlama dilinde son derece önemli bir rol oynamaktadır. Pis koku, programcının çalışma verimliliğini artırmak ve aynı zamanda programlarının geliştirme kalitesini artırmak için icat edildi. Nesnenin iki ana gücü - işlevsellik ve tutarsızlık - kendi kendine yeterli olanı parçalamak veya programın kendi kendine yeterli bir bölümünü oluşturmak ve nesneyi bir programdan diğerine kolayca aktarmanıza izin vermek. Delphi bayileri, programcının programın yüzeyinde zengin olacağı zeglinka gibi görebileceğiniz yüzlerce nesneyi sizin için buldu. Programlamayı teşvik eden bu ilke, nesne yönelimli programlama (OOP) olarak adlandırılır. Uygulama nesnesinde, Windows programının bir bütün olarak normal çalışması için gerekli olan veriler ve alt programlar toplanır. Delphi, yeni bir dış görünüm projesi için otomatik olarak bir Uygulama nesnesi oluşturur. sıra

    Uygulama.Başlat;

    Uygulama nesnesinin Başlatma yöntemine yapılan bir çağrı anlamına gelir. Bu satırı okuduktan sonra derleyici, işlemciye Delphi bayileri tarafından bizim için yazılmış belirli bir program parçasının sonuna gitmesi talimatını verecek bir kod oluşturacaktır. Bir sonraki parçadan sonra (programlar görünür: alt programlardan çıktıktan sonra), işlemci kontrolü programın bir sonraki satırına geçer, CreateForm yöntemi çağrılır, vb.

    Modüller - program parçalarının yerleştirilmesi için belirlenmiş tüm program birimleri. Program kodunun yardımı için, programın tüm davranışsal yönü içlerinde uygulanmaktadır. Bir modülün yapıya saldırıp saldıramayacağı: arayüz seslerinin başlık bölümü uygulama sonlandırıcısının bölümü Konu, bir sonraki modül adından sonra ayrılmış sözcük Unit ve bununla bir nokta ile işaretlenir. Arayüz bölümü ayrılmış Arayüz kelimesiyle ve uygulama bölümü - kelime uygulamasıyla işaretlenmiştir. Modülün sonlandırıcısı, programın sonlandırıcısı gibi є bir nokta ile biter. Programın bir sonraki parçası sözdizimsel olarak doğru seçenek modül:

    birim Birim1;

    arayüz

    // Arayüz seslerinin bölümü

    uygulama

    // Uygulama bölümü

    son.

    Arayüz bölümü, diğer program modülleri tarafından 'görülecek' program öğelerini (tipler, sınıflar, prosedürler ve işlevler) açıklar ve uygulama bölümü, robotik öğelerin mekanizmasını açıklar. Modülün iki bölüme ayrılması, aynı programın diğer bölümleri arasında algoritma alışverişi için manuel bir mekanizma sağlar. Vіn ayrıca zasіb değişimini uygular yazılım dağıtımlarıünlü programcılar arasında. Otrimavshi vydkompilovanie "üçüncü taraf" modülü, programcı otrimu yalnızca ilk arayüz kısmına erişim, bir yakіy'de, daha önce de söylendiği gibi, öğelerin herhangi bir soyulması yoktur. Sesli prosedürlerin uygulanmasına ilişkin ayrıntılar, işlevler, uygulama bölümüne eklenmiş sınıflar ve diğer modüllerde mevcut değildir.

    Sınıflar, Delphi'nin zorlama yeteneklerini uygulamak için ana araç olarak hizmet eder. Arkasında nesnelerin yaratıldığı sınıf є zrazkom, і navpaki, nesne - sınıfın uygulanmasının tse örneği. Object Pascal'da program öğeleri oluşturmak için kullanılan nesneler tür olarak adlandırılır, bu nedenle TfmExamplel sınıfı bir türdür. Tür (tür) sözcüğü, derleyiciye türlerin tanımının koçanı hakkında bilgi veren sessiz vartodan önce ayrılmıştır.

    Standart TForm sınıfı, boş bir Windows penceresinin oluşturulması ve çalıştırılması için gerekli olan her şeyi uygular. Class TfmAynı sınıftaki nesiller örneği

    TfmÖrnek = sınıf(TForm)

    prangalardaki ayrılmış kelime sınıfı için yakіy'de batkiv sınıfının adıyla belirtilir. "Doğma" terimi, TfmExample sınıfının, TForm baba sınıfının tüm olasılıklarını azalttığı ve sanki fmExample formuna yerleştirilmiş gibi, bunlara görünüşte ek bileşenlerin gücünü eklediği anlamına gelir. Tarafımızdan eklenen bileşenlerin bir değişikliği ve sınıfın açıklamasının bir kısmının saklanması.

    Batkiv sınıfının tüm yetkilerinin sınıflara hakim olması ve yeni yeteneklerle zenginleştirilmesi, nesne yönelimli programlamanın temel ilkelerinden biridir. Durgunlukta, hiyerarşi toplantısının en altında ek yazılım boşluklarının vb.

    fmExampie nesnesi, resmi olarak değişkenler olarak adlandırılan program öğeleri olarak adlandırılır. varto nesnesinin seslendirilmesinden önce neden var kelimesi saklıdır?

    Programın öğeleri, derleyici için hala aynı önemi taşıyan en az ilgisiz parçalardır. Öğeler görünür:

    Ayrılmış kelimeler;

    tanımlayıcılar;

    tipi;

    sabitler;

    değiştirmek;

    etiketler;

    alt programlar;

    yorumlar.

    Ayrılmış kelimeler, derleyiciye şarkı yazma ihtiyacı konusunda talimat veren İngilizce kelimelerdir. Ayrılmış kelimeler programda seçilemez, ancak başka amaçlar için sessiziz, başka amaçlar için tanınırlar. Örneğin, ayrılmış kelime, derleyici için katlanmış ifadenin koçanı anlamına gelir. Programcı programda başla, sabit başla, etiket başla adlarıyla değişiklik yaratamaz, aksi takdirde bu, programın başla adlı başka bir öğesi olmazdı.

    Tanımlayıcı - ayrılmış bir kelime, bir tanımlayıcı veya bir yorum gibi programın başka bir unsuru olsun, programcının belirlediği kelimeler. Object Pascal'daki tanımlayıcılar yalnızca Latin harflerinin, Arap rakamlarının ve son ekin yerini alabilir. Diğer sembollerin veya özel karakterlerin hiçbiri tanımlayıcıya dahil edilemez. Bu basit kuraldan, tanımlayıcıların ondalık sözcüklerden oluşamayacağı (kelimelerin hecelenmesi mümkün değildir) veya Kiril karakterleri (Ukrayna alfabesi) içeremeyeceği sonucu çıkar.

    Tipi - tse spetsіalnі konstruktsії movi, zrazki olarak yakі razglyadyutsya derleyicisi, değişen, sabitler ve işlevler gibi programın diğer öğelerinin oluşturulması için. Bir türün konuşma derleyici için iki önemli şeyi tanımlayıp tanımlamadığı: öğenin yerleşimi için görülen bellek (sabit, değişiklik veya işlevin döndüğü sonuç) ve programcının çalışabilmesi için geçerli eylemler kümesi. bu tür elemanlar üzerinde. Bir programcı olsun, tanımlayıcının açıklamaların dağıtımındaki açıklamalardan suçlu olduğuna saygı duyuyorum (muzaffer operatörlerin koçanı önünde). Bu, derleyicinin, öğenin tanımlayıcı olarak atandığı türün (srazok) asaletinden sorumlu olduğu anlamına gelir.

    Sabitler, bir robot programı sırasında değerlerini değiştiremedikleri için hafıza alanlarını belirler. Diğer program öğeleri gibi, sabitlerin de kendi adları olabilir. Sabitlerin adı, ayrılmış kelime const ile yeniden tanımlanabilir (İngilizce Sabitlerden - sabitler). Örneğin, const sabitleri atayabilirsiniz.

    Kbayt = 1024;

    Mbayt = Kbayt * Kbayt;

    Gbayt = 1024 * Mbayt;

    eski sayıları değiştirmek için

    1048576 (1024 * 1024) ve 1073741824

    (1024 * 1024 * 1024) açıkça Mbyte ve Gbyte yazın. Sabitin türü, gösterim yöntemiyle belirlenir ve program metninde derleyici tarafından kolayca tanınır, bu nedenle programcı sabitin adını değiştiremez (yani, programda açıkça hecelemeyin). .

    Değişikliklere hafıza alanlarındaki değişiklikler neden olur, yani. Bunun yerine robotik programlar sırasında değiştireceğiniz bu tür її dilyanki ile. Programda vіdmіnu vіd sabitleri zmіnі zavzhda vosloshuyutsya üzerinde. Değişiklik tanımlayıcısının ilk kez, değişikliğin sorumlu tutulacağı görüntü için türün adına çift işaret konur. Bölünen sesin değişmesi (değişim) kelimesi değişebilir. Örneğin:

    var

    inValue: Tamsayı;

    değere göre: Bayt;

    Burada inValue tanımlayıcısının tamsayı türüne değiştirildiği ve byValue tanımlayıcısının Byte türüne değiştirildiği bildirilir. Standart (yani, Object Pascal) tamsayı türü, bunun yerine -2 147 483 648 ila +2 147 483 647 aralığında bir sayı olarak kabul edilen dört baytlık bir bellek alanı atar ve standart Byte türü - bellek 0 ila 255 aralığında işaretsiz bir sayının yerleştirildiği 1 bayta kadar boşluk Örneğin, sürüm 1'deki Tamsayı türü 2 yay ödünç alır ve -32768 ila +32767 arasında bir değer aralığına sahip olabilir.

    Etiketler - programdaki işleçlerin adları. İşaretler yalnızca nadiren ve yalnızca programcının derleyiciye programın hangi operatörünün saldırıya uğramaktan suçlu olduğunu söylemesi için kazanır. İşaretler, beğen ve değiştir, programda her zaman sağır olun. Ayrılmış kelime etiketinin (etiket) önüne etiketlerin seslendirmesini ayırdım.

    Pіdprogrammy - programın özel olarak tasarlanmış parçalarını kullanın. є їх alt programının mucizevi özelliği, programın metni açısından önemli bir bağımsızlıktır. Görünüşe göre alt programların gücü її tіlі'da yerelleştirilmiştir. Tse, programcının alt programdaki hiçbir şeyi değiştirmemesi gerektiği anlamına gelir, kural olarak, alt programın konumunu değiştirmek için sim ile iletişim kurmanıza gerek yoktur. Bu şekilde, alt programlar, programları yapılandırmanın, yani programları bir dizi zengin bağımsız parçaya ayırmanın bir yoludur. Büyük yazılım projeleri için yapılandırma kaçınılmazdır, bu yüzden Delphi programlarında alt programlar sıklıkla yenilir.

    Object Pascal'ın iki tür alt programı vardır: prosedürler ve fonksiyonlar. İşlev aynı türden bir sonuç üretebildiğinden, tanımlayıcı sabitler ve kazananlardaki değişikliklerle sırayla değiştirilebildiğinden, işlev yalnızca bir prosedür olarak değiştirilir. Örneğin, işlev atanır gibi

    Fonksiyon MyFunction: Tamsayı;

    ve değişim var

    X: Tamsayı;

    o zaman böyle bir atama operatörü mümkündür:

    X:=2*İşlevim-l;

    Bu prosedür ifadeye dönüştürülemez, çünkü prosedür kendisiyle ilişkili bir sonuçla sonuçlanamaz:

    Prosedür Benim Prosedürüm;

    :

    X:=2*Prosedür-l; // Bağışlamak!

    2.2 C++

    C ++ - C filminin bir uzantısı - 1979'da AT & T Bell Laboratories bilim merkezinde (New Jersey, ABD) araştırmacı olan Bjorn Stroustrop tarafından yazılan bir genişleme mektubu. ++ ile St. Ale'deki her şeyin intikamını almak için ayrıca nesne yönelimli programlamayı (Object Oriented Programming, OOP) destekler. Harika programların geliştirilmesini kolaylaştırmak için C++ C++ kreasyonları. Programın oluşturulmasından önce fiyatların nesne yönelimli programlanması.

    Bir sürü başka detayın arkasında C ++ є süper imkansız movi programlama C. Olasılıklar suçu, yakі evet C, C ++ gnuchki verir verimli çalışma yeni türlerin belirlenmesi. Vikoristovuyuchi vyznachennya yeni tipler, sadece ekleme kavramlarını gösterir, programcı programı parçaları kolayca kontrol edecek şekilde genişletebilir. Programları yönlendirmenin bu yöntemine genellikle veri soyutlama denir. Türler hakkında bilgi, koristuvaches olarak belirlenen türlerin gerçek nesnelerinde bulunur. Bu tür nesneler, türleri derleme aşamasında eklenemezse, bu tür durumlarda zaferlerde basit ve üstündür. Zastosuvannyam ile programlama, bu tür nesnelere genellikle nesne yönelimli denir. Doğru seçim ile yöntem daha kısa, anlaşılması daha kolay ve programların kontrolü daha kolaydır.

    C ++ є sınıfının temel kavramları. Koristuvachem olarak bilinen sınıf - tse tipi. Klas güvenli veri toplama, garantili veri başlatma, türleri bir coryst olarak belirlenmiş türler için örtülü olarak dönüştürme, bir türü dinamik olarak ayarlama, bir corysteve bellek yönetimi ve değiştirme işlemlerinin mekanizmaları tarafından kontrol edilir. C++ daha zengin olmalı, C'de daha düşük olmalı, daha fazla program modülerliğine ve tip kontrolüne izin vermelidir. Movі ayrıca, doğrudan sınıflarla bağlantılı olmayan, sembolik sabitler, işlevlerin satır içi ikamesi, yazmak için işlev parametreleri, işlev adlarının permütasyonu, açık belleğin çalışması ve kontrol tipini içeren bir iyileştirmeye sahiptir. C++, C'yi donanım güvenliğinin ana nesneleri (bitler, baytlar, sözcükler, adresler, vb.) Tse, koristuvachy olarak adlandırılan tipi etkili bir şekilde uygulamanıza olanak tanır.

    C++ ve standart kitaplıkları taşınabilir olacak şekilde tasarlanmıştır. Şu anda, filmin uygulanması C'yi destekleyen çoğu sisteme gidecek. C ++ ile C kitaplıklarını hackleyebilirsiniz ve C ++ ile C programlamayı destekleyen araçların çoğunu hackleyebilirsiniz.

    Bir C++ programı, türlerin, işlevlerin, değişikliklerin ve sabitlerin açıklamalarını yazmak için kullanılabilen çok sayıda harici dosyadan oluşur. Sob im'ya bir ve aynı nesneye gönderildiği için farklı dış dosyalarda bulunabilir, aynı olarak tanımlanmaktan suçludur. Örneğin:

    harici çift sqrt(double);

    harici giriş cin;

    Sol dosyaların rahatlığını sağlamanın en basit yolu, bu tür açıklamaları başlık (veya başlık) dosyaları adı verilen okremi dosyalarına koymak ve ardından, açıklamalara ihtiyaç duyduğunuz dosyalardaki başlıkları kopyalamak için açmaktır. Örneğin, sqrt'nin açıklaması, math.h standart matematik fonksiyonlarının başlıklarına kaydedilmişse ve 4'ün karekökünü yakalamak istiyorsanız, şunu yazabilirsiniz:

    #katmak

    //…

    x=kare(4);

    Oskіlki zvichaynі başlıkları, sanki tekrardan suçlu değilmiş gibi, diğer zengin dosyalara, açıklamaların kokusuna dahil edilmiştir. Örneğin, işlevlerin başlığı yalnızca satır içi işlevler için verilir (div. Objective) ve başlatıcı yalnızca sabitler için verilir (div. Objective). Tsikh vipadkіv bağının arkasında, manşetler tipi hakkında bir bilgi hazinesidir. Vіn, programın okremo derleme bölümleri arasındaki arayüzü korur.

    Örneğin, yayların yaylarına yerleştirilen dosyanın adını dahil etme komutu, standart dizinde (genellikle / usr / include / CC) aynı ada sahip dosyaya eklenir; başka yerlerde bilinen dosyalarda, balenli patilerde alınan isimlerden yardım isterler.

    Örneğin:

    #include "math1.h"

    #include "/usr/bs/math2.h"

    akış dizininden math1.h'yi ve /usr/bs dizininden math2.h'yi içerir.

    Burada, programın poposunun küçük bir sonu tanıtılır, bu sırayla bir dosyada gösterilir ve diğeri başka bir dosyada gerçekleştirilir. Header.h dosyası gerekli türleri belirtir:

    // başlık.h

    harici karakter * program_adı;

    harici boşluk f();

    main.c dosyasında ana program bulunur:

    // ana.c

    #include "header.h"

    char * prog_name = "iyi ama iyi değil";

    ana()

    {

    F();

    }

    ve f.c dosyası başka bir satırdır:

    // fc

    #katmak

    #include "header.h"

    geçersiz f()

    {

    cout<< prog_name << «\n»;

    }

    Programı şu şekilde derleyebilir ve çalıştırabilirsiniz:

    $ CC main.c f.c -o saçma

    $aptal

    iyi, ale povny

    $

    Veri yerelleştirme, veri soyutlama ve nesne yönelimli programlama teknolojisini destekleyen Mova, benim rezil tanımam için ayrıca şunlardan da suçlu:

    Buti, geleneksel EOM üzerinde uygulanmaktadır;

    Geleneksel işletim sistemlerinin ortasında Vykonuvatisya;

    Daha yüksek programlama ile verimlilik açısından geleneksel dil programlamasıyla rekabet edin;

    Olası eklemelerin çoğu için uygundur.

    Tse, verimli sayısal toplamalar için araçları dahil etmekten sorumlu olduğunuz anlamına gelir (genel giderler olmadan kayan aritmetik, aksi takdirde Fortran daha iyi görünür). Belleğe erişme yeteneğinin dahil edilmesi nedeniyle (sürücü yazmak için gereklidir). Belirli işletim sistemlerinin arabirimlerini kullanarak işlevlere (call-zvernenya) çağrı olasılığı nedeniyle. І, ek olarak, işlevlere geçme yeteneği nedeniyle, diğer dillerde yazalım ve şimdi işlevlere, diğer dillerden nesne yönelimli hareketlerle yazalım.

    Tablo 1, nesne yönelimli dilin avantajlarını ve dezavantajlarını göstermektedir.

    Tablo 1 - Nesne yönelimli dilin avantajları ve eksiklikleri

    artılar

    eksi

    Sınıflar, uygulama ayrıntılarından soyutlama yapmanızı sağlayan basit araçları kullanmanıza izin veren mavi bileşenler tasarlamanıza olanak tanır.

    Sınıf, düşüş ve dinamik bağlantı gibi temel kavramları anlamak gerekir.

    Veriler ve işlemler aynı anda aynı gün ışığını oluşturur ve prosedürel programlama zamanlarında sıklıkla olduğu gibi pis koku tüm programlarda "yayılmaz"

    Bagatorazov'un öğrenme yöntemi, programcının harika sınıf kitaplıklarını tanımasına yardımcı olur

    Kod ve verilerin yerelleştirilmesi, yazılım desteğinin doğruluğunu ve güvenilirliğini artırır

    Tasarım sınıfları - katlanmış, alçaltılmış ve alçaltılmış tasarım

    Bilgilerin kapsüllenmesi, en kritik verileri yetkisiz erişime karşı korur.

    Daha da önemlisi, klas, "mesh" olasılığına bakmamak.

    Parlayan sistemler yaratma fırsatı verir

    Duyusal rozpodіlu hafızasında verimsizlik

    Nesne yönelimli teknoloji zaluchaet koristuvach podvischennoyu prodvischennoy protyag vsogo zhyttєvogo yazılım döngüsü, gerçek іddachi sermaye yatırımına getirmek için scho. Artan üretkenlik, nesne yönelimli sistemlerin bazı ana yetkililerinin varlığı ve bunlardan neyin çıkarılacağı ile elde edilir:

    ana modellerin kalitesindeki nesnelerin seçimi, gerçek dünyanın katlama sistemlerinin temel modellerine izin verir;

    nesne yönelimli metinlerin esnekliği, koristuvachın gücündeki değişikliklere tepki olarak kıvranır;

    standart bileşenlerin yeniden seçimi, yeni uygulamalı görevlerin geliştirilme saati olarak azaltılır, böylece oluşturulan kod kullanılır;

    Yogayı daha esnek hale getirmek ve operasyon maliyetlerini azaltmak için yazılım kolaylığı

    Bu belirgin avantajların yanı sıra, yazılım geliştirme için nesne yönelimli dil ve programlama ortamları seçeneği vardır. Shvidke prototipleme arayüzleri, uygulanan görevin ana gövdesinden bağımsız olarak test etmeye izin verir. Böyle bir yaklaşımın önemi en çok projelerde kendini gösterir, bu tür görevlerin uygulanması belirsizdir veya anlaşılması önemlidir.

    Şu anda, nesne yönelimli sistemlerle ilgili projelerin çoğunun erken bir aşamada olması nedeniyle üretkenlik artışına ilişkin çok az nesnel tahmin var. Şirketlerden biri olan STC Technology (İngiltere), zrobila porivnyalnye estimatsii, pіdrahuvala olarak, nesne yönelimli bir projenin geliştirme aşamasının yarım saat daha az sürdüğünü, alt görevin geleneksel bir sistemde benzer olduğunu ve dörtte birini aldığını söylüyor. bir kişi-yıl maliyeti.

    Her şeyden önce, nesne yönelimli sistemlerin önemi, gerçek dünyayla olan bağlantılarının doğasından bellidir. Satıcı, tüm önemli fiziksel nesneleri ve ilgili yazılım nesnelerini belirterek fiziksel bir sistemi bir yazılıma dönüştürebilir. Karşılıklı olarak ilişkili fiziksel nesne grupları, daha yüksek sınıflardan başlayarak ve onlara uzmanlık ekleyerek bir hiyerarşi içinde düzenlenebilmeleri için sınıflara dönüşür. dekilkoh sınıfları için rezil olan prosedürler, çıkartma süper sınıfındadır ve onlar tarafından düşürülür.

    Örneğin, Combuston Engineering (Columbus, Ohio) tarafından geliştirilen bir simülasyon sisteminde, bir grup sensör, tüm sensörlerin genel gücünü belirleyen Sensör sınıfı olarak adlandırılır. Sistemin cilt tipi sensörü için, örneğin optik veya kızılötesi için alt sınıflar ayarlanır. Pis koku, sanki tüm sensörler için bloke edilmiş gibi ve yalnızca optik veya kızılötesi sensörler için ek prosedürlerden kaçınmak için sıcak prosedürlerle azaltılır.

    Nesne yönelimli pidkhid, gerçek dünya ile bilgisayar modeli arasındaki kavramsal anlayışı değiştirir. Win, analistlerin ve tasarımcıların sistemin yapısını net bir şekilde anlamalarını sağlar. Yak koristuvachiv'den birini belirtir: "Programın metni ile düşüncelerimi düşündüğüm gibi ifade edebilirim." Bu nedenle, nesne yönelimli sistemler, endüstriyel uygulamalarda, telekomünikasyonda, askeri ve savunma komplekslerinde katlanır fiziksel sistemlerin modellenmesinde etkilidir.

    Nesne yönelimli sistemlerin bir diğer avantajı da nesneleri yardım yoluyla birbirine bağlama yöntemidir. Daha fazla indüklenen popoda, zagalnі podomlennya tipi "pochati vymir", sistemin tüm sensörlerini kullanmak mümkündür; onlardan belirli bir sırayla cilt. Fiziksel sensörlerden biri eskiyse, şarap değiştirilecektir. Sistemin sınıfı hemen değiştirilir: yeni bir sensör tipi için, yeni sensöre özgü prosedürlerin yerine yeni bir sınıf getirilir. Üst sınıfta yeni bir sürüm düşürme sınıfı ve diğer gerekli prosedürler. Yeni bir sensörün çıkarılmasıyla, şarabın tanınması yeni bir kıdemli rütbeye onaylanır. Tüm sistemin gövdesi ve ana mesajlar değişmeden bırakılmıştır.

    Nesne yönelimli sistemlerin esnekliği, yumuşak ortamlarda, örneğin programlama teknolojisinde koristuvachiv için benzersiz bir avantajdır. Örneğin, Computer Science Corporation, Design Generator ürününü dağıtmak için nesne yönelimli bir Smalltalk dilini test etti. Şirket, nesne yönelimli teknolojinin geliştirilmesinin, yazılım perakendecilerinin artan rekabetin zihninde pazardaki yeni teknolojilere hızlı bir şekilde yanıt verebileceğinin farkındadır.

    Nesne yönelimli sistemlerin üçüncü sorunu, sınıfların diğer sınıflardaki prosedürleri bozabilmesidir. Şirket, belirli ihtiyaçlar için tanınan prosedürleri bulmanıza ve yaklaşan uygulamalı görevlere dahil olmanıza olanak tanıyan en sık kullanılan sınıfların kitaplıklarını derleyebilir. Örneğin, yazılım geliştiren bir şirket, silindir, koni veya küre gibi grafik ilkel öğeler için bir sınıf kitaplığı oluşturabilir. Koku, uç peretina veya gül türünün alt sınıflarının temelini oluşturur. Harici metinlerin yeniden seçilmesi, geliştirme süresini kısaltır ve proje planlayıcılarının çeşitli alanlarda görevleri gözden geçirmesine olanak tanır.

    Geçmişte, matematiksel hesaplama türleri için standart görevlerin gözden geçirilmesi için yazılımın rozrobnik'leri için alt program kitaplıkları kullanılıyordu. Nesne yönelimli sistemler, programlarda çok çeşitli zengin metinler sağlar. İlk yazarlardan biri olan Cadre Technologies, yeni uygulamalı görevler için program metinlerinin farklı nesne yönelimli programlarda 5: 1 oranında önemli ölçüde değiştiğini kaydetti.

    Nesne kitaplıkları, bağımsız posta çalışanlarından da satın alınabilir. Şu anda, bu tür sınıf kitaplıkları, piktogramlarla koristüvatik arayüzlerin oluşturulması için en aktif şekilde satın alınmaktadır. Bu tür arayüzleri sıfırdan oluşturmak ve yazmak kolay bir iş değildir. Apple ve Whitewater Group gibi şirketler, Pencere, Menü, Kaydırma Çubuğu ve Simge gibi bir dizi temel sınıfa dayalı olarak bu tür arabirimleri etkinleştirmek için araçlar sağlar. Koristuvachі bu sınıf gibi vikoristovuvat yapabilir, bu yüzden arayüze, örneğin özel piktogramlar eklemek için podklasi, scho.

    Dördüncü öncelik, nesne yönelimli yazılım modüllerini tamamlama yöntemidir. Geleneksel yazılım, erişime ve veri değişikliğine izin veren veri ve prosedürlerden oluşur. Veriler ve prosedürler okremo ile tamamlanır, böylece veri yapısı değişiklikleri farklı harflerle yazılmış farklı modüllere eklenir. Nesne yönelimli bir sistemde, veriler ve prosedürler aynı anda tek bir paketin - bir nesnenin - parçası olarak kabul edilir. Verileri değiştirirken, prosedürün tüm görevleri kolayca tanımlanır ve aynı anda değiştirilir. Değişimin kırıkları sistemin sadece bir alanında genişliyor, diğer yan etkiler tüm sistem üzerinde değişiyor.

    Görünüşe göre, desteğe yapılan harcamalar, programlama sisteminin yaşam döngüsü maliyetinin %80'ini oluşturuyor. Büyük katlama sistemlerinin perakendecileri, genellikle modifikasyon ihtiyacına bağlı kalarak, destek maliyetini düşürmenin ve ürünlerinin güvenilirliğini artırmanın yollarından biri olarak çevre koruma düzeyine ölçekleniyorlar. Örneğin, Wild Leitz (Toronto, Kanada), bir coğrafi bilgi sisteminin geliştirilmesi için nesne yönelimli Objective-C dilini kazandı. Şirket, bu dildeki metinlerin çıktısını, boru hattında yattığı için övdü, pis pis kokular kısa, sistem bağlantı noktası başına bir modülü değiştirme maliyetini azaltan "vücuttaki konuşma" izolasyonu ile.

    Düzgün bir şekilde bölünmüş programlar, yalnızca işlevsel güçlerini tatmin etmekten değil, aynı zamanda aşağıdakiler gibi yetkilerle özgür olmaktan da sorumludur:

    tekrarlanan zafer;

    genişletilebilirlik;

    yanlış verilere ısrar;

    sistemiklik.

    Doğru nesne yönelimli programlama stili, bu güçlerin varlığını sağlar. Sistematikliğin gücü temelinde açıklayalım.

    Program, "büyük blok programlama" da kısıtlı bir operatörün kapasitesine takılı kalmayabileceğinden, sistemsellik gücüne sahip olabilir. Büyük blok programlama, yeni yazılım sistemlerinin geliştirilmesinde büyük yazılım birimlerinin (alt sistemler veya modüller gibi) geliştirilmesinden daha sistematiktir.

    Modern nesne yönelimli sistemlerin (OOS) değişimi, eksiksiz olmamaları nedeniyle mümkün olan en büyük ölçüde. Podolannya tsikh obmezhen - yazılım satıcılarına tse viklik ve piyasada görünen yeni post-worker olasılığı. Bu bölümde, nesne yönelimli sistemlerin geliştirilmesindeki sorunlar tartışılmakta ve zayıflıklarının iyileştirilmesi için bir zaman ölçeği verilmektedir.

    Belirli bir saatte nesne yönelimli sistemler için ana geçiş - teknik ve idari personel için destek. Opir'i, mevcut pazardaki nesne yönelimli ürünlerin zenginliğinin olmaması açısından doğal olarak ele alın. Yetersizlik, yeni teknolojilerin en güçlüsü olan bir dizi sorunun uygulanmasında kendini gösterir:

    bir dizi standart platforma gelişmiş erişim;

    anahtar sistemler ve veri tabanları ile entegrasyon ihtiyacı;

    büyük ölçekli sistemlerin programlanması için standart dışı yazılım.

    Bilgisayar endüstrisinin ana akımına giren nesne yönelimli bilgi teknolojisinin başarısı. Böylece, belirsiz sorunlarla karşılaşmanın yanında oldu. Ale ce yolu bitirmek ve dovgy bir saat meşgul. Nesne yönelimli sistemlerin ilk çalışanlarından bazıları, ürünlerine temel olarak standart dışı patentli dilleri seçerek sorunlarına eklendi. Büyük sermaye yatırımlarını ellerinden alan bu tür şirketler, pazardaki nişlerini işgal etme mücadelesinde büyük sorunlarla karşılaşacaklar.

    Nesne yönelimli dil, geleneksel mimariler üzerinde etkili bir şekilde uygulanan mekanizmalar üzerine temellendirilemez ve hala böyle bir dilin seçimi, karizmatik bir tanıma filmi gibi aktarılmaktadır. Aynı şey, üretkenlik ve hareketlilik açısından dar bir alan olarak görünebileceği için smіtya koleksiyonu hakkında da söylenebilir. Hareket ve derleyicinin daha fazla nesne yönelimi. Ancak bu, kritik olmayan durumlarda zihnin seçimini galip getirip, gerektiğinde hafızanın kontrolünü ele geçirebilme yeteneğinin hatasıdır. Bir alternatif, zihnin katlanmasıyla ilgilenmeyen, ancak anılarını beslemek gibi ipuçları tasarlamanıza izin veren dildir. C++ örnek teşkil edebilir.

    Obrobka vynyatkovyh durum ve özellikle kaynakların seçimi ve ayrıca sorunlar. İster zasіb movi, ister zv'yazkіv editörünün yardımı için yak realizuetsya, tüm tezh için daha fazlası hareketlilik açısından bir sorun teşkil edecektir.

    Düşük gelirlilerin diline dahil olmanın bir alternatifi, düşük gelirlilerin uzmanlaştığı kritik durumlarda kazanmaktır.

    Nesne yönelimli programlama, geri dönüş mekanizmasıyla aynı programlamadır. Verilerin soyutlanması - seçilen varyant türlerinin tüm programlaması. Küçük bir hata ile, nesne yönelimli programlama, verilerin soyutlanmasından kaynaklanabilir ve kaynaklanmaktadır.

    Tsya mekaniği, etkili olabilmesi için uygun hareketli desteğe ihtiyaç duyacaktır. Verilerin soyutlanması için hile yapmak fazlasıyla yeterli; nesne yönelimli programlama için, sistem çapında bir yazılım geliştirme maliyetine ihtiyacınız olacaktır. İftira niteliğindeki itiraf hareketinin otoritesinin annesi için, suçluluk dilinin şirketin geleneksel çalışanlarını etkili bir şekilde kazanmasına izin verilir.


    Mal. 3. Geometrik nesnelerle zengin modüler bir robot sisteminin organizasyon şeması basitleştirilmiştir.

    Sistemin zengin modüler yapısı ilerlemelere yol açabilir.

    Genişleme imkanı. Yeni sınıflar ve etkileşimleri eklemek, zaten açık olan kodu yeniden yazmak değil, yeni modülleri genişletmektir.

    Kodu tekrar ziyaret etme imkanı. GeometricObjects modülü, DemonstrationWindows olduğu için herhangi bir eke dahil edilebilir - Görselleştirmeyi de dahil edebilirsiniz.

    Programların adım adım uygulanması imkanı. Yani ilk sürüm GeometricObjects, DemonstrationWindows ve Visualization içerebilir, diğeri Hesaplamalar ekleyebilir vb.

    Virobniztva konveyör yöntemini istifleme imkanı, yazılım geliştirme sürecinin "paralelleştirilmesi".

    Programlamamda dinamik olarak C++ kullanımına izin verilmemesinin birkaç nedeni var.

    Statik arayüz ve uygulama sınıfı. Sınıfın arayüzü altında, özniteliklerinin ve yöntemlerinin sırası anlaşılır (sınıfın tanımıyla belirtilir; İlk olarak, bu yüzden bir başkası için de suçludur, ancak zaten derlemenin başlangıcına atanmıştır, sınıfa çalışma zamanı ekleyebilir, değiştirebilir veya yöntemi değiştirebilir, zaten bilineni geçersiz kılabilirsiniz.

    Ancak yeni modüllerin geliştirilmesiyle, zaten gerekli olan sınıfı değiştirme ihtiyacı nedeniyle sürekli olarak suçlanıyorsunuz! Bu nedenle, Hesaplamayı hesaplarken, çizginin uzunluğunu ve şeklin alanı olan hassas noktadaki eğriliği hesaplayan işlevlere ihtiyacınız olabilir. Görselleştirme söz konusu olduğunda, düz şekiller için renkler, tovshchina çizgileri gibi değişikliklere ihtiyaç duyulabilir, genellikle nirengi suçlanır (trikutniklerde rozbittya). Dahası, daha fazla işlevin yenilenmesi, nesnenin türüyle tamamen aynıdır: pis koku, düz çizgiler, kіl ve daha geometrik nesneler için yazılanla aynıdır.

    Statik tip kontrolü.

    p-> f() ifadesi ayrıştırılırken, derleyici "suçlu ama suçludur" derleyici p'nin talep edildiği nesnenin, f() yönteminin intikamını etkin bir şekilde almasıdır. Navit şablonlarının (şablon), farklı nesne türlerini işleyen kod oluşturmaya yardımcı olması gerekmez: derleme ve seçim aşamasında, bunlardan belirli bir cilt tipinde sabitlenebilecek ne tür bir kurulumun gerekli olduğunu bilmek gerekir. . Sınıfları değiştirmeden ve muzaffer if-then-else + dynamic_cast yapılarını değiştirmeden 1'i listelemeyi deneyin ama deneyin.

    /*

    Listeleme 1. Değişken polimorfizm olasılığı arasındaki türlerin statik kontrolü

    */

    temel sınıf();

    A sınıfı: genel temel sınıf

    {

    halk:

    A();

    // A sınıfı intikam yöntemi geçersiz f ()

    sanal boşluk f();

    };

    B sınıfı: genel temel sınıf

    {

    halk:

    B();

    // B sınıfı yöntemin intikamını almaz void f ()

    };

    C sınıfı: genel temel sınıf(...);

    /*

    yazmam gerek

    (Yukarıdaki sınıf açıklamalarını değiştirmeyin ve if-then-else + dynamic_cast kullanmayın):

    */

    bool CallF(temel sınıf*p)

    {

    /*

    p-> f() ayarlanmışsa, işlevi çağırın ve doğru yapın,

    aksi halde - yanlış çevir

    */

    }

    C++, CallF işlevini uygulamanın üç yolunu sunar. İlk (en çok yaşayan) - bu alt sınıflarda temel sınıfa bool f () yöntemini ekleyin, de vin ma sens - gerekli değerleri çevirin ve diğerlerinde doğruya çevirin - yanlışa çevirin. Diğeri ise baseclass_f sınıfı oluşturmaktır: public baseclass, decrement new all classs, how to avenge f() ve wink dynamic_cast< baseclass_f *>. Üçüncüsü, CallF'te if-then-else + dynamic_cast kötüdür. İlk seçenek, temel sınıfı işarete getirmektir, bundan önce temel sınıfa erişilemez olabilir (örneğin, "kapalı" bir modüle geçin). Başka bir yol da tüm nesne sistemini yeniden tasarlamaktır. Sırada CallG, CallH yazmak gerekli olacak mı? Açıkçası, C ++ çok fazla düşüşü teşvik ediyor, ancak böyle bir yaklaşıma sahip sınıfların hiyerarşisi çok karmaşık hale geliyor, birden fazla minyat її “burada burada”. Üçüncü yöntemin eksiklikleri bir kereden fazla tartışıldı: f () 'yi destekleyen yeni bir sınıf her bildirildiğinde CallF işlevinin yeniden yazılması gerekecek.

    Sınıf nesnelerinin adını değiştirmek için çalışma zamanının imkansızlığı. Nesneler bir sınıfa ait olsaydı daha iyi olurdu, o zaman aynı şekilde davranmaları gerekirdi. Ana sınıf olarak, güç değil - "Spadshchina" ve orada istediğinizi değiştirin. Bununla birlikte, sınıftaki nesnelerin çevresini dinamik olarak değiştirme yeteneği genellikle daha bayat görünür. Açıkçası, serpinti, sınıfların işlevselliğini değiştirmenin esnek ve manuel bir yoludur. Ancak yaratılış nesnesi olarak artık bu yöntemi değiştirmek, yeni yöntemler eklemek ve değiştirmek mümkün değildir. Kimin için temel nesneyi görmesi ve ardından yeni bir tane yaratması gerekiyor. Öyleyse, nesnenin verilerindeki tüm göstergeleri güncellemeye özen göstererek güç tasarrufu yapmanız gerekir. Ayrıca, yeni sınıflar oluşturur oluşturmaz tüm makul sınırları aşabilirsiniz.

    visnovok

    Nesne yönelimli programlamamın en büyük genişlemesi delicesine C++. Vіlno rozpovsyudzhuvanі komertsіynі sistem programıuvannya C ++ pratik olarak herhangi bir platformda іsnuyut. G++ programlama sistemi, kardeşlerimize C++ filmlerinin en iyi derleyicilerinden birinin mevcut metni hakkında iyi ve ayrıntılı yorumlar yapma fırsatı verdiği için geniş ölçüde genişletildi. Nesne yönelimli yaklaşımın ana fikirleri bir sonraki pozisyona dayanmaktadır: program gerçek bir sürecin modelidir, gerçek dünyanın bir parçasıdır; gerçek dünyanın veya onun bir kısmının bir modeli, birbiriyle etkileşen nesnelerin bir koleksiyonu olarak tanımlanabilir; nesne, değerleri nesnenin durumunu tanımlayan bir dizi parametre ve nesneyi tanımlamak için kullanılabilecek bir dizi işlem (dіy) ile tanımlanır; bir nesneden diğerine özel destek talebi ile zdіysnyuєtsya nesneleri arasında vzaemodiya. Bilgi, nesnenin otrimane, belki vimagati vikonannya diy dedi, örneğin, nesneyi değiştireceğim; Bir ve aynı parametre seti tarafından tanımlanan nesneler ve aynı parametre seti tarafından bina özellikleri, aynı tipte bir nesne sınıfıdır.

    Bakış açısından, nesnelerin programlama sınıfı bunun bir türü ve ortam nesnesi - belirli bir tür olarak görülebilir. Belirli bir görev kümesi için nesne sınıfının programcısı tarafından atanması, görevin sınıfını görevin sınıfı açısından (farklı tür adları, nesne adları ve parametreler seçimi ile) tanımlamaktan suçludur.

    Nesne yönelimi öyle bir şekilde aktarılır ki, programların geliştirilmesi sırasında hatalar program nesnelerine atanır ve açıklamaları istenir, ardından gerekli nesnelerin kopyalarının oluşturulması birbirlerine atanır.

    Nesne sınıfları genellikle pis kokulu bir hiyerarşik yapı oluşturacak şekilde el yapımıdır.

    Açıkçası, razrobki programları için üretken bir şekilde zastosovuvat ob'ektniy pіdhіd yapmak için, gerekli mov progruvannya, scho to pіdіmuyut tsey pіdkhіd, bu yüzden nesne sınıflarının açıklamaları, nesne türlerinin verilerini ayarlayalım, nesneler üzerindeki yenilgi işlemlerini yapalım. Bu tür ilk hareketlerden biri, tüm verilerin verilen sınıfların nesneleri olduğu ve genel sınıf sisteminin belirlenen temel sınıflara dayalı hiyerarşik bir yapı gibi olacağı SmallTalk hareketiydi.

    Programlama kanıtı, programlama teknolojisindeki herhangi bir metodik yaklaşımın, diğer yaklaşımları görmezden gelme konusunda körü körüne tökezlemekten suçlu olmadığını göstermektedir. Nesne yönelimli bir yaklaşıma kadar düşünmeye değer. Bir dizi tipik problem vardır, bazıları için karmaşıklık en belirgindir, bu tür problemler görülebilir, zocrema, simülasyon modelleme görevi, diyalogların temellerle programlanması. Іsnuyut ve zavdannya, nesne yaklaşımının bazı zastosuvannya'larında, hiçbir anlamı yok, krіm zayvih vitrat pratsі, getirmeyin. En büyük uzantıya sahip bağlantıda, nesne mantığını diğer metodolojilerle birlikte kullanmanıza izin veren nesne yönelimli taşınabilir programlama vardı. Bazı dillerde ve programlama sistemlerinde, nesne tabanlı yaklaşımın programlanması, kod tabanlı bir arabirimle çevrilidir (örneğin, önceki sürümlerin Visual FoxPro'su).

    Muzaffer edebiyatın listesi

  1. Arkhangelsky A. Windows için Delphi'de Programlama. Sürümler 2006, 2007, Turbo Delphi + CD. -M .: Binom. Bilgi Laboratuvarı, 2006..

    Arkhangelsky A. C++ Builder'da Mova C++. Dovidkov ve metodik yardım. - M.: Binom. Bilgi Laboratuvarı, 2008.

    Bucknell J. Delphi'de Temel Algoritmalar ve Veri Yapıları. Programcılar kütüphanesi - St.Petersburg .: Peter, DiaSof, 2006.

    Galiseev G.V. Delphi 7'deki bileşenler. Profesyonel çalışma.-M .: Williams, 2006.

  2. Nesne yönelimli tasarımdan Gamma E. Priyomi. Tasarım desenleri. Petersburg: Peter, 2006.
    Hammurabi Kanunları metnine dayanarak sorunu çözün Ana varlıkların bir envanterini yürütmenin şartları nelerdir?

    2014-05-28