Программирование на Friend Junior

Оглавление

1 Как это работает?

2. Как задать программу Friend-серверу?

3. Начинаем работать: Знакомство с Friend-TOOLS

4. Структура  Friend — программы

5. Синтаксис  и типы данных и Переменные

6. Функции  (Все о функциях в языке Friend)

7. Циклы

8. Слова- Классы (Word)

9. Управление логикой  программы

10. Контекстно-зависимые переменные и функции

11. База Знаний

12. Работа с текстом на  естественных языках

13. Web-интерфейс (создание web-страниц)

14.  Задачи времени и календаря

15. Встроенная База Знаний о реальном Мире

 

Как это работает?

Friend-2018-junior — это серверный язык, который работает на сервере (локальном, в вашем компьютере,  или в Интернете,  — не важно). Общение с сервером происходит через любой браузер.

По сути, это просто сайт, который в зависимости от вашего желания может быть чем угодно, простой программкой вычисляющей школьную задачку, обычным сайтом, интерактивным учебником, онлайн-игрой, социальной сетью, или Интернет-магазином.

Вы можете написать программу так, что у нее не будет web-странички, но она будет как Бот сама лазить по Интернету, собирать для вас данные, и посылать на  Ваш E-mail.

В удаленной работе программы есть преимущества и некоторые особенности, которые нужно учесть.

Вы не можете непосредственно воздействовать на программу. Но зато, с программой может взаимодействовать одновременно много пользователей, причем каждый, по своей независимой от других пользователей, логике..

Работает это так:  ваш компьютер через браузер (например Google-Хром) посылает  серверу запрос. На сервере запрос обрабатывает Friend-интерпретатор, который выполняет Вашу программу, и вычисляет, что  нужно показать клиенту  на экране. Затем Friend кодирует данные в HTML-код (кодировка используемая  в Интернет) и отправляет вашему компьютеру.

Там браузер расшифровывает ответ и рисует на экране  Web-страничку. Вот так:

Как задать программу Friend-серверу?

Friend-2018-junior сконструирован так, что ни Вы, ни   хакеры, не могут зайти на сервер и что-то там изменить, испортить, добавить или удалить. Сервер не имеет web- админ странички, как например  другие CMS (WordPres, Jumla). Т.е. сервер полностью закрыт. Это сделано специально, поскольку на  ядре Friend-2018-junior, мы создаем и более сложные проекты, например банковские системы и  Виртуальное Государство UVRE.org

Для внесения программы на сервер, Вам нужна специальная инструментальная программа Friend-Tools установленная на Вашем компьютере. Она позволяет удобно и наглядно работать со всеми Вашими удаленными серверами, отлаживать и редактировать программы (сайты) на них.

Хорошая новость в том, что Friend-Tools, — это не одна, а две программы.

 FriendServer входит в нее как локальный сервер, что позволяет Вам отлаживать Вашу работу не выходя в Интернет.

Кроме того, имеется возможность использовать  отладочным локальный сервер  на Вашем учительском или даже домашнем компьютере, как реальный Интернет сервер. Для этого достаточно только его не выключать, и обеспечить статический выход такого компьютера в сеть.

 

Начинаем работать: Устанавливаем  Friend-TOOLS

Зайдите на нашу страничку загрузки, выберите подходящую для Вашей операционной системы последнюю версию Friend-TOOLS, и скачайте ее на Ваш локальный компьютер. Выбирать Friend-server-2018 Вам пока не нужно. Эта программы входит в состав Friend-TOOLS как локальный сервер, и этого достаточно для учебы и экспериментов.

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

Запустив установщик, придерживайтесь рекомендаций.

Затем обязательно откажитесь от запуска программы, закройте все окна установщика, найдите программу Friend-TOOLS в разделе запуска операционной системы, и запустите вручную.

Затем, пожалуйста дождитесь, пока сервер создаст все необходимые папки и данные на Вашем компьютере. Когда все будет готово, вы увидите такое окно:

Выберите и\или дважды щелкните по автоматически созданному первому проекту Project1.

Поздравления!

Вы только что создали свой первый web-сайт на языке Friend-2018, и можете его посмотреть…

 

 

Начинаем работать: Знакомство с  Friend-TOOLS

Среда  Friend-TOOLS  имеет  три основных окна. В центре находится окно редактирования кода программы,  слева окно тестового браузера, а справа окно обзора папок  Вашего сервера. Все что находится в этих папках, среда потом скопирует на реальный сервер. Поэтому, это точная копия  текущего проекта.

В самом краю слева и справа над окнами  есть символы  <<   >> которые позволяют открыть боковые окна , или закрыть, чтобы тем самым увеличить расширить (для удобства) окно редактора кода:

 

Начинаем работать:Знакомство с Обозревателем решения

В правой части приложения расположено окно Обозреватель решений, в котором в представлении иерархического дерева показаны все файлы проекта:

1 Служебная папка — не трогайте

2 В эту папку вы можете загружать все файлы уже готовых сложных Web элементов, сделанных вами или скачанных из интернета.

3 Папка html стилей дизайна, если вы не знаете как с этим работать, то просто не трогайте

4 В этой папке хранятся все изображения и аудио файлы которые будут использоваться в вашем проекте.

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

5 Папка хранящая файлы Java Skript

6 В этой папке  хранится база знаний Friend а так же другие файлы формата frk.

7 Папка хранящая уже готовые страницы вашего проекта.

8 Папка хранящая все sktletons(шаблоны страниц)

 

Для работы с папками и файлами в обозревателе решения вам нужно выбрать необходимый элемент, нажать на правую кнопку мыши,  вы увидите простое меню и сможете выполнить необходимые действия.

 

 

Начинаем работать: Элементы верхнего меню

В верху приложения расположены меню, имеющие различные функции для работы,редактирования и запуска проекта:

1 Меню работы с проектом, сервером, здесь вы можете создать необходимые элементы страницы.

2 Сохранение всего проекта и текущей страницы, печать

3 Верезка/копирование/вставка текста и различные режимы показа текста

4 Шаг вперед, шаг назад по изменению текста

5 Добавление удаление и переход по закладкам в тексте

6 Запуск проекта в браузере \

7 Меню бытрого добавления элементов кода и Web элементов(это меню будет подробно разобрано далее)

Начинаем работать: Меню быстрого добавления элементов

Меню быстрого добавления элементов очень удобно для тех кто ещё не очень хорошо знает синтаксис Friend Junior. Благодаря этому меню вы сможете добавлять меню,таблицы функции, кнопки и другие элементы вводя их параметры в определенные окна.

Рассмотрим это на примере добавления изображения:

1 Нажимаем на элемент создания изображения

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

3 При необходимости добавляем ссылку

4 Указываем размеры изображения в пикселях или процентах

5 Указываем размер рамок

6 Выбираем расположение на экране

Мы получаем готовое изображение с нужными нам параметрами

 

 

Структура  Friend — программы

Любая Friend-программа состоит из файлов разного типа и назначения, находящихся на сервере в разных папках.

Корневая папка сервера wwwroot. Это виртуальная папка, хакер эту папку и все папки внутри нее не видит, потому что их на самом деле как бы и нет. Их видит только сам  Сервер.

Собственно Friend типами являются  файлы со следующими расширениями:

файл.frd    — содержит произвольный код на языке Friend

файл.frp    — содержит код описания  одного класса  web-страницы имя которой совпадает с файлом

файл.fpr —  содержит так называемые skeleton, скелеты (или попросту «темы»  — основу web-страницы, к свойствам которой программы из файл.frp может обращаться по имени, как к обычным переменным.

файл.frk  —  это текстовые файлы описывающие Базу Знаний, или фрагменты Базы Знаний на естественном языке (Но это не  сама БЗ, эти файлы потом компилируются)

файл.fkb  — это уже сама База Знаний сохраненная в двоичном формате.

Работа Сервера начинается с загрузки файла Start.frd, в котором должны находиться общие для всех страниц и модулей данные, а так же список всех необходимых программе файлов Базы Знаний и файлов дополнительных Библиотек (*.frd -файлы).

Дальше автоматически подгружается База  Задач, в которой находятся все задачи расписанные серверу по календарю и времени. Если пришло время выполнить некоторые задачи, то они тут-же и выполняются.

Friend — это многозадачная система, и он см планирует сколько задач  можно выполнять параллельно, зависимости от числа ядер и загрузки процессора…

После этого, сервер, если это не активный  Бот переходит в спящий режим, ожидая обращение клиентов.

Когда внешний клиент (а для локального сервера  Вы тоже  «внешний» клиент) обращается к сайту (к серверу), первым делом автоматически выполняется страничка из файла Index.frd, которая находится в корневой папке wwwroot

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

Вы должны понимать, что Сервер работает с каждым пользователем независимо, сколько бы из не было, и логика Вашей программы выполняется независимо и параллельно для каждого клиента в отдельности…

Любая web-страница  класс с именем Main и имеющий как минимум один или два важных метода (т.е. именуемой процедуры), а так же сколько угодно нужных Вам методов, функций и других структур.

Рассмотрим это подробнее:

Когда страница активируется,   Friend автоматически выполняет очень важный метод «Init»:

Init{  Ваш код программы…    }

В нем должны быть Вами написаны все первичные действия и вычисления необходимые этой странице.

В принципе на этом можно и закончить, поместив вывод ответа клиенту в конце этого же метода.

Однако, поскольку страница может использовать много методов и свойств  Скелета, функций и других файлов, существует еще один необязательный, но важный метод который вызывается автоматически в самом конце работы страницы «Send»:

Send{  Ваш код формирующий ответ клиенту…    }

В нем  Вы можете сосредоточить все команды формирующие ответ клиенту, на основе уже вычисленных данных.