카렐(프로그래밍 언어)
Karel (programming language)![]() | |
패러다임 | 절차상의 |
---|---|
설계자. | 리처드 E. 패티스 |
첫 등장 | 1981 |
방언 | |
일부 지역화된 언어 변형 | |
영향을 받은 | |
파스칼 | |
영향받은 | |
Karel++, AgentSheets, Guido van Robot |
카렐은 리차드 E. 패티스가 자신의 책 '카렐 더 로봇: 프로그래밍의 예술에 대한 부드러운 소개'에서 만든 초보자용 교육용 프로그래밍 언어다. 패티스는 캘리포니아 스탠포드 대학에서 이 언어를 사용했다. 이 언어는 자신의 연극 R.U.R.에서 로봇이라는 단어를 소개한 체코 작가 카렐 차페크의 이름을 따서 지어졌다.[1][2]
원칙
카렐의 프로그램은 거리의 격자(좌우)와 도로(위아래)로 구성된 환경에 사는 카렐이라는 간단한 로봇을 제어하는 데 사용된다. 카렐은 다음과 같은 다섯 가지 기본 지침을 이해한다. move
(카렐은 자신이 마주보고 있는 방향으로 한 칸씩 움직인다.) turnLeft
(카렐은 90° 좌회전) putBeeper
(카렐은 자신이 서 있는 광장에 삐삐를 꽂고, pickBeeper
(카렐은 자신이 서 있는 광장에서 삐삐를 들어올려) 그리고 turnoff
(카렐이 스스로 스위치를 끄면 프로그램이 종료된다.) 카렐은 또한 자신이 서 있는 곳에 삐삐가 있는지, 옆에 장벽이 있는지, 자신이 마주하고 있는 방향에 대해 질문하면서 자신의 즉각적인 환경에 대해 부울 질의를 할 수 있다. 프로그래머는 5가지 기본지침에 따라 추가지침을 정의하고 조건부 제어흐름표를 사용하여 추가지침을 작성할 수 있다. if
그리고 while
환경 질의 및 사용 iterate
건설하다[citation needed]
예
다음은 카렐 구문의 간단한 예다.
프로그램 시작 시 턴라이트(Turn-Of-Turn-Left), 턴라이트(Left), 실행 종료(End-Of-Execution) 정의 3회 반복 실행 시작(Turn-Ofto-Execution) 종료 프로그램 종료(End-Of-End-Of-End-Of-Exprogram)
변종 및 자손
그 언어는 다양한 복제 언어와 유사한 교육 언어의 개발에 영감을 주었다. 이 언어는 초보자를 위한 것이기 때문에 일부 언어, 특히 체코어(프로그래밍 언어는 체코슬로바키아에서 꽤 인기가 있었다)에서 현지화된 변형들이 존재한다.
카렐의 원리는 카렐++라는 새로운 프로그래밍 언어로 객체 지향 프로그래밍 패러다임으로 갱신되었다. 카렐++는 개념적으로는 카렐을 기반으로 하지만 자바와 비슷한 완전히 새로운 구문을 사용한다.
REALBASIC 구현,[3] rbKarel은 RBScript 환경 내에서 기본 Karel 명령을 제공하며, 루프 및 조건화에 BASIC 구문이 사용된다. 이 교육 프로젝트는 카렐 실험에 싱글 스텝과 스피치 출력을 포함한 교차 플랫폼 GUI를 제공한다.
로봇 에밀이라고[4] 불리는 카렐에서 영감을 받은 언어와 환경은 로봇의 세계를 3D 뷰로 보여준다. 로봇 에밀은 벽, 창문(투명성), 물, 풀을 묘사하기 위해 배치할 수 있는 큰 물체 팔레트를 제공한다. 카메라는 3D 환경 전체에서 자유롭게 이동할 수 있다. 로봇은 GUI의 버튼이나 에밀의 카렐과 같은 프로그래밍 언어로 작성된 프로그램에 의해 대화식으로 제어될 수 있다. 저자는 이 프로그램을 학교, 학생, 어린이들이 무료로 사용할 수 있다고 말한다. 영어, 체코어, 슬로바키아어로 된 버전이 있다.
카렐이라고도 불리는 독점 언어는 FANUC 로보틱스의 로봇을 프로그래밍하는데 사용된다. 그러나 FANUC 카렐은 파스칼에서 유래되었다.
이 언어는 코드에 의해 자바스크립트에서 개 카렐로도 구현되었다.HS. 본래의 언어와 유사하게, 이 구현은 그리드 세계에서 Karel을 특징으로 한다. 프로그래머들은 프로그래밍 작업을 수행하기 위해 카렐의 간단한 명령어 어휘를 사용하고 기반으로 한다. 개 카렐은 삐삐를 꽂고 고르는 대신 테니스 공을 넣고 가져간다.
독일판 카렐의 이름은 "로봇 카롤"[5]이다.
참고 항목
- 교육 프로그래밍 언어
- RoboMind - 매력적이고 교육적인 대안 프로그래밍 환경
- RUR-PLE - 카렐에서 아이디어를 기반으로 한 또 다른 "파이톤 학습" 도구
- CodeHS - JavaScript에서 Karel을 이용한 컴퓨터 과학 입문 교육
추가 읽기
- 리처드 E. 패티스 카렐 더 로봇: 프로그래밍의 기술에 대한 부드러운 소개. 1981년 존 와일리 & 선즈 ISBN0-471-59725-2.
- 조셉 버긴, 마크 스틸릭, 짐 로버츠, 리처드 E. 패티스. 카렐++: 객체 지향 프로그래밍의 기술에 대한 완만한 소개. 존 와일리 & 선즈, 1996년 ISBN 0-471-13809-6
참조
- ^ "Who did actually invent the word 'robot' and what does it mean?". Archived from the original on 27 July 2013. Retrieved 25 July 2013.
- ^ 마르골리우스, 이반 (Outo 2017년 가을) "프라하의 로봇" 2017년 9월 11일 웨이백머신에 보관된 체코 문화유산 소식지 17쪽 3-6호
- ^ "Google Code Archive - Long-term storage for Google Code Project Hosting".
- ^ http://www.emil.input.sk/info_en.htm
- ^ "Robot Karol – Escape the Maze Schülerlabor Informatik - InfoSphere, Informatik entdecken in Modulen für alle Schulformen & Klassenstufen". schuelerlabor.informatik.rwth-aachen.de. Retrieved 29 December 2020.
외부 링크
- 카렐 구문
- xKarel by R. 도스탈과 P. 아브라함치크 (1997년 창작)
- 카렐 바이 T. Mitchell (2000년 생성)
- 리 브래들리(2013년 제작)가 만든 작은 c의 카렐
- CloudMakers의 iPad용 Karel(2014년 생성)
- 코드별 자바스크립트의 카렐HS
- Carel in Perl 5 by E. 초로바 (2016년 생성)
- 자바스크립트의 Karel-3D 및 C++(sk) (en) (de) (es) (2017, 2018 생성)
- GvR(Guido van Robot) - Carel in Python(2006, 2010 생성)