본문으로 이동
FF

frtm for Android APK

발행자: Tomohide NANIWA
Android APK $1.00
다운로드 0 다운로드
파일 유형APK
발행자 Tomohide NANIWA
출시일2019. 10. 19.
추가 된 날짜2019. 10. 19.
OS 요구 사항Android
요구 사항Requires Android
총 다운로드0
가격$1.00

기술

Frtm(FoRth Modoki)은 프로그래밍 언어 FORTH를 시뮬레이션하는 소프트웨어입니다. 그러나 엄격한 FORTH를 재현하기 위한 것은 아닙니다. 컴파일러는 없지만 사용자 정의 단어의 단어와 상수는 등록 시 해석됩니다.

FORTH와 다른 측면도 있습니다. frtm에는 반환 스택을 조작할 단어가 없는 반면 frtm은 단어의 재귀 정의를 허용합니다.

Frtm은 실수 계산도 지원합니다. 지수, 제곱근, 삼각 함수, 쌍곡선 함수, 비트 연산과 같은 수학 함수가 있습니다. 따라서 frtm은 공학용 계산기의 대체 소프트웨어가 될 수 있습니다.

표현의 해석은 RPN(Reverse Polish Notation)에 따라 수행됩니다. Frtm은 조건 분기 "if", 루프 "do-while" 및 "for-loop"에 대한 구조를 가지고 있습니다. 단어를 조합하여 새로운 단어를 만들 수도 있습니다.

Android OS에서는 사전의 초기 크기와 스택의 구성, 사전에 있는 단어를 "단어집"에 저장하는 기능이 추가되었습니다. "단어장"의 수는 최대 3개로 제한됩니다.

언어에 대한 자세한 사양은 지원을 위해 일본어 웹 페이지를 참조하십시오.

frtm을 자유롭게 테스트하려면 다음 웹 페이지에서 frtm의 Java 애플릿 버전을 사용해 보십시오.

http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html

*** 단어의 예 ***

* 두 숫자의 평균

: 평균 + 2.0/;

* N개의 숫자의 평균

: rot + 루프 스왑 1.0의 경우 nave 스왑 1 */;

2 4 6 8 10 5 본당 . cr

0 1 2 3 4 5 6 7 8 9 10 SP 본당 . cr

* N개 숫자의 모집단 분산

: nvarp dup 1+ copy nave SP nrotr swap dup * over 1 for rot dup * + 루프 스왑 1.0 */SP nrot dup * - ;

2 4 6 8 10 5 nvarp . cr

* N개의 숫자의 편향되지 않은 분산

: nvar dup 1+ copy nave SP nrotr swap dup * over 1 for rot dup * + 루프 SP nrot dup * 3 ndup * - swap 1- 1.0 */;

2 4 6 8 10 5 nvar . cr

* 두 숫자의 최대공약수

: gcd는 % dup 0을 스왑합니다. > while drop ;

1001 819 gcd . cr

* 계승 [사실(1)=1, 사실(n)=n*사실(n-1)]

** 재귀

: 사실 dup 1=그렇지 않으면 dup 1- 사실 * endif ;

10 팩터 . cr

** 반복

: 사실 1 스왑 1+ 1 for I * 루프 ;

10 사실 . cr

* 피보나치 수열 [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]

** 재귀

: fib dup 0= if else dup 1=if else dup 1- fib swap 2 - fib + endif endif ;

30파이 . cr

** 반복

: fibi dup 0= if else 0 1 rot 1 for swap over + 루프 스왑 drop endif ;

30 피비 . cr

* 그래픽

** 사각형 채우기

: 상자 16 0 for I setcol 10 20 I * + dup 100 100 rectf 루프 ;

GM 상자

: hls 16 0 for I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf 루프 ;

지엠 hls

** 재귀 그리기(코흐 곡선)

: 사전 5 카피 드롭 ;

: genx 3 ndup 6 ndup - * 빼기 100/스왑 4 ndup 7 ndup - * 100/+ 5 ndup +

5 nrotr 4 ndrop ;

: geny swap 3 ndup 6 ndup - * 100/swap 4 ndup 7 ndup - * 100/+ 4 ndup +

5 nrotr 4 ndrop ;

: gen 6 복사 genx 7 nrotr geny ;

: 7 nrotr 7 nrotr pre 유지 ;

: 포스트 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;

: 줄 이동to lineto ;

: koch dup 0= 드롭 라인인 경우 else

pre 0 0 gen keep 33 0 gen post koch

pre 33 0 gen keep 50 -28 gen post koch

pre 50-28 gen keep 66 0 gen post koch

pre 66 0 gen keep 100 0 gen post koch

5엔드롭

엔디프 ;

: 코흐 10 setcol 89 440 551 440 4 코흐

11 setcol 551 440 320 40 4 코흐

12 setcol 320 40 89 440 4 코흐 ;

지엠 코흐스

** 이스케이프 시퀀스와 같은 ReGIS 그래픽 터미널 직접 사용

GM

(W(I15)P[50,50]C(S)[][+40,+40][+40,-40][+40,+40][+40,-40][+40,+ 40][+40,-40][](E)) .

(W(I12)P[50,150]F(C(B)[200,+200][+200,-150](E))) .

(W(I11)P[70,170]T(S16)[16,12]'Hello World') .

// 'grdemo'라는 단어를 사용하여 그래픽의 예에 대한 일부 단어를 사전에 등록합니다.

유사 프로그램

대안