Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Qore Scripts  





2 Syntax  





3 Data Types  





4 Multithreading  





5 Garbage Collection  





6 Support for Code Embedding and Sandboxing  





7 Runtime Library  





8 Testing  





9 Availability  





10 References  





11 External links  














Qore (programming language)






Português
Slovenčina
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Qore
Paradigmmulti-paradigm: thread safe/parallel/shared memory, functional, imperative, object-oriented (class-based), procedural, functional
Designed byDavid Nichols
DeveloperDavid Nichols
Stable release

1.16.1 / July 2, 2023; 12 months ago (2023-07-02)

Typing disciplineDynamic, Optionally Strong
Implementation languageC++, Pthreads
OSCross-platform
LicenseMIT License, GNU General Public License, GNU Lesser General Public License
Filename extensions.q, .qm, .qtest
Websitewww.qore.org
Influenced by
Perl, D, C++, Java

Qore is an interpreted, high-level, general-purpose, garbage collected dynamic programming language, featuring support for code embedding and sandboxing with optional strong typing and a focus on fundamental support for multithreading and SMP scalability.

Qore is unique because it is an interpreted scripting language with fundamental support for multithreading (meaning more than one part of the same code can run at the same time), and additionally because it features automatic memory management (meaning programmers do not have to allocate and free memory explicitly) while also supporting the RAII idiom with destructors for scope-based resource management and exception-safe programming.[1] This is due to Qore's unique prompt collection implementation for garbage collection.

Qore Scripts[edit]

Qore scripts typically have the following extensions:

Executable Qore scripts on Unix-like operating systems will typically start with a hashbang to specify the filename of the interpreter as follows:

#!/usr/bin/env qore

Syntax[edit]

Qore syntax is similar to and inspired from the following programming languages:[2]

Data Types[edit]

Basic types include: boolean, string, integer, float, date, binary,[4] list, hash (associative arrays), and object,[5] as well as code code for code used as a data type.[6]

Complex types are also supported such as hash<string, bool>, list<string>, reference<list<string>> as well as type-safe hashes.

Multithreading[edit]

Despite being an interpreted language, Qore was designed to support multithreading as a fundamental design principle. All elements of Qore are thread-safe, and the language in general has been designed with SMP scalability in mind. Because all elements of the language were designed to support multithreading, Qore programs and scripts do not have to limit themselves to a subset of Qore's functionality, which is also why there is no Global interpreter lock in Qore.[7]

Threading functionality in Qore is provided by the operating system's POSIX threads library.

Garbage Collection[edit]

Qore features a unique garbage collection approach called prompt collection that allows destructors to be run immediately when objects go out of scope, even if they have recursive references back to themselves. This allows for Qore to support the RAII idiom and also perform garbage collected automatic memory management.

Support for Code Embedding and Sandboxing[edit]

Qore was designed to support embedding and sandboxing logic in applications; this also applies to applications written in Qore as well as applications using the Qore library's public C++ API. By using the Program class which represents a logic container with sandboxing controls, discrete objects can be created and destroyed at runtime containing embedded code to extend or modify the behavior of your application in user-defined ways.[8]

Runtime Library[edit]

Qore's standard runtime library supports data mapping, APIs for communicating with databases (including high-level APIs for SQL operations, schema management, and DBA actions), client APIs and server infrastructure implementations for many protocols including HTTP, REST (with REST schema validation/code generation including Swagger support), client/server SOAP support (including code and message generation), WebSocket, RPC protocols, generic connector APIs, generic data mapping APIs, and many file format and file- and data-exchange protocols and more.[9]

Testing[edit]

Qore supports testing through the QUnit module which facilitates automated testing and Continuous integration processes for code written in Qore.

Availability[edit]

Qore's Git (software) repository is hosted on GitHub. Binary packages are available as RPM s, in MacPorts and in FreeBSD Ports as well as for other operating systems, including Microsoft Windows; see General Source and Download Info on the Qore wiki for more information.

References[edit]

  1. ^ "Why use Qore?". Qore.org. 2016-06-13. Retrieved 2016-06-14.
  • ^ "qore/ABOUT at develop · qorelanguage/qore · GitHub". Github.com. Retrieved 2016-08-10.
  • ^ "Qore Programming Language Reference Manual: Parse Directives". Docs.qore.org. Retrieved 2016-08-10.
  • ^ "Basic Data Types". Qore.org. Retrieved 2012-05-31.
  • ^ "Qore Programming Language Reference Manual: Container Data Types". Docs.qore.org. Retrieved 2016-08-10.
  • ^ "Qore Programming Language Reference Manual: Code Data Types". Docs.qore.org. Retrieved 2016-08-10.
  • ^ "Qore Programming Language Reference Manual: Threading". Docs.qore.org. Retrieved 2016-08-10.
  • ^ "Program Class". Qore.org. Retrieved 2016-06-13.
  • ^ "Modules · qorelanguage/qore Wiki · GitHub". Github.com. 2016-06-12. Retrieved 2016-08-10.
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Qore_(programming_language)&oldid=1217049222"

    Categories: 
    Programming languages
    Dynamic programming languages
    Dynamically typed programming languages
    Free compilers and interpreters
    Free software programmed in C++
    Procedural programming languages
    Object-oriented programming languages
    Scripting languages
    Text-oriented programming languages
    Unix programming tools
    Cross-platform software
    American inventions
    High-level programming languages
    Hidden categories: 
    Articles with short description
    Short description is different from Wikidata
    Wikipedia articles with possible conflicts of interest from July 2019
    Articles lacking reliable references from July 2019
    All articles lacking reliable references
    Articles with topics of unclear notability from May 2023
    All articles with topics of unclear notability
    Articles with multiple maintenance issues
    Official website different in Wikidata and Wikipedia
     



    This page was last edited on 3 April 2024, at 14:54 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki