iLanguage или Через тернии к языку

29 мая 2013, среда 11:28

  Приветствую, Уважаемые товарищи Оверклокеры. Не так давно мне пришлось разочароваться во всех существующих языках программирования. Одни сложны в понимании, другие - в изучении. Тогда и родилась идея создания своего собственного языка. Данная статья является попыткой систематизировать всю информацию и все наработки в этом направлении.
  Так как в одиночку такую работу выполнить довольно таки сложно, я подключил к ней своего закадычного друга-программиста. Ему эта идея понравилась, и он даже вызвался сделать итерпретатор.
  Практически сразу же и появилось название - iLanguage, являющееся отсылкой к продуктам всем известной компании.(Здесь помидорами не кидаться)
  К языку предъявлялись следующие требования:


  • Легкость в понимании и  изучении


  • Простой синтаксис


  • Красивый логотип


  • Максимальное упрощение кодирования(т.е. чтобы легко можно было выполнять всякие разные сложные операции)


  • Работающий интерпретатор


Что-то из этого выполнить удалось, а о чем-то, например о легеости в изучении, мы не можем судить сами. Но, все по порядку.
Логотип
  Это такая штука, которую наравне с названием все должны узнавать сразу, поэтому к его созданию мы отнеслись со всей серьёзностью. Вот что у нас получилось:

Синтаксис
   Чтобы не изобретать велосипед, за основу взяли известный, наверное, подавляющему большинству Pascal.
  Версия iLanguage 0.1.4 Airplane содержит в себе следующий набор команд


  • var a'int, x'bool; // Задается целочисленная переменная a и логическая x


  • var b'int:array[1..100];   // Задается массив целочисленных значений


  • rd(a); // Запись в переменную а


  • strrd(a" "); // Читать строку в переменную а до пробела


  • re" "; // Пропустить пробел


  • wrt(Некоторый текст, 'a); // вывод на экран некоторого текста и значения переменной а


  • a[b]; // Присваивание переменной а значения переменной b


  • b'i[a]; // Присваивание элементу массива b под номером i  значения переменной a


  • for i[1+3] 10 do ... end; // цикл с i от 1 до 10 и шагом 3 (если шаг 1, то +Число писать не обязательно)


  • if (условие) then do ... or do ... end; //условие


  • End. // Конец программы


  Поддерживаемые арифметические операции: + - * / ^ sqrt
 
Интерпретатор
Находится на стадии разработки. Как будет готов, прикреплю файл с исходником
 
Пример программы
var a'int, i'int;
   b'int:array[1..10];
a[10];
for i[1] 10 do
   b'i[a];
   a[2*a];
end;
End.
 
 
 
Спасибо за внимание и уделенное время. Критикуйте(но не сильно)
 
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают