Frequently Asked Questions
General
See our What Is INTEGRAL page.
Make electronic documents and presentations. Publish scientific, technical and educational applications consisting of complex text, tables, illustrations and mathematical formulas. Serve dynamic content. Build websites, web applications, web publishing services and more.
INTEGRAL DSL
INTEGRAL DSL extends the Squirrel programming language and is fully backward compatible with it. At the same time, INTEGRAL DSL offers functionality that is not available in the core Squirrel language.
Just as Squirrel, INTEGRAL DSL is similar to C, C++ and Java in syntax but has a much more dynamic nature. Anyone familiar with C, C++, Java or JavaScript will should have no trouble learning INTEGRAL DSL. See the INTEGRAL Demos page for some examples.
While Squirrel programming language is not as popular as C, C++, Java or JavaScript, it has a great combination of features that makes it suitable for a lightweight and cross-platform electronic publishing system like INTEGRAL. Squirrel makes INTEGRAL independent of external libraries, tools and web services — so that you can have a complete web publishing control at your fingertips.
Besides being lightweight, Squirrel has other features that make it a perfect choice for INTEGRAL. For example:
- Squirrel supports operator overloading, so that operators such as + (addition), / (division) or modulo (%) can operate on any objects and assume functions that go beyond basic math. INTEGRAL DSL could not exist without this feature. For example, in INTEGRAL DSL the operator + is frequently used for string and object concatenation. Or, when working with INTEGRAL tables and other layout structures, the operator / makes a new table cell, while the operator % makes a new table row.
- Squirrel supports classes as first class citizens so creating object oriented programs is easier than with languages such as JavaScript where object orientation is an afterthought.
- Squirrel can interpret JSON
(a lightweight data-interchange format) natively. This makes Squirrel a very interoperable language and suitable for building websites, web services and similar data driven applications.
- Squirrel runs in its own virtual process so that programming errors don't cause the entire INTEGRAL system to lock up or crash.
- Squirrel uses reference counting that frees objects at the point they are no longer used. In contrast, languages like Java and JavaScript use garbage collection that pauses the execution of programs periodically.
There are many other reasons but we can't list them all here. We encourage you to explore INTEGRAL and discover some of them for yourself.
INTEGRAL DSL source code can be interpreted or compiled into bytecode. INTEGRAL Desktop Professional provides a standalone INTEGRAL DSL Compiler. In either form — interpreted or compiled — you can run INTEGRAL DSL programs on any supported platform (e.g. Linux, Windows, macOS) with 100% identical results.
Getting Started
On macOS Catalina, when launching INTEGRAL Desktop or INTEGRAL Server for the very first time, you might see a dialog box with the following message: "integral-editor-osx" (or "integral-server-osx") cannot be opened because the developer cannot be verified. The dialog box does not seem to provide any way to bypass this restriction, only to cancel the action or move the application to Trash.
To resolve this, go to System Preferences → Security & Privacy → General. At the bottom of the window you should see: "integral-editor-osx" (or "integral-server-osx") was blocked from use because it is not from an identified developer. Click the Allow Anyway button and close the window. Launch integral-editor-osx (or integral-server-osx) again. You will see the same dialog box once again, but this time it should provide the Open button. Click Open and the application should start. Next time you launch INTEGRAL Desktop or INTEGRAL Server you should not see this dialog box again.