다람쥐(프로그래밍 언어)
Squirrel (programming language)![]() |
![]() | 이 문서는 갱신할 필요가 있습니다.. (2018년 3월) 하여 이 |
패러다임 | 멀티패러다임: 스크립트, 명령어, 기능, 객체 지향 |
---|---|
설계자 | 알베르토 데미첼리스 |
처음 등장한 | 2003년 9월 6일, | 전(
안정된 릴리스 | 3[1].2 / 2022년 2월 ; 전 ( ) |
타이핑 분야 | 역학 |
OS | 크로스 플랫폼 |
면허증. | MIT 라이선스 |
파일 이름 확장자 | .견과 |
웹 사이트 | squirrel-lang |
영향을 받다 | |
C++, JavaScript, Lua, Python | |
영향받은 | |
MiniD |
Squirl은 높은 수준의 명령형 객체 지향 프로그래밍 언어로, 비디오 게임과 같은 애플리케이션의 크기, 메모리 대역폭 및 실시간 요구사항에 맞는 경량 스크립트 언어입니다.
오픈 소스 크로스 플랫폼 2D 게임을 만들고 배포하기 위한 간단한 툴킷인 MirthKit은 플랫폼에 [2]Squirl을 사용합니다.코드::에 의해 광범위하게 사용됩니다.대본을 위한 블록으로 파이널 판타지 크리스탈 연대기: 마이 라이프 어 [3][4]킹에도 사용되었습니다.또한 스크립트 형식의 이벤트에 대해서는 Left 4 Dead 2, Portal 2 및 Thimbleweed Park에서 사용되며, 일반적인 [5]C 스크립팅 외에 미션 이벤트의 스크립트 작성 수단을 용이하게 하기 위해 비공식적인 Steal 2: The Metal Age 엔진 업데이트인 NewDark에서도 사용됩니다.
언어 기능
- 동적 타이핑
- 위임
- 클래스, 상속
- 고차 함수
- 제너레이터
- 공동 스레드(코루틴)
- 꼬리 재귀
- 예외 처리
- 자동 메모리 관리(주로 백업 가비지 컬렉터에 의한 참조 카운트)
- 참조가 약점
- 컴파일러와 가상 머신은 모두 약 7k줄의 C++ 코드에 대응합니다.
- 옵션 16비트 문자열
구문
Squirl은 C와 같은 구문을 사용합니다.
- 다람쥐의 요인 설계
기능. 요인(x) { 한다면 (x <=> 1) { 돌아가다 1; } 또 다른 { 돌아가다 x * 요인(x-1); } }
- 제너레이터
기능. not_a_module_number_module(맥스.) { 현지의 지난 = 42; 현지의 IM = 139968; 현지의 IA = 3877; 현지의 IC = 29573; 위해서(;;) { // 영원히 루프 산출하다 (맥스. * (지난 = (지난 * IA + IC) % IM) / IM); } } 현지의 랜터 = not_a_module_number_module(100); 위해서(현지의 i = 0; i < > 10; i += 1) 인쇄물(">"+이력서 랜터+"\n");
- 클래스 및 상속
학급 베이스 벡터 { 컨스트럭터(...) { 한다면(불규칙한.렌() >= 3) { x = 불규칙한[0]; y = 불규칙한[1]; z = 불규칙한[2]; } } x = 0; y = 0; z = 0; } 학급 벡터 3 확장 베이스 벡터 { 기능. _추가(다른.) { 한다면(다른. 인스턴스 ::벡터 3) 돌아가다 ::벡터 3(x+다른..x,y+다른..y,z+다른..z); 또 다른 던지다 "필수 파라미터"; } 기능. 인쇄() { ::인쇄물(x+","+y+","+z+"\n"); } } 현지의 v0 = 벡터 3(1,2,3) 현지의 v1 = 벡터 3(11,12,13) 현지의 v2 = v0 + v1; v2.인쇄();
적용들
Squirl을 사용하는 응용 프로그램
다람쥐를 이용한 게임
- Left 4 Dead 2 [7]
- 도둑 II(비공식 NewDark 엔진 업데이트)
- 포털 2 [7]
- 외계인 무리 [7]
- 타이탄 폭포 [7]
- 에이펙스 레전드 [9]
- 핵 여명 [7]
- OpenTTD [10]
- GTA IV의 IV-MP
- 마피아 II의 M2 멀티플레이어
- 카운터 스트라이크: 글로벌 공세 [7]
- 그림자 전사
- 워 썬더
- F.O.A.D.
- 슈퍼턱스
- 배틀 브라더스
- Sonic 언리시드 (PS2/Wii)
- 전염(PC)
- 심블위드 공원 [14]
- 시무트란스 [15]
- Grand Theft Auto용 모드인 Vice City Multiplayer: 바이스 시티
- 해방된 자유 [18]
- Zero no 츠카이마 - 무마가 츠무구 요카제의 밤 (PS2)
- Zero no 츠카이마 - 마이고의 기간에서 이쿠센의 교향곡 (PS2)
- 제로노 츠카이마 - 쇼아쿠마에서 하루카제의 협주곡 (PS2)
- 일반 꽃의 항문합 [19]
- 파이널 판타지 크리스탈 크로니클스: 나의 왕으로서의 삶 [3]
역사
이 언어는 zlib/[20]libpng 라이선스로 2003년에 공개되었습니다.2010년 11월에는 프로젝트를 Google Code에서 [21][22]호스트할 수 있도록 라이선스가 MIT 라이선스로 변경되었습니다.그것은 Alberto Demichelis에 의해 개발되고 유지된다.
「 」를 참조해 주세요.
레퍼런스
- ^ https://github.com/albertodemichelis/squirrel/blob/master/HISTORY 를 참조해 주세요.
- ^ MirthKit 개발자 Wiki 2014-02-11 Wayback Machine에 보관
- ^ a b Brandon Boyer (21 February 2008). "Gamasutra - GDC 2008 Event Coverage". gamasutra.com. Gamasutra.
- ^ "Exclusive: Behind The Scenes of Final Fantasy's WiiWare Debut". gamasutra.com. Gamasutra. 23 June 2008. Retrieved 22 September 2011.
- ^ "L4D2 Vscripts - Valve Developer Community". developer.valvesoftware.com. Retrieved 2018-07-06.
- ^ "Electric Imp programming guide". electricimp.com.
- ^ a b c d e f g "VScript". valvesoftware.com. 2014-08-20. Retrieved 2015-01-17.
- ^ "NewDark 1.25: Squirrel script?". ttlg.com. 2017-03-20. Retrieved 2019-12-25.
- ^ "WHAT in the hell, is consumable nut? Please help this is an error code I got, have any of you got this before?". reddit.com. 2019-03-24. Retrieved 2021-09-04.
- ^ "AI:Main Page - OpenTTD". wiki.openttd.org. Retrieved 2018-07-06.
- ^ "iv-multiplayer.com". www.iv-multiplayer.com. Archived from the original on 2012-06-07. Retrieved 2018-07-06.
- ^ "m2-multiplayer.com". www.m2-multiplayer.com. Archived from the original on 2013-01-02. Retrieved 2018-07-06.
- ^ "The VG Resource Wiki". wiki.vg-resource.com. Retrieved 2021-09-04.
- ^ "Thimbleweed Park Blog- Engine". blog.thimbleweedpark.com. Retrieved 2018-07-06.
- ^ "Simutrans-Squirrel-API: Main Page". dwachs.github.io. Retrieved 2018-07-06.
- ^ 바이스 시티 멀티플레이어
- ^ "Welcome To VC-MP website!". Archived from the original on 2006-04-05. Retrieved 2014-05-04.
- ^ "Liberty Unleashed". Retrieved 2019-12-04.
- ^ "th155-decomp". GitHub. Retrieved 2020-10-19.
- ^ "The Squirrel programming language". SourceForge. Retrieved 2018-07-06.
- ^ "Moving to code.google.com and MIT License - The Language - Squirrel - The Programming Language". forum.squirrel-lang.org. Retrieved 2018-07-06.
- ^ "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com. Retrieved 2018-07-06.