|
|
Компьютеры - Sambar Server - Web-сервер11 мая 2011
Оглавление: 1. Sambar Server 2. Web-сервер 3. Почтовый Сервер 4. Proxy 5. Basic
Web-сервер Sambar имеет встроенную поддержку динамического контента. Первым встроенным языком программирования был Sambar Server Scripting Language, позже в сервер была добавлена поддержка ASP с использованием языка CScript для программных вставок. Также можно подключать дополнительные языки программирования, например PHP, Perl или Python.
Sambar Server Scripting Language
Встроенный язык программирования Sambar Server, который основан на специальных HTML-тегах, включаемых в HTML-страницу.
Формат спец-тега: <RCcommand param1> Где command вызываемая функция сервера. Где param1 один из параметров вызываемой функции. Файлы, содержащие исходный текст Sambar Server Scripting Language, имели расширение *.STM.
ASP
ASP технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования веб-страницы. Язык программирования, на котором пишутся программные модули для ASP сервера Sambar Cscript, аналогичный языку C, но имеющий некоторые отличия от него. Заключённые в специальные скобки <% %> программные модули на C-Script вставляются в код HTML-страниц. Модули С-Script могут существовать как отдельными *.C-файлами, которые позже будут включены в основные ASP-сценарии, так и в качестве вставок в HTML-код страницы, которая сохраняется под расширением *.ASP.
Пример ASP-файла с прямым использованием вставок C-Script
<html>
<head>
<title>Hello World</title>
</head>
<body>
<%
printf;
%>
</body>
</html>
Пример ASP-файла, использующий включение файлов #include
<!---head.asp--->
<head>
<title>Hello World</title>
</head>
<!---hello.asp--->
<html>
<%#include "head.asp"%>
<body>
<%
#include "hello.c"
%>
</body>
</html>
Основные отличия CScript от языка Си
Синтаксис
- Не требуется определение функции main
- Объявление переменных не является обязательным. Чтобы определить переменную, достаточно сразу присвоить ей значение. Если переменная не была определена ранее, то она определится автоматически, в зависимости от её значения
- Поддерживаются обработки прерываний try/throw/catch
- Поддерживается динамическое распределение выделение или перевыделение массива
- Не поддерживается ключ unsigned
- Не поддерживается ключ static
- Не поддерживается определение констант const
- Макросы не поддерживаются
- Метки GOTO не поддерживаются
- Структуры, объединения, перечисления и макросы не поддерживаются.
Операторы
- Операторы +, <,
<= , >, >= , == и != можно использовать на строках
- Оператор выполняет автоматическую проверку диапазона
- Оператор sizeof возвращяет количество элементов массива, размер строки или число байт, используемых атомарным значением
- typeof определяет тип объекта
- Арифметика с указателями не поддерживается
Переменные
- Локальные переменные всегда находятся в области действия блока функции. Переменные, используемые внутри составных операторов доступны в их внешней области.
- Все переменные по-умолчанию инициализируются нулевым значением
- Массивы автоматически увеличиваемые и могут иметь атрибут «типы» как элементы. Проверки границ массива выполняются всегда
- Ссылки на объекты непрозрачны и используется только при передаче данных из/во внешний API.
Структуры
- Переключатели динамические
- Заголовочные файлы не поддерживаются. Все основные библиотеки предварительно установлены, поэтому вызовы стандартных функций всегда могут производиться непосредственно. Пользовательские библиотеки функций должны включатся в текст программы, то есть #include <foo.c>
Просмотров: 4848
|