(새 문서: {{사트}} {{파룸배너}} {{인용문|다른건 모르겠고, APL 보단 쉽고 빠르게|라이카 제 0법칙}} == 개요 == RAIKA는 라이카 쿠사노 개발자가 만든 프로그래밍 언어이다. 언어를 만든 이유는 단순히, APL 구조가 너무 귀찮아서라고 한다. 그래서 그런지, APL처럼 법칙을 만들었는데, 단 하나이다. "다른건 모르겠고, APL 보단 쉽고 빠르게" 진짜로 이거다. <s>대놓고 APL 까는셈</s><re...)
 
편집 요약 없음
11번째 줄: 11번째 줄:


== 장점 ==
== 장점 ==
간단하다, 말도 안되게 엄청 간결한데 성능은 APL이랑 비슷하거나 아주 조금 더 빠른 수준, 그리고 메모리 관리는 알아서 해준다. GC가 매우 잘 만들어져있는 편
<s>간단하다, 말도 안되게 엄청 간결한데</s><ref>타입 명시가 문법 표준으로 강제되어서, 사실상 의미가 없어졌다.</ref> 성능은 APL이랑 비슷하거나 아주 조금 더 빠른 수준, 그리고 메모리 관리는 알아서 해준다. GC가 매우 잘 만들어져있는 편


== 단점 ==
== 단점 ==
20번째 줄: 20번째 줄:
* 출력문
* 출력문
  view("Fasia, Lari!")
  view("Fasia, Lari!")
* 입력문<ref>입력받아 값을 넣을 변수는 무조건 fmt 형식이여야한다.</ref>
a fmt = read(">> ")
* 포맷 강제 입력문
// 숫자 입력만 (int, float)
a fmt(only N) = read(">> ")
 
// 문자 입력만 (char)<ref>숫자도 문자 취급된다.</ref>
a fmt(only C) = read(">> ")
// 문자열 입력만 (str)<ref>숫자도 문자열 취급된다.</ref>
a fmt(only S) = read(">> ")
// 사용자 지정 형식<ref>아래는 '숫자 문자 숫자' 형식이다.</ref>
a fmt(structure NCN) = read(">> ")


* 변수 선언 및 대입<ref>타입 명시 필수 아님 : 명시 안 할시 auto로 컴파일 단계에서 작동으로 타입 적용</ref>
* 변수 선언 및 대입<ref>타입 명시 필수 아님 : 명시 안 할시 auto로 컴파일 단계에서 작동으로 타입 적용</ref>
34번째 줄: 51번째 줄:
  d real = 3.14
  d real = 3.14
  e bool = false
  e bool = false
f char = "A"
* 입력 값 해석 예시
// 입력 받기
input fmt
input = read(">> ")
// 전체 입력 보여주기 (str)
view(input)
// 공백으로 구분하여 배열로 보여주기
view(input:)
// 배열 응용 (무조건 str 반환)
view(input:0)
// 타입 명시 반환
view(input:0 <- int)
* 두 수를 입력 받는 더하기 예제
numbers fmt
numbers = read("두 수를 입력하세요 : ")
first int = numbers:0 <- int
second int = numbers:1 <- int
result int = first + second
view($"<first> + <second> = <result>")


== 각주 ==
== 각주 ==

2023년 11월 2일 (목) 02:00 판

파룸의달.png+
파룸  마테소인 뤼미에르 공화국 라네쥬교  피네트어

다른건 모르겠고, APL 보단 쉽고 빠르게

 
— 라이카 제 0법칙

개요

RAIKA는 라이카 쿠사노 개발자가 만든 프로그래밍 언어이다. 언어를 만든 이유는 단순히, APL 구조가 너무 귀찮아서라고 한다. 그래서 그런지, APL처럼 법칙을 만들었는데, 단 하나이다. "다른건 모르겠고, APL 보단 쉽고 빠르게" 진짜로 이거다. 대놓고 APL 까는셈[3]

언어 이름 유래

본인 이름에서 따온 단순한 경우이긴한데... 사실 원래 이름은 라카쿠노였다. 근데 컴파일러 베타 버전을 출시하기 전에 제 0법칙 위반이라면서, 그냥 자기 이름으로 바꿨다.

장점

간단하다, 말도 안되게 엄청 간결한데[4] 성능은 APL이랑 비슷하거나 아주 조금 더 빠른 수준, 그리고 메모리 관리는 알아서 해준다. GC가 매우 잘 만들어져있는 편

단점

컴파일 시간이 길다. APL에 비하여 3~5배 정도 소요된다. 그리고 아직까지는 메모리 보안이 좀 취약하다. GC 자체에 취약점이 있는데, 아무래도 고치기 어려워하는 듯 하다. 이게 문제인 점은 GC를 끌 수도 없어서[5] 신뢰성이 중요한 곳에선 아직까진 APL과 범용해서 사용한다.

문법

  • 출력문
view("Fasia, Lari!")
a fmt = read(">> ")
  • 포맷 강제 입력문
// 숫자 입력만 (int, float)
a fmt(only N) = read(">> ")
 
// 문자 입력만 (char)[7]
a fmt(only C) = read(">> ")

// 문자열 입력만 (str)[8]
a fmt(only S) = read(">> ")

// 사용자 지정 형식[9]
a fmt(structure NCN) = read(">> ")
  • 변수 선언 및 대입[10]
a create
b = 1
c = "Fasia!"
d = 3.14
e = false
  • 타입 명시 변수 선언
a int
b int = 1
c str = "Fasia!"
d real = 3.14
e bool = false
f char = "A"
  • 입력 값 해석 예시
// 입력 받기
input fmt
input = read(">> ")

// 전체 입력 보여주기 (str)
view(input)

// 공백으로 구분하여 배열로 보여주기
view(input:)

// 배열 응용 (무조건 str 반환)
view(input:0)

// 타입 명시 반환
view(input:0 <- int)

  • 두 수를 입력 받는 더하기 예제
numbers fmt
numbers = read("두 수를 입력하세요 : ")

first int = numbers:0 <- int
second int = numbers:1 <- int

result int = first + second

view($"<first> + <second> = <result>")

각주

  1. 2024년 6월 28일 22시 15분 14초 기준. 미디어위키 표현식의 한계에 의해서 이 값은 정확하게 나타나기 힘들다. 정확한 값을 얻기 위해서는 사트/표준#Python 구현에서 설명하는 방법을 통하는 것이 바람직하다.
  2. 디스코드 서버에는 차단된 사람이 아니라면 누구나 들어올 수 있습니다.
  3. 근데 또 APL 기반으로 컴파일러를 만들었다. 100%까진 아니고 한 80% 나머진, CSMFlang이 사용되었다.
  4. 타입 명시가 문법 표준으로 강제되어서, 사실상 의미가 없어졌다.
  5. 프로그램에 강제로 내장 된다.
  6. 입력받아 값을 넣을 변수는 무조건 fmt 형식이여야한다.
  7. 숫자도 문자 취급된다.
  8. 숫자도 문자열 취급된다.
  9. 아래는 '숫자 문자 숫자' 형식이다.
  10. 타입 명시 필수 아님 : 명시 안 할시 auto로 컴파일 단계에서 작동으로 타입 적용