Vizual proqramlaşdırma dili

Kompüter proqramlaşdırmasının tədrisində vizual proqramlaşdırma dili (VPL), blok kodlaşdırma sistemi və ya diaqrammatik proqramlaşdırma dili[1][2] istifadəçilərə proqramları mətn vasitəsilə təsvir etmək əvəzinə, proqram elementlərini qrafik şəkildə idarə etməklə yaratmağa imkan verən proqramlaşdırma dilidir.[3] VPL proqramlaşdırmaya vizual ifadələr, mətn və qrafik simvolların məkan üzrə yerləşdirilməsi vasitəsilə imkan verir. Bu elementlər sintaksisin tərkib hissələri və ya ikinci dərəcəli işarələmə vasitələri kimi istifadə oluna bilər. Bir çox VPL-lər "bloklar və oxlar" prinsipinə əsaslanır. Bu sistemlərdə bloklar və ya digər ekran obyektləri obyektləri, onları birləşdirən oxlar, xətlər və ya qövslər isə obyektlər arasındakı əlaqələri ifadə edir. VPL-lər ümumiyyətlə aşağı kodlu proqramlaşdırma platformalarının əsasını təşkil edir. Scratch VPL nümunələrindən biridir.
Tərif
[redaktə | vikimətni redaktə et]VPL-lər istifadə olunan vizual ifadələrin növünə və əhatə dairəsinə görə ikon əsaslı dillərə, forma əsaslı dillərə və diaqram dillərinə bölünə bilər. Vizual proqramlaşdırma mühitləri proqramların yaradılması üçün istifadəçilər tərəfindən interaktiv şəkildə idarə oluna bilən qrafik və ya ikon əsaslı elementlər təqdim edir. Bu elementlərin idarə edilməsi proqramların qurulmasını müəyyən edən xüsusi məkan qrammatikasına əsaslanır.
VPL-lərin əsas məqsədi proqramlaşdırmanı yeni başlayanlar üçün daha əlçatan etmək və proqramlaşdırmanı üç müxtəlif səviyyədə dəstəkləməkdir:[4]
- Sintaksis
- VPL-lər ikonlardan, bloklardan, formalardan və diaqramlardan istifadə etməklə sintaktik xətaların yaranma ehtimalını azaltmağa və ya onları tamamilə aradan qaldırmağa, həmçinin düzgün qurulmuş proqramların yaradılması üçün proqramlaşdırma elementlərinin düzgün yerləşdirilməsinə kömək edir.
- Semantika
- VPL-lər proqramlaşdırma elementlərinin mənasını izah etmək üçün müxtəlif mexanizmlər təqdim edə bilər. Buraya proqramlaşdırma dillərinə inteqrasiya edilmiş sənədləşdirmə və yardım funksiyaları daxil ola bilər.
- Praqmatika
- VPL-lər proqramların konkret vəziyyətlərdə nə ifadə etdiyini və necə davrandığını öyrənməyi dəstəkləyir. Bu səviyyədə istifadəçilər VPL vasitəsilə yaradılmış obyektləri müəyyən vəziyyətə gətirərək proqramın həmin vəziyyətə necə reaksiya verdiyini araşdıra bilərlər. Məsələn, AgentSheets və ya AgentCubes mühitlərində istifadəçilər oyunları və ya simulyasiyaları müəyyən vəziyyətə gətirərək proqramın həmin vəziyyətə necə reaksiya verəcəyini müşahidə edə bilərlər. Thymio proqramlaşdırma dilində isə istifadəçilər robotu müəyyən vəziyyətə gətirərək onun necə reaksiya verəcəyini, məsələn, hansı sensorların aktivləşəcəyini müşahidə edə bilərlər.
2005-ci ildən etibarən aparılan inkişaflar vizual proqramlaşdırma yanaşmasını verilənlər axını proqramlaşdırması dilləri ilə birləşdirməyə yönəlmişdir. Bunun məqsədi ya proqramın vəziyyətinə dərhal çıxış əldə etməklə onlayn sazlamanı təmin etmək, ya da proqramların və onların sənədlərinin avtomatik yaradılmasına imkan verməkdir. Verilənlər axını dilləri həmçinin avtomatik paralelləşdirməyə imkan verir ki, bu da gələcəkdə proqramlaşdırma sahəsində ən mühüm problemlərdən birinə çevrilə bilər.[5]
Visual Basic, Visual C#, Visual J# və Microsoft Visual Studio inteqrasiya olunmuş inkişaf mühitində (IDE) istifadə olunan digər dillər vizual proqramlaşdırma dilləri hesab edilmir. Bunun səbəbi alqoritmlərin və digər proqramlaşdırma elementlərinin təqdimatının mətn əsaslı olmasıdır. Baxmayaraq ki, IDE zəngin istifadəçi interfeysi vasitəsilə redaktə və sazlama proseslərini təkmilləşdirir. Eyni yanaşma əksər digər sürətli tətbiqetmə proqramlaşdırması mühitlərinə də aiddir. Belə mühitlər adətən forma dizaynerini, bəzən isə idarəetmə axınını və verilənlər arasındakı asılılıqları göstərən qrafik vasitələri dəstəkləyir, lakin bu qrafik vasitələr proqramın özünü müəyyən etmir.
Vizual proqramlaşdırma dilləri üçün parserlər qraf qrammatikası vasitəsilə həyata keçirilə bilər.[6][7]
İstinadlar
[redaktə | vikimətni redaktə et]- ↑ Bragg, S.D.; Driskill, C.G. Diagrammatic-graphical programming languages and DoD-STD-2167A // Proceedings of AUTOTESTCON '94. 1994. 211–220. doi:10.1109/AUTEST.1994.381508. ISBN 0-7803-1910-9.
- ↑ Kuhail, M. A.; Farooq, S.; Hammad, R.; Bahja, M. "Characterizing Visual Programming Approaches for End-User Developers: A Systematic Review". IEEE Access. 9. 2021: 14181–14202. Bibcode:2021IEEEA...914181K. doi:10.1109/ACCESS.2021.3051043.
- ↑ Jost, Beate; Ketterl, Markus; Budde, Reinhard; Leimbach, Thorsten. Graphical Programming Environments for Educational Robots: Open Roberta - Yet Another One? // 2014 IEEE International Symposium on Multimedia. 2014. 381–386. doi:10.1109/ISM.2014.24. ISBN 978-1-4799-4311-1.
- ↑ Repenning, Alexander. "Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in AgentSheets". Journal of Visual Languages and Sentient Systems. 3. 2017: 68–91. doi:10.18293/vlss2017-010.
- ↑ Johnston, W.M.; Hanna, J.R.P.; Millar, R.J. "Advances in dataflow programming languages" (PDF). ACM Computing Surveys. 36 (1). 2004: 1–34. doi:10.1145/1013208.1013209. 16 may 2018 tarixində arxivləşdirilib (PDF). İstifadə tarixi: 16 fevral 2011.
- ↑ Rekers, J.; Schürr, A. "Defining and parsing visual languages with layered graph grammars". Journal of Visual Languages & Computing. 8 (1). 1997: 27–55. doi:10.1006/jvlc.1996.0027.
- ↑ Zhang, D.-Q. "A context-sensitive graph grammar formalism for the specification of visual languages". The Computer Journal. 44 (3). 2001: 186–200. doi:10.1093/comjnl/44.3.186. hdl:10397/17637.