Какво е ICI файл?
Език за програмиране с общо предназначение, който се интерпретира и съдържа няколко функции като динамично въвеждане заедно с гъвкавите типове данни, е известен като ICI (не акроним) език за програмиране. Смята се, че е подобен на езика Perl. Този ICI език включва конструкции за контрол на потока и също така съдържа някои оператори на езика C. Това не е обектно-ориентиран език, но някои от характеристиките на ООП могат да бъдат постигнати чрез специфичен метод за наследяване, известен като надстройки. Подобно на C, този език за програмиране ICI има същия системен интерфейс и стандартна библиотека за вградени функции.
Кратка история
В края на 80-те години той е разработен от Тим Лонг като интерпретиран език за програмиране с общо предназначение. Повечето от функциите на този език са подобни на C и той може да постигне някои от функциите чрез прилагане на някои специални методи. Този език е обществено достояние и е достъпен като език за препродажба и никой не е длъжен да споменава откъде е взел изходния код. Документацията на ICI е под авторското право на Canon Information System Research Australia.
Техническа спецификация
В този език се използват два различни типа данни. Тези два са първични и агрегатни типове данни. И двете включват различни изрази според предварително дефинирания им състав в езика. Различни модули като вложени и подпрограми се поддържат от този език. Тъй като някои от неговите свойства са подобни на Perl, той има стриктна интеграция с регулярните изрази.
Наборите са ограничени да бъдат разнородни и вложени. Тези набори осигуряват поддръжка за често използвани операции с набори като Union и Intersection и т.н. Той се използва най-вече като език в името на основната реализация за приложения, притежавани от мултинационални организации.
Почти всички видове програми могат да бъдат написани на този език и най-вече специфичните програми, които включват сложни структури от данни, са написани на езика за програмиране ICI. Приложенията могат да включват изпълнението на ICI по начин, по който трябва да бъдат написани в него. Функционалните части на приложението могат да бъдат реализирани от модулите на ICI. Езикът на ICI прилича донякъде на език C, но моделът на данни на ICI е на доста по-високо ниво и е различен с типове като речници (структура), набори, динамични масиви, регулярни изрази и (реални) низове.
Пример за ICI файлов формат
printf("Hello world.\n");
s = [set 200, 300, "a string"];
if (s[200])
printf("200 is in the set\n");
if (s[400])
printf("400 is in the set\n");
if (s["a string"])
printf("\"a string\" is in the set\n");
s[200] = 0;
if (s[200])
printf("200 is in the set\n");
forall (colour in [array "red", "green", "blue"])
printf("%s\n", colour);