Icon– çox yüksək səviyyəli proqramlaşdırma dili (VERY HIGH-LEVEL PROGRAMMING LANGUAGE). 1974-cü ildə Ralf Qrisvold (Ralph E. Griswold) tərəfindən işlənib hazırlanıb. Öz ideyasını həmin müəllifin daha erkən hazırlamış olduğu SNOBOL dilindən alıb. Adı isə “iconoclastic” (“ikonoklastik”) sözündəndır və “proqramlaşdırma dillərinin işlənib hazırlanmasında konformizm ilə mübarizə” mənasında işlədilir. Icon dilinin məntiqi proqramlaşdırma dilləri ilə çoxlu ortaq cəhətləri vardır. Icon dilində prosedurlar birinci sinif kəmiyyətlərə (first class values) aiddir, yəni dəyişənlərə prosedurların yerinə yetirilməsinin nəticəsini deyil, onların özlərinin qiymətini mənimsətmək olar. Icon dili öz sintaksisini Algol proqramlaşdırma dilləri ailəsindən alıb və C, yaxud Pascal dilinin sintaksisini xatırladır. Pascal dilinə daha çox bənzəyir, mənimsətmə üçün := işarəsindən, procedure açar sözündən və s. istifadə edir. Digər tərəfdən, Icon dilində deyimləri qruplaşdırmaq üçün C-üslubunda fiqurlu mötərizələrdən istifadə olunur, proqramın işi isə “main” adlı prosedurla başlayır. Prosedurlar Icon-proqramlarını qurmaq üçün əsas bloklardır, ancaq Pascal dilində olan prosedurlardan fərqli olaraq, onlar (C və Pascal funksiyaları kimi) qiymətlər qaytara bilər; Icon dilində function açar sözü yoxdur.
procedure doSomething(aString) write(aString) end
Icon dilinin ən aktiv inkişaf edən qollarından biri Unicon dilidir. Icon dilinin obyekt-yönlü dialekti olan Unicon dili verilənlər bazası ilə işi dəstəkləyir.
Ədəbiyyat
- İsmayıl Calallı (Sadıqov), “İnformatika terminlərinin izahlı lüğəti”, 2017, “Bakı” nəşriyyatı, 996 s.
Xarici keçidlər
- , , University of Minnesota. Wampler discusses his work on the development of the in the late 1970s at the University of Arizona under .
- , , University of Minnesota. Goldberg discusses his interaction with when working on the in the classroom at .
- , , University of Minnesota. Walker describes the work environment of the Icon project, his interactions with , and his own work on an Icon compiler.
- The Icon Programming Language page on The Rosetta Code comparative programming tasks project site