새로운 LISP
newLISP
![]() 새로운 LISP 잠자리 로고 | |
패러다임 | 다중 패러다임 |
---|---|
가족 | 리스프 |
설계자 | 루츠 뮐러 |
개발자 | 루츠 뮐러 |
처음 등장한 | 전( |
안정된 릴리스 | 10.7.5 / 2019년 5월 [1] , 전( |
프리뷰 릴리즈 | 10.7.4 / 2018년 9월 [1] , 전( |
범위 | 역학 |
플랫폼 | IA-32, x86-64 |
OS | 크로스 플랫폼:Unix, Unix 라이크, Windows |
면허증. | GPLv3+ |
웹 사이트 | www |
영향을 받다 | |
C, 공통 리스프, Perl, 스킴 |
newLISP는 Lisp 계열의 프로그래밍 언어인 스크립트 언어입니다.그것은 Lutz Mueller에 [2]의해 설계되고 개발되었습니다.newLISP는 GNU General Public License 버전 3 이후에 출시된 무료 오픈 소스 소프트웨어입니다.
역사
newLISP 설계는 2개의 주요 리스프 방언인 Common Lisp와 Scheme와 Pascal과 [citation needed]C와 같은 다른 언어에 영향을 받습니다.newLISP는 1991년에 시작되어 Sun-4 워크스테이션에서 [3]개발되었습니다.이후 Windows 3.0으로 이행하여 1993년경 버전 1.3이 CompuServe에서 출시되었으며 이후 Windows 그래픽 사용자 인터페이스(GUI) 그래픽 지원 응용 프로그램과 DOS 콘솔 응용 프로그램(둘 다 16비트)으로 사용할 수 있게 되었습니다.1995년에 Windows 95가 출시되면서 newLISP는 32비트로 전환되었습니다.
1999년 4월, newLISP는 Linux로 이식되었습니다.핵심 알고리즘의 일부가 변경되어 Windows 고유의 코드가 모두 삭제되었습니다.newLISP는 GPL에 따라 라이센스가 부여된 오픈 소스 소프트웨어 프로젝트로 출시되었으며 버전 6.0.25 이후 Windows에서의 개발이 중단되었습니다.2001년 상반기에 newLISP는 그래픽스 기능을 사용하지 않고 Cygwin 플랫폼에서 Windows로 다시 이식되었습니다.2001년 하반기에 newLISP-tk라는 이름의 크로스 플랫폼 Tcl/Tk 프런트엔드가 버전 6.3.0 전후로 출시되었습니다.2006년 버전 9.0의 파일에 대한 정수 연산 및 일부 연산에 대해 64비트 정밀도가 도입되었습니다.
2002년 중반 6.5 출시 이후 개발이 활발히 진행되어 많은 신기능이 [4]추가되었다.
1955 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2(abandoned) | ||||||||||||||
마클리스프 | ||||||||||||||
인터리스크 | ||||||||||||||
MDL | ||||||||||||||
리스프 기계 리스프 | ||||||||||||||
스킴 | R5RS | R6RS | R7RS 소형 | |||||||||||
없음 | ||||||||||||||
ZIL(Zork 구현 언어) | ||||||||||||||
프란츠 리스프 | ||||||||||||||
일반적인 리스프 | ||||||||||||||
르 리스프 | ||||||||||||||
MIT 스킴 | ||||||||||||||
T | ||||||||||||||
체즈 스킴 | ||||||||||||||
Emacs 리스프 | ||||||||||||||
자동 LISP | ||||||||||||||
피코리스프 | ||||||||||||||
EuLisp | ||||||||||||||
ISLISP | ||||||||||||||
오픈리스프 | ||||||||||||||
PLT 방식 | 라켓 | |||||||||||||
GNU Guile | ||||||||||||||
비주얼 LISP | ||||||||||||||
클로쥬르 | ||||||||||||||
호 | ||||||||||||||
LFE | ||||||||||||||
하이 |
철학
newLISP는 Lisp 언어의 고속, 파워풀,[5][6] 크로스 플랫폼, 풀 기능의 스크립트 버전을 제공하면서 데이터 스토리지(디스크 용량 등)나 메모리 등의 시스템 리소스만 사용하려고 합니다.
리스트, 심볼 처리, 함수 매핑, 익명 함수(lambda 식), s-표현식(부적절한 리스트 제외) 및 매크로와 같은 Lisp 기능을 제공합니다.또한 정규 표현식, XML, Unicode(UTF-8), TCP(Transmission Control Protocol), IP(Internet Protocol) 및 UDP(User Datagram Protocol)를 통한 네트워킹, 매트릭스 및 어레이 처리, 고급 수학, 통계 및 베이지안 통계 분석, 수학 등의 최신 스크립트 언어에서 기대되는 함수를 제공합니다.금융, 분산 컴퓨팅 등입니다.
newLISP는 BSD(Berkeley Software Distribution), Linux, macOS, Solaris 및 Windows [1]운영 체제에서 실행됩니다.MYSQL, SQLite 및 ODBC 데이터베이스 액세스, Common Gateway Interface(CGI), Simple Mail Transfer Protocol(SMTP), Post Office Protocol(POP) 3, File Transfer Protocol(FTP) 및 XML Remote Procedure Call(XML-RPC)을 지원합니다.데몬으로서 서버 모드로 실행할 수 있습니다.
언어 기능
콘텍스트
newLISP는 콘텍스트라는 이름의 네임스페이스를 지원합니다.콘텍스트는 변수에 할당하여 함수에 전달할 수 있지만 글로벌하게 고유한 기호와 관련지어져 있어 퍼스트 클래스 시티즌(객체)으로서의 사용이 제한됩니다.프로토타입 기반 객체 지향 프로그래밍 스타일은 새로운 환경에서 가능합니다.LISP, 콘텍스트를 프로토타입으로 사용하여 객체를 구성합니다.콘텍스트 내의 변수는 다른 콘텍스트의 같은 이름의 변수와 간섭하지 않지만 콘텍스트 내의 변수는 다이내믹스코핑 규칙에 따라 동작합니다.
범위 설정
newLISP는 다이내믹스코프를 사용합니다.함수가 호출되면 해당 함수는 동일한 컨텍스트 또는 네임스페이스 내에서 호출자, 호출자 등의 모든 변수를 볼 수 있습니다.외부 환경에서 같은 이름의 변수를 섀도우하는 명시적으로 정의된 로컬 다이내믹 변수와 암묵적으로 정의된 로컬 다이내믹 변수를 모두 지원하므로 실수로 변수를 사용하거나 발신자 환경에서 변경하는 것을 방지할 수 있습니다.호출된 함수의 파라미터 변수는 호출자의 변수 환경을 자동으로 음영합니다.글로벌하게 변수는 별도의 네임스페이스로 그룹화할 수 있습니다.
메모리 관리
newLISP는 ORO(One Reference Only) 메모리 관리라고 하는 기존의 가비지 수집 방식과는 다른 자동 메모리 관리 방식을 사용합니다.각 변수는 컨텍스트에서만 참조되며 각 컨텍스트는 글로벌하게 참조됩니다.
newLISP에서는 오브젝트, 순환 구조체 또는 동일한 오브젝트를 가리키는 여러 변수 간의 서브 오브젝트 공유는 지원되지 않습니다.개체는 데이터 구조에 저장되거나 함수에 전달될 때 복사됩니다. 단, 일부 기본 제공 기능은 제외됩니다.예외는 심볼과 컨텍스트입니다.심볼과 컨텍스트는 복사되지 않고 공유되므로 간접에 사용할 수 있습니다.기호 및 컨텍스트는 글로벌하게 이름이 지정되고 명시적으로 삭제됩니다.기호 또는 컨텍스트를 삭제하면 다른 모든 오브젝트가 스캔되어 참조가 다음으로 대체됩니다.nil
.
GUI 옵션
newLISP Graphical User Interface(GUI; 그래피컬사용자 인터페이스) 서버(newLISP-GS)는 그래픽 프로그래밍 인터페이스를 제공하는 Java 기반의 Internet Protocol Suite(TCP/IP) 서버입니다.새로운 LISP-GS 기반 개발 환경이 새로운 환경에 추가되었습니다.LISP 바이너리 디스트리뷰션 및 GTK 서버, OpenGL 및 Tcl/Tk 기반 프로그래밍 인터페이스를 사용할 수 있습니다.
스탠드아론 바이너리
모든 새로운 버전의 LISP를 사용하면 실행 가능한 파일, 휴대용 응용 프로그램을 구축할 수 있습니다.이러한 애플리케이션은, 독자적인 것으로 인스톨 할 필요가 없습니다.
newLISP에는 Import 기능이 있어 Windows API Win32의 Dynamic Link Library(DLL; 동적 링크 라이브러리) 또는 Linux 또는 Unix의 공유 라이브러리에서 함수를 Import할 수 있습니다.
프레임워크
새로운 웹 프레임워크 이용 가능LISP는 드래곤플라이와 [8]로켓을 포함한다[7].
레퍼런스
- ^ a b c "newLISP". Retrieved 2018-11-20.
- ^ Walling, Rob. "An Interview with Lutz Mueller, Creator of newLISP". Softwarebyrob.com. Archived from the original on 2007-10-31. Retrieved 2018-11-20.
- ^ Mueller, Lutz. "newLISP – a LISP Scripting Language". don Lucio. Retrieved 2018-11-20.
- ^ Kobayashi, Shigeru. "kosh04/newlisp". GitHub. Retrieved 2018-11-20.
- ^ "Category:newLISP". Rosetta Code. Retrieved 2018-11-20.
- ^ Lazar, Alexandru (5 January 2009). "A look at newLISP". OSNews. Retrieved 2018-11-20.
- ^ Slepak, Greg; Hildmann, Marc. "Dragonfly web framework". AppTruck. Retrieved 2018-11-20.
- ^ Reimer, Jeremy. "The newLISP on Rockets 2.0 Blog". Rocket Man. Retrieved 2018-11-20.