Qore(프로그래밍 언어)
Qore (programming language)![]() |
패러다임 | 멀티 소켓: 스레드 세이프/스위치/공유 메모리, 기능, 필수, 객체 지향(클래스 베이스), 절차, 기능 |
---|---|
설계자 | 데이비드 니콜스 |
개발자 | 데이비드 니콜스 |
안정된 릴리스 | 1.0.9 / 2021년 10월 , 전( |
타이핑 분야 | 다이내믹, 옵션 강화 |
구현 언어 | C++, Pthreads |
OS | 크로스 플랫폼 |
면허증. | MIT 라이선스, GNU General Public License, GNU Lesser General Public License |
파일 이름 확장자 | .q ,.qm ,.qtest |
웹 사이트 | www |
영향을 받다 | |
Perl, D, C++, Java |
Qore는 해석된 고급 범용 가비지 수집 다이내믹 프로그래밍 언어입니다.옵션의 강력한 타이핑으로 코드 임베딩과 샌드박스를 지원하고 멀티스레딩과 SMP scalability의 기본 지원에 초점을 맞춥니다.
Qore는 멀티스레딩(같은 코드의 여러 부분을 동시에 실행할 수 있음)을 기본적으로 지원하는 인터프리티드 스크립트 언어이며, RAII ID를 지원하면서 자동 메모리 관리(프로그래머가 명시적으로 메모리를 할당 및 해방할 필요가 없음)를 갖추고 있기 때문에 독특합니다.iom에는 스코프 기반의 자원 관리 및 예외적인 안전한 프로그래밍을 [1]위한 파괴자가 포함되어 있습니다.이는 가비지 수집을 위한 Qore만의 프롬프트 수집 구현 때문입니다.
Qore 스크립트
Qore 스크립트는 일반적으로 다음과 같은 확장 기능을 가지고 있습니다.
.q
: Qore 스크립트의 경우.qm
: Qore 사용자 모듈의 경우.qtest
: Qore 테스트스크립트의 경우
Unix와 같은 운영체제 상에서 실행 가능한 Qore 스크립트는 보통 해시방부터 시작하여 다음과 같이 인터프리터의 파일명을 지정합니다.
#!/usr/bin/env qore
구문
Qore 구문은 다음과 같은 [2]프로그래밍 언어와 유사하며 이러한 언어에서 영감을 얻습니다.
- Perl: 없음
%new-style
Qore의 구문은 Perl과 매우 유사합니다.foreach
진술,splice
,push
,pop
,chomp
연산자, Perl5 호환 정규 표현 등 - Java: 포함
%new-style
Qore 코드는 Java와 [3]비슷합니다.synchronized
키워드,instanceof
연산자, 객체 및 클래스 구현 - C++: 다중 상속, 예외 처리, 정적 메서드, 추상 메서드
- D: 그
on_exit
,on_success
,그리고.on_error
D와 유사한 예외 인식 기능을 제공합니다.scope(exit)
,scope(failure)
예외 인식 청소 코드를 청소가 필요한 코드 옆에 배치할 수 있습니다. - 하스켈:
map
,foldl
,foldr
,그리고.select
기능 및 목록 연산자와 문장의 평가가 느린 연산자
데이터형
기본 유형은 다음과 같습니다.boolean
,string
,integer
,float
,date
,binary
,[4] list
,hash
(어소시에이션 어레이), 및object
,[5] 및 코드code
데이터 [6]유형으로 사용되는 코드의 경우.
다음과 같은 복잡한 유형도 지원됩니다.hash<string, bool>
,list<string>
,reference<list<string>>
그리고 타입 세이프 해쉬도 있습니다.
멀티스레딩
Qore는 인터프리터 언어임에도 불구하고 기본 설계 원칙으로서 멀티스레딩을 지원하도록 설계되었습니다.Qore의 모든 요소는 스레드 세이프이며 일반적으로 언어는 SMP 확장성을 고려하여 설계되었습니다.언어의 모든 요소가 멀티스레딩을 지원하도록 설계되었기 때문에 Qore 프로그램 및 스크립트는 [7]Qore 기능의 서브셋으로 제한될 필요가 없습니다.따라서 Qore에는 글로벌인터프리터 잠금이 없습니다.
Qore의 스레드 기능은 운영 체제의 POSIX 스레드 라이브러리에 의해 제공됩니다.
가비지 컬렉션
Qore는 프롬프트 수집이라고 불리는 고유한 가비지 수집 방식을 갖추고 있습니다.이 접근방식은 오브젝트가 범위를 벗어났을 때 디스트럭터를 즉시 실행할 수 있도록 합니다.이것은 오브젝트 자체에 재귀 참조가 있는 경우에도 마찬가지입니다.이를 통해 Qore는 RAII 관용어를 지원하고 가비지 수집 자동 메모리 관리도 수행할 수 있습니다.
코드 임베딩 및 샌드박스 지원
Qore는 임베딩 및 샌드박스 로직을 지원하도록 설계되었으며, Qore 라이브러리의 퍼블릭 C++ API를 사용하는 애플리케이션뿐만 아니라 Qore로 작성된 애플리케이션에도 적용됩니다.를 사용하여Program
샌드박스 제어가 있는 논리 컨테이너를 나타내는 클래스. 사용자 정의 방식으로 [8]응용 프로그램의 동작을 확장하거나 수정하기 위해 임베디드 코드를 포함하는 런타임에 개별 개체를 만들고 파괴할 수 있습니다.
런타임 라이브러리
Qore의 표준 런타임 라이브러리는 데이터 매핑, 데이터베이스와 통신하기 위한 API(SQL 운영, 스키마 관리 및 DBA 작업용 고급 API 포함), HTTP, REST(Swagger 지원 포함 REST 스키마 검증/코드 생성 포함), 클라이언트 API 및 서버 인프라스트럭처 구현을 지원합니다./server SOAP 지원(코드 및 메시지 생성 포함), WebSocket, RPC 프로토콜, 범용 커넥터 API, 범용 데이터 매핑 API 및 많은 파일 형식, 파일 및 데이터 교환 프로토콜 등.[9]
테스트
Qore는 Qore로 작성된 코드의 자동 테스트 및 연속 통합 프로세스를 지원하는 Qnit 모듈을 통한 테스트를 지원합니다.
유용성
Qore의 Git(소프트웨어) 저장소는 GitHub에서 호스팅됩니다.바이너리 패키지는, MacPort 및 FreeBSD 포토, 및 Microsoft Windows 를 포함한 그 외의 operating system에서는 RPM 으로 이용할 수 있습니다.자세한 것에 대하여는, Qore wiki 의 General Source 와 Download Info 를 참조해 주세요.
레퍼런스
- ^ "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.