[go: up one dir, main page]

Jump to content

Icon

Мавод аз Википедиа — донишномаи озод

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

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

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

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

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

Идеи взятые и опробованные с языка Icon и Snobol были впоследствии (естественно, с некоторыми упрощениями, оптимизирующими выполнение по скорости) перенесены в язык C, а также, следовательно, в Unix среду и многие другие языки программирования (это особенно касается конструкций содержащих "&&" или "||", а также регулярных выражений), например:

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

Так же конструкия shell:

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

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

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

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

Наиболее развитым продолжением Icon является язык Unicon, также распространяемый по GNU, целью которого является наибольшая интеграция идей Icon с Unix средой.