넷째 : 이상한 프로그래밍 언어. 어쨌든 그것을 좋아할 수있는 이유는 다음과 같습니다.

폭로: 귀하의 지원은 사이트 운영을 유지하는 데 도움이됩니다! 이 페이지에서 권장하는 일부 서비스에 대한 추천 수수료가 발생합니다.


넷째는 특이한 언어입니다. 주로 통역사이며 명령 줄 인터페이스가있어 실시간으로 사용할 수 있습니다. 그러나 코드 세트를 가져 와서 컴파일 할 수도 있습니다. 그래서 그것은 하이브리드의 무언가입니다.

이 때문에 Forth는 일반적으로 기존 운영 체제가없는 하드웨어에서 사용됩니다. 또한 기계 제어에 널리 사용되며 혜성 67P / Churyumov-Gerasimenko에 도달 한 프로브 인 Philae에서도 우주 탐사에 사용되었습니다..

역사

Forth는 Mohasco Industries에서 그래픽 프로그래밍을 수행하면서 1968 년부터 Charles Moore가 개발했습니다. 그러나 최초의 완전한 Forth 구현은 Moore가 미국 국립 전파 천문대 (NRAO)에서 11 미터 망원경을 제어하기위한 독립형 시스템을 만든 1971 년까지 오지 않았습니다..

이전 버전의 Forth는 프로그래밍 커뮤니티의 관심을 끌었습니다. 그러나이 시점에서 천문학 공동체에서 매우 인기가있었습니다. 1973 년 무어는 NRAO 동료 인 Elizabeth Rather와 Edward Conklin과 함께 FORTH, Inc를 설립했습니다..

회사는이 프로그램을 여러 다른 시스템으로 이식했습니다. 그리고 FORTH, Inc는 기업, 학계 및 정부 기관의 사람들에게 Forth 관련 제품을 제공하는 중요한 회사입니다..

Forth 개요

Forth 프로그래밍 언어에는 여러 가지 고유 한 측면이 있습니다. 여기서 가장 중요한 것을 논의하겠습니다..

넷째 특징

Forth는 많은 고유 한 기능을 제공합니다.

  • 대화식 프로그래밍

  • “단어”라는 언어의 컴파일 된 확장 기능 작성

  • 스택 및 역 폴란드 표기법

  • 사용자와 하드웨어를 직접 연결.

역 폴란드 표기법

Forth는 Reverse Polish Notation을 사용하여 수학적 계산을 수행합니다. 이것은 스택에 숫자를 저장하는 것에 달려 있습니다..

계산을 고려하십시오. 2 + 3. 넷째, 스택에 2를 배치 한 다음 스택에 3을 배치 한 다음 추가하여 수행됩니다. 이것은 다음과 같이 보일 것입니다 : 2 3 +.

조금 이상해 보이지만 컴퓨터가 실제로 계산하는 방식이기 때문에 컴퓨터가 파싱하기가 더 쉽습니다. 일단 코더로 익숙해지면 아주 자연스러워집니다.

또한 괄호가 필요하지 않습니다. 다음 두 가지 예를 고려하십시오. (참고 : 백 슬래시 문자는 주석을 시작합니다.)

2 3 + 5 * (2 + 3) * 5와 동일
2 3 5 * + 2 + 3 * 5와 동일

첫 번째 예에서 2는 스택에서 3으로 푸시됩니다. 따라서 2는 스택에서 두 번째이고 3은 첫 번째입니다. “+”연산자는 스택의 처음 두 요소에 적용됩니다. 이렇게하면 스택에서이 두 항목이 제거되고 스택 맨 위에 5 (2 + 3)가 남습니다..

그런 다음 스택에 5를 밀어 넣습니다. 스택의 첫 번째와 두 번째 위치에 5를 넣습니다. 마지막으로“*”연산자를 적용하여 스택 맨 위에 25 (5 * 5)를 배치합니다..

두 번째 예에서는 스택에 2, 3 및 5를 배치하여 5가 첫 번째 위치에, 두 번째에 3, 세 번째에 2가되도록합니다. 그런 다음 스택의 맨 위 두 요소 (5 * 3)에 “*”연산자를 적용하여 스택 맨 위에 15를 배치합니다..

이 시점에서 15는 첫 번째 위치에 있고 2는 두 번째 위치에 있습니다. + 연산자를 적용하면 스택 맨 위에 17 (15 + 2)이 남습니다..

예제 프로그램

다음 프로그램은 매우 간단하지만 언어로 진행되는 많은 작업을 보여줍니다..

: OUTMATH 수학 계산을 출력합니다
." 우리는 이제 계산할 것이다 : (2 + 3) * 5" CR
2 3 + 5 *
." 이것은 다음과 같습니다. " . CR;

출력

이 프로그램이 가장 먼저하는 일은 OUTMATH라는 함수를 정의하는 것입니다. 그 뒤에 오는 줄은 세미콜론으로 끝나는 줄을 통해 함수의 일부입니다. 첫 번째 줄은“우리는 이제 (2 + 3) * 5를 계산할 것입니다”라는 텍스트를 인쇄하고 캐리지 리턴과 함께 따릅니다..

다음 줄은 위에서 논의한 계산을 수행하여 스택 상단에 25를 배치합니다. 함수의 마지막 줄은“This equals :”다음에 스택 맨 위에있는 값 (“.”으로 표시)과 캐리지 리턴을 출력합니다..

그런 다음 단순히 함수를 실행합니다. 따라서 프로그램이 실행되면 다음이 출력됩니다.

우리는 이제 계산할 것이다 : (2 + 3) * 5
이것은 다음과 같습니다 : 25

학습 포스

대부분의 프로그래머에게는 이것이 새로운 사고 방식입니다. 그러나 일단 작업을 시작하면 자연스럽게 보이는 것이 놀랍습니다. 다음은 언어를 다루는 데 도움이되는 자습서 및 서적입니다..

넷째 튜토리얼

온라인 자습서가 많이 있습니다. Forth는 Forth가 아닌 프로그래머에게는 현재 사용자에게는 자명 한 내용과 동시에 이상하기 때문에 많은 자습서는 초보자에게 혼란을 줄 수있는 사항을 선호합니다. 이 튜토리얼에는이 문제가 없습니다.

  • Easy Forth :이 짧은 전자 책은 훌륭한 소개입니다. 단점은 예제가 크지 않다는 것입니다. 아래 예 중 일부를 확인하십시오..

  • 초보자를위한 Forth 안내서 : 이것은 또 다른 좋은 소개입니다. 좀 더 기술적이지만 더 많은 예가 있습니다..

  • 그리고 So Forth… : 이것은 책만큼이나 Forth에 대한 아주 철저한 소개입니다..

넷째 책

과정을 단계별로 안내 할 수있는 책을 통해 새로운 언어를 배우는 것이 더 쉬운 경우가 많습니다. Forth에 관한 좋은 책들이 많이 있습니다. 특히 Forth가 실제로 시작된 1980 년대로 거슬러 올라갑니다. 여기에 가장 중요하고 가장 중요한 것들이 있습니다..

  • Thom Hogan의 Forth : Learn Forth Language (1982)를 배우십시오 : 이것은 Forth 언어에 대한 훌륭하고 간결한 소개입니다..

  • 시작하기 : Leo Brodie의 초보자 및 전문가를위한 언어 및 운영 체제 소개 (1982) : 이것은 Forth를 배울 수있는 고전적이고 훌륭한 방법입니다. 인쇄물이 인쇄되었지만 사용 된 사본은 적은 돈으로 찾기가 어렵지 않습니다. 또한 무료로 온라인 상태입니다. 고급 Forth 프로그래머는 Brodie의 최신 Thinking Forth를 확인하고 싶을 수 있습니다..

  • Juergen Pintaske의 Forth Lite Tutorial (2014) : 예제에 중점을 둔 Kindle 기반 튜토리얼입니다..

  • 문제 지향 언어 프로그래밍 : Forth — Charles Moore의 내부 활동 (2014) : Forth의 제작자가 오래 전에 저술 한 책 Kindle 버전입니다. 여전히 언어에 대한 통찰력을 제공하지만 처음부터 시작하는 최선의 선택은 아닙니다.

  • Elizabeth Rather와 Edward Conklin의 Forth Programmer ‘s Handbook (2007) :이 책은 다른 두 명의 Forth 선구자에 의해 Forth에 대한 고급 책입니다. Rather ‘s Book, Forth Application Techniques (2006) 참조.

기타 자료

  • Forth Interest Group :이 사이트에는 오래된 기록 문서를 포함한 모든 종류의 흥미로운 정보가 있습니다. 불행히도, 그것은 또한 많은 깨진 링크를 가지고 있습니다. 그러나 여전히 체크 아웃 할 가치가 있습니다..

  • Forth 프로그램 링크 : 스프레드 시트 및 Sudoku 퍼즐 솔버와 같은 실제 예제 프로그램 모음입니다..

  • Forth Google 그룹 : 이것은 질문을하고 답변하는 매우 활발한 Forth 사용자 그룹입니다..

  • Forth Subreddit :이 포럼은 굉장히 활발한 포럼은 아니지만, 아직 지식이 풍부한 사람들이 있습니다..

넷째 구현

수년 동안 Forth의 구현은 많이있었습니다. Forth Interest Group에는 긴 컴파일러 페이지가 있습니다. 차고에 PDP-11 설정이 있으면 Forth 컴파일러를 얻을 수 있습니다! 그러나 최신 시스템의 경우 더 일반적인 옵션이 있습니다..

bigFORTH

1980 년대 중반 Dietrich Weineck, Georg Rehfeld 및 Klaus Schleisiek는 8086 IBM PC 및 6502 Apple, Commodore 및 Atari 머신과 같은 16 비트 시스템을위한 volksFORTH를 개발했습니다..

결국 그들은 (16 비트 버스) 68000 기반 Atari ST를위한 32 비트 버전을 만들었습니다. volksFORTH가 진행 중이었지만 프로젝트는 거의 죽었습니다 (나중에 다시 시작되었지만)..

Bernd Paysan은이 버전의 volksFORTH (이전에는 turboFORTH)에 충분히 관심이 있었지만,이를 bigFORTH의 기초로 삼았습니다..

첫 번째 버전은 1990 년 Atari ST 용으로 출시되었습니다. 1995 년 bigFORTH는 386으로 포팅되었으며 다음 해에는 Windows NT, OS / 2 및 Linux에서 사용 가능합니다..

그래픽 인터페이스

그 시점에서 Paysan은 MINOS 작업을 시작했습니다. (기술적으로는 “MINOS”이지만 일반적으로 간단히 “MINOS”라고합니다.)

bigFORTH를위한 그래픽 인터페이스입니다. Visual Basic과 같은“Visual bigFORTH”로 생각하는 것이 가장 쉬운 방법입니다. X-Windows 시스템 용으로 처음 작성되었습니다. 그러나 곧 Windows에서도 사용할 수있었습니다..

bigFORTH 및 MINOS 개발은 2010 년경에 중단 된 것으로 보입니다. 그러나 쉽게 사용할 수 있고 매우 유용합니다 (bigFORTH는 ANSI 호환). 사실, MINOS는 놀기에 많은 재미가 있습니다..

bigFORTH 자원

bigFORTH를 사용하거나 개발하려는 경우 필요한 모든 도구가 제공됩니다.

  • 소스 코드 : 2010 년 3 월 22 일, 버전 2.4의 마지막 공식 릴리스 코드입니다..

  • 데비안 패키지 : 데비안 기반 Linux 배포판 (예 : Ubuntu, Mint)을 위해 쉽게 설치되는 패키지. / usr / local / bin에 설치되며 xbigforth라고 불리는 MINOS를 포함합니다..

  • Windows 자체 설치 실행 파일 : Debian 패키지와 동일하지만 Windows 용입니다. MINOS의 이름은 xbigforth.exe입니다..

  • 문서 (PDF) :이 300 페이지에 달하는이 책은 JL Bezemer가 작성한 자습서 및 참조 자료로 사용됩니다. 그것의 대부분은 일반적인 Forth에 있으며“And So Forth…”에서 가져온 것입니다..

  • Bernd Paysan의 홈페이지 :이 페이지에는 흥미로운 Forth 관련 정보와 예제가 많이 있습니다. 특히 주목할 점은 Paysan의 Forth 기반 마크 업 언어입니다..

  • bigFORTH 리포지토리 : 모든 bigFORTH 요구 사항을 충족시키는 최고의 목적지.

기 포스

Gforth는 Forth의 GNU 구현입니다. 저명한 가계도.

Gforth 프로젝트는 1992 년에 BigFORTH 제작자 Bernd Paysan과 Anton Ertl에 의해 시작되었으며 Jens Wilke의 상당한 기여를했습니다..

그것은 bigFORTH와 가장 오래된 fig-FORTH의 조합이었습니다 (아래 참조). 그러나 bigFORTH는 fig-FORTH를 기반으로 한 volksFORTH에서 왔기 때문에 그 역사는 뒤틀려 있습니다..

GNU 프로젝트이기 때문에 시작된 이후로 많은 작업이 수행되었습니다. 이제 완전히 ANSI를 준수하며 모든 원래 목표를 달성했습니다. 가장 최신 버전은 0.7.3이며 2013 년 2 월 25 일의 마지막 항목 (Paysan).

무료 Forth 구현 측면에서 Gforth가 가장 일반적으로 사용됩니다. 그중 일부는 GNU 프로젝트와 가용성의 일부이기 때문입니다. 하지만 강력하고 빠르기 때문에.

기 포스 자료

Gforth는 필요한 모든 용도에 필요한 모든 리소스를 갖추고 있습니다.

  • 소스 코드 :이 페이지는 버전 0.2.1에서 현재 0.7.3까지의 Gforth 소스 코드를 제공합니다..

  • 데비안 패키지 : 데비안 리눅스 배포판에 사용할 수있는 다양한 패키지가 있습니다. 선택한 패키지에 따라 먼저 하나 이상의 다른 패키지를 설치해야 할 수도 있습니다..

  • Windows 자체 설치 실행 파일 : Gforth의 이전 (0.7.0) 버전이지만 시작하는 빠른 방법.

  • 문서 (PDF) :이 250 페이지의 책은 Gforth의 0.7.0 버전에 적용됩니다. HTML 형식으로도 제공됩니다.

  • Gforth Repository : Gforth와 관련된 거의 모든 것이 여기에서 찾을 수 있습니다.

pbForth

pbForth는 더 이상 지원되지 않는 것으로 보이지만 Forth의 흥미로운 구현으로 체크 아웃 할 가치가 있습니다..

앞에서 언급했듯이 Forth는 항상 하드웨어 제어와 관련이 있습니다. 따라서 LEGO MINDSTORMS 로봇 키트, 특히 1998 년에 출시 된 16 비트 RCX를 위해 Forth 구현이 만들어 졌다는 것은 놀라운 일이 아닙니다..

2006 년에 출시 된 2 세대 NXT 시리즈 또는 2013 년에 출시 된 현재 MV3과 함께 작동하도록 업데이트 된 적이없는 것 같습니다..

pbForth의 공식 사이트는 없지만 사이트를 배우고 사용할 수도 있습니다. 그러나 정보가 많지 않기 때문에 학습 곡선이 가파를 수 있습니다. 그리고 분명히, 당신은 레고 마인드 스톰 RCX가 필요합니다 (그들은 찾기가 어렵지 않습니다).

NXT는 완전히 다른 (32 비트) 프로세서를 사용하므로 pbForth는 확실히 작동하지 않습니다. 그래도 재미있을 것입니다. 그리고 당신이 그것에 달려 있다면, 아마도 그것을 2 세대 및 3 세대 키트로 포팅 할 수있을 것입니다.

pbForth 자료

일반 인터넷에서 사용할 수있는 정보는 일반적으로 간결하며 항상 2010 년 이후 운영되지 않은 pbForth 홈 페이지로 연결됩니다. 인터넷 아카이브 덕분에이 정보의 대부분을 이용할 수 있습니다.

  • LEGO Robotics의 역사 : pbForth는 아니지만 LEGO MINDSTORMS 제품에 대한 간단한 개요를 제공합니다..

  • pbForth 소개
    (PDF) :이 30 페이지 자습서로 언어를 시작할 수 있습니다..

  • phForth 소스 코드
    : pbForth는 어셈블리 언어와 Tcl로 작성되므로 해당 도구를 사용할 수 있어야합니다..

  • 윈도우 GUI
    :이 파일이 실행되지만 어떤 작업을 수행하는 것이 더 복잡 할 수 있습니다. Linux 또는 Mac 용 pbForth를 원한다면 소스 코드를 사용해야합니다.

  • 2009 년경 phForth 홈페이지
    :이 페이지는 pbForth에 관한 흥미로운 정보, 특히 6 가지 샘플 스크립트에 대한 링크를 제공합니다..

다른 구현들

  • fig-FORTH : 이것은 Forth Interest Group이 만든 최초의 Forth 구현 중 하나였습니다. 16 비트 구현입니다. Data General Eclipse 및 Alpha Micro와 같은 멋진 오래된 컴퓨터와 8086 및 6502 기반 컴퓨터에서 사용할 수 있습니다. 문제는 실행 파일이없고 어셈블리 언어 코드 일뿐입니다. 대부분의 경우 코드의 비트 맵 PDF 파일 만 있습니다. 실제 코드는 8088/8086, PDP-11 및 6800에서만 사용할 수 있습니다. (6800은 8 비트 프로세서이므로 8-bit 버전의 fig-FORTH가있었습니다.)

  • SP-Forth : Windows 및 Linux 용 무료 Forth 구현입니다..

  • 4tH : 이것은 광범위한 하드웨어 (Raspberry Pi 포함)에 사용할 수 있고 사용하기 쉬운 Forth 구현입니다..

  • SwiftForth ™ : Forth를 세계로 가져온 최초의 회사의 Forth 컴파일러입니다. 그것은 상업용 제품이지만 합리적인 가격입니다.

요약

Forth는 흥미롭고 믿을 수 없을 정도로 유용한 프로그래밍 언어입니다. 하드웨어를 제어하려는 경우 특히 그렇습니다. 여기에있는 자료를 사용하여 나아갈 것입니다.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map