Скриптол - часто задаваемые вопросы

Язык


Скриптол и PHP

Скриптол и C++

Скриптольный интерпретатор

Расширения

Инструменты

Маркетинг и будущее

 

Можно ли вызвать конструктора базового класса в унаследованном классе?

Я наследую класс Car от класса Vehicle, например. Могу я позвонить производителю Vehicle из Car? Я делаю это на Java.

Java имеет ключевое слово «super» для вызова конструктора класса из унаследованного класса.
В Скриптоле нет эквивалента. При вызове конструктора суперкласса создается новый его экземпляр.
Но ты можешь присвоить атрибуты базового класса в конструкторе унаследованного класса, что равносильно «супер» Java.

Супер инструкция была добавлена в Script 2 в 2014 году. Это позволяет переключаться с параметров на конструктор унаследованного класса.

Код C++ в моей программе не компилируется

Когда я вызываю solc, я получаю следующие ошибки как при компиляции, так и при редактировании ссылок:
« Недопустимая команда».

Нужно проверить, доступен ли компилятор C++.
Ввести:
bc32  или  
gcc -v   или 
cl/?

Если версия отображается, установка правильная, иначе программа должна быть доступна, для этого ее нужно добавить в переменную среды PATH Windows:

  1. Меню Windows
  2. Панель управления
  3. Система
  4. Расширенная вкладку
  5. Кнопка «переменные среды».

Пример с bc32:

PATH = %PATH%;c:\bcc55\bin\ 
ll

Скриптол компилируется в 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 завершенным?

В языке программирования есть три уровня:

  1. Процедурный язык,
  2. язык, ориентированный на объект,
  3. реактивное программирование.

И другие возможности, которые рассматриваются или разрабатываются.
Первые два уровня завершены.
Третий реализован в компиляторе JavaScript.

Когда будет доступна

версия .NET?

В ближайшем будущем нет проекта для .NET-версии языка. Версия WebAssembly будет запущена сразу же после выпуска wasm.

При этом каждый волен сделать версию компилятора для любой платформы.

Форум

Заказать параллельный порт со сценарием

08-07-2009 18:11:36

лапендуледенсент

Привет, Небольшая информация SVP, со скриптолом, скомпилированным под Linux, есть ли возможность заказать чтение или запись порта//через (ioperm в c) или через файл dev/port. Заранее спасибо за ответ. Пьер
09-07-2009 20:28:20

веб-мастер

Доброе утро В каком контексте?
10-07-2009 12:14:20

лапендуледенсент

Привет, создание графического интерфейса с помощью Script
18-07-2009 20:34:41

веб-мастер

На самом деле это зависит только от того, какие книжные магазины будут связаны с приложением. Так же, как и с программой, написанной прямо на C. В стандартной библиотеке языка нет функции для этого. Любую библиотеку можно включить, если определить интерфейс функций.... Пример: In: void maftion (int x) En Script: exter void maftion (int )/exter
19-07-2009 14:23:43

лапендуледенсент

Спасибо за информацию. Так что это возможно в скриптоле. Я проведу тесты. Добрый уик-энд Пьер

Какие файлы времени выполнения необходимо включить для распространения моего приложения

?
20-01-2007 14:59:56

электронная почта

Вот что я думаю: очень хороший язык, он может делать .exe, он предоставляет возможности графического интерфейса... Также я могу производить с ним приятные приложения. Но когда я ее раздаю, какое время выполнения требуется? Для моего типа работы недопустимо говорить пользователю: «Сначала нужно установить и настроить PHP». Так что ГТК и .NET в будущем меня не интересуют.
21-01-2007 15:49:47

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Если ваша программа привязана только к статическим библиотекам (расширение lib), требуется только исполняемый файл. Если только ты не компилируешь с Visual C++, для чего нужен gcms.dll, но скоро это будет удалено. С другой стороны, динамические библиотеки, в .dll или .so в Linux должны быть включены. Скриптол PHP использует функции и расширения PHP, устанавливать нечего, кроме PHP!

Повторное декларирование: каждый язык OO должен использовать пространства имен

20-01-2007 15:01:28

электронная почта

Если пользователи не могут повторно использовать идентификаторы внутри блоков, может не хватить идентификаторов. Кроме того, только одно упущение инициализации, за которым следует использование переменной, пропускает элементы управления назначениями.
for(int i=0;i<5;i++) { } 
int i; 
while(i < 5) { 
  // do something here 
}
Каждый язык OO реализует локальные пространства имен на уровне блоков
21-01-2007 15:48:47

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Вот два примера того, что позволяет Скриптол или нет:
Пример 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.