빨간색(프로그래밍 언어)
Red (programming language)![]() | |
패러다임 | 명령형, 기능형, 기호형 |
---|---|
설계자 | 네나드 라코체비치 |
개발자 | 네나드 라코체비치 |
처음 등장한 | 2011 |
안정된 릴리스 | |
OS | Linux, Windows, OS X, 음절 |
면허증. | 변경된 BSD 및 부스트 |
파일 이름 확장명 | .red, .timeout |
웹 사이트 | www |
영향을 받다 | |
레볼, 스칼라, 루아 |
빨간색은 프로그래밍 언어인 Rebol의 한계를 극복하기 위해 설계된 프로그래밍 언어입니다.빨간색은 2011년 네나드 라코체비치에 의해 도입되었으며 필수 및 기능 프로그래밍 언어입니다.구문과 일반적인 용법이 해석된 Rebol 언어와 중복됩니다.
Red의 구현 선택은 완전한 스택프로그래밍 언어를 작성하는 것입니다.빨간색은 매우 높은 수준의 프로그래밍(DSL 및 GUI)과 낮은 수준의 프로그래밍(운영 체제 및 장치 드라이버)에 사용할 수 있습니다.어프로치의 열쇠는, 언어에는 빨강/시스템과 빨강의 2개의 파트가 있습니다.
- 빨간색/시스템은 C와 비슷하지만 리볼 어휘 구조로 패키지화되어 있습니다.예를 들어 다음과 같습니다.
if x > y [print "Hello"]
대신if (x > y) {printf("Hello\n");}
. - 빨간색은 레볼과 같은 의미론을 가진 메타 프로그래밍이 가능한 호모아이코닉 언어입니다.Red의 런타임 라이브러리는 Red/System으로 작성되어 있으며, 하이브리드 접근 방식을 사용한다: 그것은 정적으로 추론할 수 있는 것을 컴파일하고 그렇지 않으면 내장된 인터프리터를 사용한다.프로젝트 로드맵에는 중간 사례를 위한 저스트 인 타임 컴파일러가 포함되어 있지만 아직 구현되지 않았습니다.
Red는 다른 툴 체인으로부터 독립되어 있는 것을 목표로 하고 있으며, 독자적인 코드 생성을 수행합니다.따라서 명령줄 스위치를 통해 Red 프로그램을 지원하는 모든 플랫폼에서 다른 플랫폼으로 교차 컴파일할 수 있습니다.Red와 Red/System은 모두 수정된 BSD 라이선스에 따라 오픈 소스 소프트웨어로 배포됩니다.런타임 라이브러리는 보다 관대한 Boost Software License에 따라 배포됩니다.
버전 0.6.4에서 Red에는 가비지 컬렉터 "Simple GC"[1]가 포함되어 있습니다.
서론
레드는 2011년 2월 레볼 & 보론 컨퍼런스에서[2] 저자인 네나드 라코체비치에 의해 네덜란드에 소개되었습니다.2011년 9월, Red 프로그래밍 언어는 2011년 소프트웨어 [3]자유의 날 동안 더 많은 청중에게 소개되었습니다.Rakochevich는 오랫동안 Rebol의 개발자로, Sheyenne HTTP [4]서버의 작성자로 알려져 있습니다.
특징들
Red의 구문과 의미론은 Rebol의 구문과 매우 유사합니다.Rebol과 마찬가지로 메타프로그래밍과 도메인 고유 언어(DSL)를 강력하게 지원하므로 방언(내장 DSL 생성)에 매우 효율적인 도구입니다.빨간색은 시스템 프로그래밍 기능을 제공하는 C 레벨 언어인 Red/System이라는 사투리를 포함합니다.빨간색은 DLL(libRed)로 다른 도구 및 언어와 쉽게 통합할 수 있으며 매우 가볍습니다(약 1MB).또한 다양한 플랫폼(아래의 크로스 컴파일 섹션 참조)으로 크로스 컴파일하여 필요한 플랫폼용 패키지(예를 들어 Android의 .APK)를 작성할 수 있습니다.Red는 또한 기본 반응형 데이터 흐름 엔진에 기반한 완전 반응형 교차 플랫폼 GUI 시스템, SVG에 필적하는 2D 도면, 컴파일 시간 및 런타임 매크로 지원, 40개 이상의 표준 데이터 유형을 포함합니다.
목표들
다음은 2011년 소프트웨어 자유의 날에 제시된 Red의 목표 목록입니다.
- 심플성('IDE'는 코드를 쓰는 데 필요하지 않습니다.")
- 콤팩트함(「표현력이 뛰어나면 생산성이 최대화됩니다.")
- 속도('너무 느리면 범용성이 부족합니다')")
- "친환경"을 중시하고 설치 공간이 작습니다("리소스는 무한하지 않기 때문입니다."")
- 유비쿼티("모든 곳에 확산")
- 휴대성, Write는 모든 장소에서 한 번 실행됩니다("이것은 프로그래밍 언어에서 가장 기대하지 않는 것입니다).")
- 유연성('최상은 아니지만 어떤 작업에도 적합합니다!')
발전
Red의 개발은 다음 두 단계로 진행될 예정입니다.
- 초기 단계:빨간색 및 빨간색/시스템 컴파일러가 Rebol 2로 작성됨
- 부트스트랩 단계:빨간색 및 빨간색/시스템 컴파일러와 빨간색 JIT 컴파일러가 함께 제공됩니다.모두 빨간색으로 기재되어 있습니다.
교차 컴파일
Red는 현재 다음과 같은 교차 컴파일 대상을 지원합니다.
- MS-DOS: Windows, x86, 콘솔(및 GUI) 애플리케이션
- Windows:Windows, x86, GUI 애플리케이션
- Linux: Linux, x86
- Linux-ARM: Linux, ARMv5, Armel(소프트 플로트)
- 라즈베리 파이: Linux, ARMv5, Armhf(하드 플로트)
- FreeBSD: x86
- Darwin: OS X Intel, 콘솔(및 GUI) 애플리케이션
- 음절:음절 OS, x86
- 안드로이드:Android, ARMv5
- Android-x86: Android, x86
(주의: 이 목록은 시간이 지남에 따라 증가하므로 불완전한 것으로 간주됩니다.)
헬로 월드!
빨간색 [제목: "간단한 hello 월드 스크립트"] 인쇄물 '헬로 월드'
요인 예제
중요: 구문 예시를 목적으로 합니다.Red가 64비트를 지원할 때까지 정수 예제는 32비트 정수를 매우 빠르게 오버플로합니다.그걸 'float'로 바꿔!'는 더 멀리 가겠지만 이는 언어의 구문을 보여주기 위한 것입니다.
다음은 빨간색 요인 예제입니다.
빨간색 [제목: "요인 스크립트"] 주의: 제목은 옵션입니다. 요인: 기능하다 [ x [정수!] ; 빨간색으로 인수 유형을 지정하는 것은 옵션입니다. ][ 어느 하나 x = 0 [1][x * 요인 x - 1] ]
다음은 Red/System의 동일한 요인 예제입니다(이 경우 소스 코드는 Red 버전과 매우 유사함).
빨간색 / 시스템 [제목: "요인 스크립트"] 요인: 기능하다 [ x [정수!] 빨간색/시스템에서는 필수입니다. 반품: [정수!] 빨간색/시스템에서는 필수입니다. ][ 어느 하나 x = 0 [1][x * 요인 x - 1] ]
「 」를 참조해 주세요.
레퍼런스
- ^ a b lucindamichele. "0.6.4 Simple GC and Pure Red GUI Console". Retrieved 2018-12-16.
The main feature for 0.6.4 is what we call the Simple GC (Garbage Collector). A more advanced GC is planned for the future
- ^ "New Red Programming Language Gets Abline Backend", osnews.com, 2011년 5월
- ^ § 빨간색 프로그래밍 언어: 레드 at Software Freedom Day 2011 ©, red-lang.org, 2011년 9월 14일.
- ^ ① 샤이엔이란? § 2017년 11월 마지막 참조.