მაღალი დონის პროგრამირების ენა: განსხვავება გადახედვებს შორის

[შეუმოწმებელი ვერსია][შეუმოწმებელი ვერსია]
შიგთავსი ამოიშალა შიგთავსი დაემატა
No edit summary
No edit summary
ხაზი 2:
{{მუშავდება/ძირი|[[სპეციალური:Contributions/Irmaguru|Irmaguru]].|1|12|2021}}
 
მაღალი დონის პროგრამირების ენები შეიქმნა ალგორითმების არსის პლატფორმისგან დამოუკიდებლობის აღსაქმელად. პლატფორმაზე დამოკიდებულება სხვა ინსტრუმენტული პროგრამების მახასიათებელია. ასეთია თარჯიმანი პროგრამები, რომლებიც მაღალი დონის ენაზე დაწერილ ტექსტს გარდაქმნიან ელემენტარულ მანქანურ ინსტრუქციებად. აქედან გამომდინარე, თითოეული პლატფორმისათვის მუშავდება მისთვის უნიკალური ტრანსლიატორი (თარჯიმანი) თითოეული მაღალი დონის ენისთვის. მაგალითად, თარგმნის ტექსტი დაწერილი Delphi შევიდა ელემენტარული ინსტრუქციები x86 [[მიკროპროცესორი|მიკროპროცესორების]].
 
ამრიგად, მაღალი დონის ენები ცდილობენ არა მხოლოდ ხელი შეუწყონ რთული პროგრამული პრობლემების გადაჭრას, არამედ გაამარტივონ პროგრამული უზრუნველყოფის პორტირება. მრავალფეროვანი ტრანსლიატორი და ინტერპრეტატორი პროგრამების გამოყენება უზრუნველყოფს მაღალი დონის ენებზე დაწერილი [[კომპიუტერული პროგრამა|პროგრამების]] კომუნიკაციას პროგრამირებადი მოწყობილობა-დანადგარების სხვადასხვა [[ოპერაციული სისტემა|ოპერაციულ სისტემებთან]], და, იდეალურ შემთხვევაში, არ საჭიროებს საწყისი კოდის (მაღალი დონის ენაზე დაწერილი ტექსტი) შეცვლას ნებისმიერი პლატფორმისთვის.
 
მაღალი დონის ენების ამგვარ იზოლაციას [[კომპიუტერი|კომპიუტერის]] ტექნიკისაპარატურული დანერგვისგანრეალიზაციისაგან, მრავალი უპირატესობის გარდა, აქვს უარყოფითი მხარეებიც. კერძოდ, ის არ იძლევა მარტივი და ზუსტი ინსტრუქციების შექმნას გამოყენებული აღჭურვილობისთვის. მაღალი დონის ენებზე დაწერილი პროგრამები უფრო ადვილი გასაგებია პროგრამისტისთვის, მაგრამ ნაკლებად ეფექტური, ვიდრე [[დაბალი დონის პროგრამირების ენა|დაბალი დონის ენებზე]] დაწერილი მათი კოლეგებიანალოგები. ამის ერთ-ერთიგამო, შედეგიაუცილებელი იყოგახდა ამა თუ იმ დაბალი დონის ენის ([[ასემბლიასემბლერი|ენის (ასამბლეის ენაასამბლერის]] ) მხარდაჭერის დამატება მრავალ თანამედროვე პროფესიულ მაღალი დონის პროგრამირების ენებში.
 
მაგალითები: [[C++|C ++]], [[C Sharp|C #]], [[Delphi]], [[Fortran]], [[ჯავა (პროგრამირების ენა)|Java]], [[JavaScript]], [[Lisp]], [[Pascal]], [[PHP]], ასევე [[რუბი|Ruby]], [[პაითონი (პროგრამირების ენა)|Python]], [[Perl]], რომლებსაც ზოგჯერ უწოდებენ ულტრა მაღალიულტრაუმაღლესი დონის ენებს. მაღალი დონის ენებს აქვთ მონაცემთა რთულ სტრუქტურებთან მუშაობის უნარი. მათ უმეტესობას აქვს სტრიქონების ტიპების, [[ობიექტი (პროგრამირება)|ობიექტების]], ფაილური შეტანა-გამოტანის ოპერაციების და ა.შ. ინტეგრირებული მხარდაჭერა.
 
პირველი მაღალი დონის პროგრამული ენად ითვლება Plankalkül (დაგეგმილი გამოთვლა), რომელიც გერმანელმა ინჟინერმა, კონრად ცუზემ შეიმუშავა ჯერ კიდევ 1942-1946 წლებში. მაგრამ მისი ტრანსლიატორი არ არსებობდა 2000 წლამდე. მაღალი დონის პროგრამული ენების ფართე გამოყენება დაიწყო ფორტრანისა და მისი კომპილატორის შექმნისთანავე (1957).
2018 წელს, კომპანია „TIOBE Software“-ის აზრით, პროგრამირების ენებში ლიდერობდა [[ჯავა]].
 
2018 წელს, კომპანია „TIOBE Software“-ის აზრით, პროგრამირების ენებში ლიდერობდა [[ჯავა (პროგრამირების ენა)|ჯავა]].
 
==პროგრამების პორტაბელურობა==
არსებობდა მოსაზრება, რომ [[კომპიუტერული პროგრამა|პროგრამები]] მაღალი დონის ენებზე შეიძლება დაიწეროს ერთხელ და შემდეგ მისი გამოყენება შეიძლება ნებისმიერი ტიპის [[კომპიუტერი|კომპიუტერზე]]. სინამდვილეში, ეს ეხება მხოლოდ იმ პროგრამებს, რომელთაც მცირე ურთიერთქმედება აქვთ [[ოპერაციული სისტემა|ოპერაციულ სისტემასთან]], მაგალითად, ასრულებენ რაიმე გამოთვლებს ან მონაცემთა დამუშავებას. ინტერაქტიული (და მით უმეტეს, მულტიმედიური) პროგრამების უმეტესობა სისტემურ გამოძახებას მიმართავს, რომლებიც მნიშვნელოვნად განსხვავდება ოპერაციული სისტემის მიხედვით. მაგალითად, კომპიუტერის ეკრანზე გრაფიკის საჩვენებლად, [[Microsoft Windows|Microsoft Windows-ის]] პროგრამები იყენებენ Windows API ფუნქციებს, რომლებიც განსხვავდება იმ სისტემებისგან, რომლებიც მხარს უჭერენ POSIX ('''P'''ortable '''O'''perating '''S'''ystem '''I'''nterface — ოპერაციული სისტემების პორტატული ინტერფეისი) სტანდარტს. ამ მიზნებისათვის, ყველაზე ხშირად, ისინი იყენებენ X სერვერების [[აპლიკაციის პროგრამირების ინტერფეისი|პროგრამულ ინტერფეისს]].
 
დღეისათვის შეიქმნა არაერთი პროგრამული ბიბლიოთეკა (მაგალითად, Qt ბიბლიოთეკა<ref>[https://directory.fsf.org/wiki/Qt Free Software Directory]</ref> ან wxWidgets<ref>[https://web.archive.org/web/20171024122235/http://wxwidgets.org/ wxwidgets.org]</ref>), რომელიც მალავს აპლიკაციებიდან სხვადასხვა ოპერაციული სისტემისსისტემების სისტემური ზარების შეუსაბამობას აპლიკაციის პროგრამებიდანგამოძახებების შეუსაბამობებს. თუმცა, ასეთი ბიბლიოთეკები, როგორც წესი, არ იძლევა კონკრეტული ოპერაციული სისტემების ყველა შესაძლებლობის სრულად გამოყენებას.
 
==ახალი ტენდენციები==
ახალი ტენდენციაა პროგრამირებისოდნავ ენებისუფრო გაჩენამაღალი ოდნავდონის უფროპროგრამირების მაღალენების დონეზეგაჩენა (ულტრა მაღალიულტრამაღალი დონე, არ უნდა აგვერიოს ულტრამაღალულტრაუმაღლეს დონეზედონეში). ამ ტიპის ენები ხასიათდება დამატებითი სტრუქტურებისა და ობიექტების არსებობით, რომლებიც ორიენტირებულია აპლიკაციის გამოყენებაზე. გამოყენებული ობიექტები, თავის მხრივ, საჭიროებენ მინიმალურ კონფიგურაციას პარამეტრების სახით და მყისიერად მზად არიან გამოსაყენებლად. ულტრა მაღალი დონის პროგრამირების ენების გამოყენება ამცირებს პროგრამული უზრუნველყოფის შემუშავებაზე დახარჯულ დროს და აუმჯობესებს საბოლოო პროდუქტის ხარისხს, ისევკვლავ წყაროსსაწყისი კოდების მოცულობის შემცირებით.
 
==იხილეთ ასევე==