Скриптол - часто задаваемые вопросы
Язык
- Повторное декларирование: каждый язык OO должен использовать локальные пространства имен
- Как переключиться с кода на PHP или C++
- Можно ли вызвать конструктора базового класса в унаследованном классе?
Скриптол и PHP
- Может ли Скриптол компилировать мои PHP-скрипты?
- Можно ли использовать Script в качестве инструмента преобразования?
- PHP: Переменные форм не распознаны
- Преобразовать PHP в C++
- Использование PHP-объектов в Script
- Как использовать Script и MySQL?
- Компиляция кода C++ дает кучу сообщений об ошибках
- Мою программу невозможно скомпилировать
- C++ чувствителен к регистру
- Моя программа не работает
Скриптольный интерпретатор
Расширения
- Можно ли использовать OpenGL и Glue с Script
- Какое время выполнения требуется для распространения моего приложения?
Инструменты
Маркетинг и будущее
- Компилятор Script останется бесплатным?
- Когда будет доступна версия .NET?
- Компилятор Script закончен?
Можно ли вызвать конструктора базового класса в унаследованном классе?
Я наследую класс Car от класса Vehicle, например. Могу я позвонить производителю Vehicle из Car? Я делаю это на Java.
Java имеет ключевое слово «super» для вызова конструктора класса из унаследованного класса.
В Скриптоле нет эквивалента. При вызове конструктора суперкласса создается новый его экземпляр.
Но ты можешь присвоить атрибуты базового класса в конструкторе унаследованного класса, что равносильно «супер» Java.
Супер инструкция была добавлена в Script 2 в 2014 году. Это позволяет переключаться с параметров на конструктор унаследованного класса.
Код C++ в моей программе не компилируется
Когда я вызываю solc, я получаю следующие ошибки как при компиляции, так и при редактировании ссылок:
« Недопустимая команда».
Нужно проверить, доступен ли компилятор C++.
Ввести:
bc32 или
gcc -v или
cl/?
Если версия отображается, установка правильная, иначе программа должна быть доступна, для этого ее нужно добавить в переменную среды PATH Windows:
- Меню Windows
- Панель управления
- Система
- Расширенная вкладку
- Кнопка «переменные среды».
Пример с bc32:
PATH = %PATH%;c:\bcc55\bin\
Скриптол компилируется в PHP или C++, но C++ производит кучу сообщений об ошибках.
Я уже 2 дня пытаюсь заставить ваши компиляторы Script работать, которые я установил. Я также загрузил BCC 5.5.
Я могу скомпилировать программы Script на .CPP или .PHP, но не могу заставить их работать, даже простые демо, включенные в архив.
Похоже, им нужно много библиотек, заголовочных файлов и так далее... для работы. BCC создает кучу сообщений об ошибках, в основном потому, что не находит файлы, включенные как math.h, iostream.h, которые вызывают другие файлы, которые не могут быть найдены.
У меня есть проект, который нужно написать, но я провожу вдвое больше времени с инструментами, чем если бы я сделал работу вручную!
Также вдвое больше времени провожу с внешними программами и библиотеками, чем на самом компиляторе Script. Похоже, компилятор Borland или интерпретатор PHP установлены не полностью.
Чтобы узнать, установлен ли PHP, просто введите:
php -v
Но для компилятора C++ это не так просто. В папке bcc55\bin есть два файла конфигурации - bc32.cfg и ilink32.cfg, которые содержат пути компилятора и файлы для включения. Также есть win32.cfg в корне bc55.
Можем ли мы использовать Script в качестве инструмента преобразования ?
Если бы PHP-кодеры могли компилировать PHP, с помощью инструмента преобразования это было бы действительно хорошо. Но иначе, если для этого нужно переписать сценарий, или только изменить его, после преобразования.
В настоящее время Script компилирует исходный скриптол в PHP или C++. Не нужно ничего переписывать. Для уже написанного PHP-кода его нужно включить в код Script.
Но для компилирования PHP в бинарный, потребуется специализированный компилятор, это существует .
C++ чувствителен к регистру
Вы говорите в руководстве, что C++ не чувствителен к регистру, но мой компилятор делает разницу между «var» и «VAR», например.
Редактор ссылок C++ может быть или нет в зависимости от конфигурации. Я использую режим, который всегда будет работать, независимо от конфигурации, как в C++, так и в PHP, который также чувствителен или нет в зависимости от случая, поэтому источники переносимы.
Как перейти от кода, должен к C++, или к PHP?
Чтобы включить код в C++ или PHP, необходимо использовать ~~ тег для вставки кода, который будет обработан компилятором C++ или интерпретатором PHP.
Строки, начинающиеся с #, являются директивами C++. Это комментарии в PHP и они игнорируются.
Таким образом, приведенный ниже код включает файл C++, не используемый в PHP, и условный код ignor 'en C++, но распознанный в PHP, который игнорирует условие.
~~ #include "header.hpp" #if 0 echo "this is PHP code\n"; #endif ~~
Но с Script 2 это бесполезно. Код целевого файла можно включить в зависимости от расширения файла:
include "forcpp.hpp" // inclus seulement dans le code C++ include "forphp.php" // inclus seulement dans le code PHP
Моя программа не работает
У меня полная установка, с сервером Apache, но моя программа Script PHP показывает ошибку. Вот код:
<sol include("button.php"); ?>
Когда ты привык к классическому языку, такие проблемы часты. Действительно, «include» - ключевое слово в Скриптоле, следует написать:
require("button.php"); ou include_once("button.php").
Можно ли использовать интерпретатор в CGI ?
Это действительно возможно.
Можно ли использовать OpenGL и Glue вместе со Скриптолом
?С компилятором в PHP потребуется расширение до PHP.
С компилятором в C++ можно использовать OpenGL, как с любой программой C++.
Необходимо добавить библиотеку в solc.ini или создать собственный файл конфигурации программы.
Еще не встроен в интерпретатор, но это будет возможно, потому что он расширяемый.
Может ли Скриптол компилировать мои PHP-скрипты?
Скриптол может компилировать только исходники Script в PHP или двоичный файл. Сценарии PHP можно включать только в программу Script.
Как использовать PHP-объекты с Script?
Я использую объект PHP с 5 методами. Если я помещаю объект в VAR, программа работает отлично, но отображается куча сообщений об ошибках.
Необходимо объявить внешний класс PHP, его атрибуты и методы. Кроме того, было бы целесообразно сделать это и с этими функциями. Пример:
extern class xxxx int attribute void fun(int) .... return /class /extern
Затем объявить объект PHP и назначить его с нулем, если класс не распознан интерпретатором PHP:
xxxx myobject = null
PHP: переменные форм не распознаются
Когда я компилирую HTML-страницу, содержащую код Script, HTML-переменные форм не учитываются созданным PHP-кодом.
Если вы установили PHP до версии 4.3, а затем более позднюю версию без обновления php.ini, необходимо внести изменения. После PHP 4.2 должен быть установлен следующий флаг:
register_globals = On
Какие файлы времени выполнения необходимо включить для распространения моего приложения?
Вот что я думаю: очень хороший язык, он может делать .exe, он предоставляет возможности графического интерфейса... Также я могу производить с ним приятные приложения.
Но когда я ее раздаю, какое время выполнения требуется?
Для моего типа работы недопустимо говорить пользователю: «Сначала нужно установить и настроить PHP». Так что ГТК и .NET в будущем меня не интересуют.
Если ваша программа привязана только к статическим библиотекам (расширение lib), требуется только исполняемый файл.
Если только ты не компилируешь с Visual C++, для чего нужен gcms.dll, но скоро это будет удалено.
С другой стороны, динамические библиотеки, в .dll или .so в Linux должны быть включены.
Использовать Visual Studio
Скриптол работает с Visual Studio?
Компилятор можно добавить в качестве внешнего инструмента.
Преобразовать PHP в C++
Хочу конвертировать свои PHP-программы в бинарные. Поскольку синтаксис PHP близок к синтаксису C++, зачем использовать Script вместо прямого преобразования источников?
Изучение Скриптола - вопрос часов. Но для того, чтобы PHP-программа стала исполняемым бинарником, если ты не используешь коммерческий PHP-компилятор (вероятно, ограниченный), тебе также нужно конвертировать PHP-библиотеки, что является вопросом лет (PHP родился в 1995 году и продолжает развиваться).
Компилятор Script останется бесплатным
?Скриптол останется бесплатным и навсегда. Библиотека является открытой и доступна на GitHub. Я лучше продам футболки Script, чем сделаю это платным;)
Как конвертировать руководство в PDF?
Просто загрузить HTML-файл в FreeOffice и экспортировать в PDF.
Считается ли компилятор Script завершенным?
В языке программирования есть три уровня:
- Процедурный язык,
- язык, ориентированный на объект,
- реактивное программирование.
И другие возможности, которые рассматриваются или разрабатываются.
Первые два уровня завершены.
Третий реализован в компиляторе JavaScript.
Когда будет доступна
версия .NET?В ближайшем будущем нет проекта для .NET-версии языка. Версия WebAssembly будет запущена сразу же после выпуска wasm.
При этом каждый волен сделать версию компилятора для любой платформы.
Заказать параллельный порт со сценарием
лапендуледенсент
веб-мастер
лапендуледенсент
веб-мастер
лапендуледенсент
Какие файлы времени выполнения необходимо включить для распространения моего приложения
?электронная почта
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Повторное декларирование: каждый язык OO должен использовать пространства имен
электронная почта
for(int i=0;i<5;i++) { } int i; while(i < 5) { // do something here }Каждый язык OO реализует локальные пространства имен на уровне блоков
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Вот два примера того, что позволяет Скриптол или нет:
Пример 1 (не разрешен)
int i for x in a int i = 5 // mauvais print i * x /for
Пример 2 (РАЗРЕШЕНИЕ)
int i for x in a int j = 5 print j * x /for for x in b int j = 50 print j * x /for
Скриптол не позволяет повторно использовать идентификатор для разных вещей внутри блока. Мы можем сделать это для последовательных блоков. Это устраняет источник недоумения.
Не бойтесь отсутствия идентификаторов: с двумя буквами или цифрами уже можно создать более 1000.