W.Script языки программирования, или как мы развлекаемся в нашей компании

в 13:06, , рубрики: ненормальное программирование, Новые технологии, Песочница, Программирование, программирование микроконтроллеров, языки программирования, метки: , , ,

Наша компания (Австралия, Сидней) существует уже 2 года. Так вот — решили мы год назад сделать для разработки свои языки программирования. Точнее сама основа уже была — закрытые языки программирование нашей компании-предшественницы.

В итоге мы получили три языка программирования — R.Script (микропроцессоры, вычислительные программы), L.Script (GUI, Web приложения) и главный — W.Script (этот язык — основа двух предыдущих и с ним можно делать все, что хочешь).

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

R.Script

Существует две редакции этого языка — LLP и HLP. Главная редакция, которую наши программисты используют, — LLP. HLP же является его расширением и превращением в полнофункциональный язык программирования типа L.Script (на данный момент HLP не используется в наших проектах).

Рассмотрим LLP

Для того, чтобы запустить программу, точнее сказать компилятору, что она есть (обычно это тело main) нужно запустить функцию INCLUDE:

LOAD(INCLUDE):

Двоеточие в конце строки нужно для открытия тела данной функции (т.е. мы сделали main { ).
Теперь нужно загрузить API, с которым мы будем работать:

PAR(STRING[~SYSTEM:.api>consoleapi#]);

Теперь я думаю, что стоит пояснить данную строку. На любом другом языке это выглядело бы подобно этому:

include("C:Sourceconsoleapi.api");

То есть строка в данном языке начинается с символа "~", а завершается — символом "#". Все строки должны быть обработаны функцией STRING[]; — квадратные скобки используются по причине того, что обычные () уже были использованы в строке.
Теперь нужно завершить тело документа, чтобы далее работать с API:

PAR(-END);

И закрываем тело вообще:

END

В итоге получаем программу:

LOAD(INCLUDE):
  PAR(STRING[~SYSTEM:.api>consoleapi#]);
  PAR(-END);
END

Для чего нужен дефис в функции PAR? А для того, чтобы полностью завершить выполнения тела. Если мы захотим подгрузить Win32API можем продолжить:

 LOAD(INCLUDE):
  PAR(STRING[~SYSTEM:.api>consoleapi#]);
  PAR(END);
  PAR(START); //Говорим, что хотим продолжить
  PAR(STRING[~SYSTEM:.fir>Windows:.api>win32#]); //Загружаем файл C:SourceWindowswin32.api
  PAR(-END); //Полностью завершаем тело
END

А теперь, чтобы что-то вывести нужно использовать API. Для этого нужно создать тело использования API:

LOAD(INCLUDE):
  PAR(STRING[~SYSTEM:.api>consoleapi#]);
  PAR(-END);
END

LOAD(API::CONSOLE-INCLUDE[PAR(LINE2)]):
  ECHO(): //Говорим программе, что будем выводить (и открываем дело вывода при помощи двоеточия
    PAR(STRING[~Hello, world#]);
    PAR(-END);
  END //Закрываем тело ECHO
  PAR(-END); //Завершаем тело API
END //Закрываем тело API

В итоге мы получили «маленькую» программу Hello, world, которую можно скомпилировать почти во всех операционных системах (использует она консоль, в linux — терминал).

Продолжение следует…

Автор: Layan

Источник

Поделиться

* - обязательные к заполнению поля