ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



1Скрипт

Сообщений 1 страница 7 из 7

1

Этот язык умеет работать с массивами и структурами.
Кроме того, на нём можно делать сайты (есть интеграция с web, только я пока с ней не разобрался)

На сайте документации есть примеры, в частности консольная игра "змейка"
http://oscript.io/docs/page/examples

В общем, буду теперь думать, как писать yacc на нём. (Всё как Уткин порекомендовал - перейти со Школьного Алгоритмического Языка на Язык Серьёзных Мужиков 1С)

http://lurkmore.so/images/thumb/b/b5/1c_firefox.jpg/180px-1c_firefox.jpg

Отредактировано Лис (2018-01-03 13:14:47)

0

2

[html]
Помедитировал над пресмыкающимся, в принципе минимум есть:
<br />
<br />
<font color="0x00C000">// Объекты, структуры, массивы</font>
<br />
<br />
Змея = Новый Массив;
<br />
Сегмент = Новый Структура();
<br />
Сегмент.Вставить("Направление", 0);
<br />
Змея.Добавить(Сегмент);
<br />
Консоль.Вывести("Гейм Овер");
<br />
<br />
<font color="0x00C000">// Управляющие конструкции: условия, циклы</font>
<br />
<br />
Если Результат < 0 Тогда
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Результат = Результат * -1;
<br />
Иначе
<br />
&nbsp;&nbsp;&nbsp;&nbsp;...
<br />
ИначеЕсли ... Тогда
<br />
&nbsp;&nbsp;&nbsp;&nbsp;...
<br />
КонецЕсли;
<br />
<br />
Пока Длина > 0 Цикл
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Длина = Длина - 1;
<br />
КонецЦикла;
<br />
<br />
Для Сч = 0 По Змея.Количество() - 1 Цикл
<br />
&nbsp;&nbsp;&nbsp;&nbsp;...
<br />
КонецЦикла;
<br />
Для Каждого Сег Из Змея Цикл
<br />
&nbsp;&nbsp;&nbsp;&nbsp;...
&nbsp;&nbsp;&nbsp;&nbsp;Прервать;
&nbsp;&nbsp;&nbsp;&nbsp;...
<br />
КонецЦикла;
<br />
<br />
<font color="0x00C000">// Параметры, процедуры и функции</font>
<br />
<br />
Процедура НарисоватьСегмент(Знач Сегмент, Знач Симв)
<br />
&nbsp;&nbsp;&nbsp;&nbsp;...
<br />
КонецПроцедуры
<br />
<br />
Процедура ПроверитьГраницыСегмента(Сегмент, Поправка = 0)
<br />
&nbsp;&nbsp;&nbsp;&nbsp;...
<br />
КонецПроцедуры
<br />
<br />
Функция КоординатаЯблокаЛево()
<br />
&nbsp;&nbsp;&nbsp;&nbsp;...
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Возврат ...;
<br />
КонецФункции
<br />
<font color="0x00C000">// Исключения </font>
<br />
ВызватьИсключение "Не удалось создать каталог сборки";
<br />
<br />
Есть исполнитель/класс "Рефлектор"
[/html]

Отредактировано Лис (2017-10-28 16:14:32)

0

3

[html]Компилятор - такой же рекурсивный спуск, как и у Павиа:

<a href="https://github.com/EvilBeaver/OneScript/blob/master/src/ScriptEngine/Compiler/Compiler.cs">src/ScriptEngine/Compiler/Compiler.cs</a>

<br />
<br />
Грамматики нет, но можно увидеть что есть какая-то попытка пообрабатывать исключения (о синтаксисе приходится только догадываться).
<br />
<br />
Пример синтаксиса про исключения есть в юнит-тестах:
<br />
<a href="https://github.com/EvilBeaver/OneScript/blob/master/tests/codestat/try.os">tests/codestat/try.os</a>
<br />
Попытка             //- $entry: 1
<br />
&nbsp;&nbsp;&nbsp;&nbsp;А = 0;          //- $entry: 1
<br />
Исключение          //- $entry: 0
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Б = 0;          //- $entry: 0
<br />
КонецПопытки; //- $entry: 1
<br />
<br />
Как оно работает (там есть список типов, поддерживаемых языком):
<br />
<a href="https://habrahabr.ru/post/223887/">habrahabr, Пишем интерпретатор скрипта и стековую машину</a>

<br />
<br />
базовые типы значений:
<ul>
<li>Неопределено</li>
<li>Строка</li>
<li>Число</li>
<li>Дата</li>
<li>Булево</li>
<li>Объект</li>
<li>Тип</li>
</ul>
[/html]

Отредактировано Лис (2017-10-27 17:21:14)

0

4

[html]"Практическое применение: вам надо написать несложный скрипт под линукс, но никакого языка, кроме 1С вы не знаете. Берете и пишете на 1С."
<br />
<br />
Под windows использовать так:
<br />
<a href="https://infostart.ru/public/327581/">https://infostart.ru/public/327581/</a>
<br />
<br />
Ещё один мёртвый керторианец проект:
<br />
<a href="http://www.gpl2c.ru/">www.gpl2c.ru</a>
<br />
его закапываем, потому что не работает под Linux, а исходники незнамо где (мне лень искать тщательно, а сходу не нашел)
[/html]

Отредактировано Лис (2017-10-27 17:27:14)

0

5

Официальный чат (71 человек):
https://gitter.im/EvilBeaver/OneScript

0

6

Лис написал(а):

на нём можно делать сайты (есть интеграция с web, только я пока с ней не разобрался)

Всё оказалось несложно - http://oscript.io/docs/page/running

OneScript может быть запущен, как CGI-приложение внутри HTTP-сервера (Apache, IIS, nginx, etc...). Этот режим позволяет писать серверные веб-скрипты на языке 1С.

0

7

ВежливыйЛис написал(а):

infostart.ru/public/327581/

Из комментариев.
Запуск в linux-mono:

pumbaE написал(а):

apt-get install mono-core
mono oscript.exe --version

Основная сфера применения:

lustin написал(а):

понимаешь в чём штука - когда пишешь для себя, и сам изучаешь скриптинг - то да, такой способ работает на ура и мы его уже прошли. Кто-то на python, bash|zsh, Powershell. F# и Go - это тоже интересно, но только тебе и мне и еще 10-15 людям.
В свое время был такой сайт script-coding.info где gray-cardinal и остальные создавали скрипты для повторного использования.

Так вот проблема именно в повторном использовании - пример с Go, я не могу передать команде все мои наработки по Go, так как она не знает языка. Вариантов 2 - любо все изучают скрипты на go, либо я всё пилю в одиночку. И это проблема.

То есть 1Script предназначен для коллективной автоматизации 1С-специалистов и для повторного использования уже имеющихся наработок.

P.S. Как ты понял - я помимо ruby и python, последней время подсел на Go и экспериментирую с ним. Но только для личных целей.

http://oscript.io/docs/page/running

Просмотр результатов компиляции

Код:
oscript.exe -compile <файл-скрипта> <аргументы скрипта>

Будут выполнена компиляция скрипта и выведен байт-код виртуальной машины OneScript.

Упаковка в самостоятельный EXE-модуль

Каждый скрипт можно превратить в независимое приложение. Данное приложение можно передавать на другие компьютеры, даже где OneScript не установлен.

Код:
oscript.exe -make <файл-скрипта> <файл-exe>

В результате будет создан независимый exe-модуль, который запускается, как отдельное самостоятельное приложение.

ВАЖНО: Функционал является экспериментальным, в exe-модуль не включаются внешние компоненты (DLL).

Отредактировано atzx (2019-03-27 15:39:07)

0