Icon (язык программирования)

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск
<tr><th style="padding:3px">Семантика:</th><td class="" style="padding:3px">

мультипарадигменный: императивный, логический </td></tr><tr><th style="padding:3px">Тип исполнения:</th><td class="" style="padding:3px"> интерпретатор </td></tr><tr><th style="padding:3px">Появился в:</th><td class="" style="padding:3px"> 1974 г. </td></tr><tr><th style="padding:3px">Автор(ы):</th><td class="" style="padding:3px"> Ralph E. Griswold </td></tr><tr><th style="padding:3px">Типизация данных:</th><td class="" style="padding:3px"> динамическая </td></tr><tr><th style="padding:3px">Основные реализации:</th><td class="" style="padding:3px"> Icon, Jcon, Unicon </td></tr><tr><th style="padding:3px">Испытал влияние:</th><td class="" style="padding:3px"> Снобол </td></tr> </table>

Icon — язык программирования, унаследовавший идеологию более раннего языка того же автора Снобол. Название языка не имеет ничего общего с «иконками», а является сокращением от слова англ. iconoclastic (иконоборческий), используемом в смысле борьбы с конформизмом в разработке языков программирования.

Язык Icon имеет много общего, роднящего его с языками логического программирования, так Thomas W. Christopher, автор Icon Programming Language Handbook пишет: «Самое большое различие между Icon и другими языками программирования — это то, что выражения в Icon — генераторы».

Пример использования генератора:

    procedure main()
    L:=["1","22","333"] # Список строк
    every writes(" ",! L)
    end
    ----
    Выход: 1 22 333

Язык является динамически типизированным, имеет встроенные мощные типы данных. Процедуры в Icon'е относятся к величинам первого класса (англ. first class values), что означает возможность присваивания переменным значений самих процедур, а не результатов их выполнения. Существует механизм со-выражений (англ. co-expression), позволяющий создавать сопрограммы. Авторская реализация Icon, написанная в Аризонском Университете (т.н. аризонский icon) распространяется в соответствии с лицензией GPL.

Языки Icon и Снобол послужили своего рода полигоном для отработки некоторых идиом программирования, особенно это касается конструкций содержащих && или || и первым языком, использующим регулярные выражения (хотя и в форме, отличающейся от ныне принятой). Впоследствии эти механизмы были использованы в Unix-среде, в языках C, AWK и Perl.

Вот пример подобной идиомы:

[ $ringing != 0 ]&&echo Phone ringing!!!

Другой пример, пусть есть конструкия в shell:

 xview -root `gtk-shell -t "Which image?" -fs`

Даже если вы не выберете имя файла-картинки, xview все равно будет запущен. А в языке Icon этого никогда бы не произошло.

Аналоги регулярных выражений являются частью самого языка, позволяя использовать системы обработки текста неограниченной сложности.

Гибкость языка позволяет записывать очень большое количество действий, не уменьшая при этом читабельность текста.

Разработка классического аризонского айкона в настоящее время заморожена. Развивающейся ветвью Icon является язык Unicon, транслятор которого также распространяемый под лицензией GNU GPL. Это объектно-ориентированный диалект языка, с улучшенной интеграцией с окружающей средой ОС, включая, к примеру, поддержку взаимодействия с БД.

Источники

Ссылки

Icon
Файл:Iconlogo.gif </span>


en:Icon (programming language)

es:Icon fa:آیکون (زبان برنامه‌نویسی) fr:ICON ja:Icon ko:아이콘 (프로그래밍 언어) pl:Icon pt:Icon sv:Programspråket Icon tg:Icon

Личные инструменты

Served in 0.494 secs.