yabasic
Manual of Yabasic ¶yabasic의 웹사이트는 http://www.yabasic.de 입니다.
(참고로, 메뉴얼의 위치는 http://www.yabasic.de/yabasic.htm 입니다.)
2.1. 이 문서에 대하여 ¶이 문서는 베이직 언어 그 자체 뿐만 아니라 UNIX에서 yabasic 또는 윈도우에서 yabasic.exe으로 실행되는 yabasic 인터프리터에 대해 설명합니다.
이 문서의 내용은 yabasic의 2.760 버전을 기준으로 설명되어 있습니다. 따라서 yabasic에 대한 최신 소식이나 FAQ를 포함하지 않습니다. 내용이 자주 바뀔 수 있으므로 최신 내용을 보려면
![]() Basic이 프로그래밍을 처음으로 시작하는 프로그래머들을 위한 언어로서 유명하지만, 이 문서에서는 베이직 언어에 대해 자세히 소개하지 않습니다. 이 문서를 통하여 독자가 컴퓨터 프로그램을 쓰고 시작하는 최초의 경험을 가지게 될 것입니다.
2.2. yabasic에 대하여 ¶yabasic은 전통적인 basic 인터프리터입니다. yabasic에서는 goto, gosub, line numbers, read, data 혹은 '$'로 끝나는 문자 변수 같은 일반적인 basic 문법의 대부분이 사용됩니다. 그러나 (objects가 아닌) subroutine과 library같은 조금 더 발전된 프로그래밍 구문도 실행할 수 있습니다. yabasic은 Unix와 Windows에서 똑같이 작동합니다.
yabasic을 사용하면 빠르고 쉽게 결과를 얻을 수 있습니다. 그러므로 단순한 명령들은 그래픽 창을 열어 그 그래픽들을 출력하거나 콘솔 화면으로부터 키보드나 마우스 정보를 얻어 제공되어집니다.
다음 예제 코드는 창을 열고 원을 그립니다.
open window 100,100 open printer circle 50,50,40 text 10,50,"Press any key to get a printout" clear screen inkey$ close printer close window 이 예제는 많은 다른 프로그래밍 언어들보다 더 적은 줄 수를 갖습니다. 그러나 결국 yabasic은 C++ 이나 Java같은 더 앞서고 현대적인 프로그래밍 언어들보다 많이 부족합니다. 하지만 yabsic을 사용함으로써 더 빠르고 쉽게 결과를 보여줄 수 있습니다.
3.1. yabasic 시작하기 ¶yabasic을 시작하는 방법은 세 가지가 있습니다.
3.2. 옵션 ¶Windows용 yabasic은 대부분 아이콘을 더블 클릭하는 것으로 실행되므로, 명령행 옵션을 쓰기 어렵습니다. 그러나 레지스트리의 적절한 곳에 옵션을 넣을 수 있습니다.
아래 모든 옵션들은 짧은 명령어가 두 가지 의미로 해석되지 않는 한, 짧은 형태로 사용할 수 있습니다. 예를 들어, - excute 대신에 - e를 쓸 수 있습니다.
- help 혹은 - ? 도움말 메세지를 출력합니다. - version yabasic의 버전을 출력합니다. - geometry +X-Position+Y-Position</code> 그래픽 창의 위치를 설정합니다, 다시 말하면 open window (물론, 창의 크기는 open window 명령 안에 명시 됩니다.) 화면의 왼쪽 테두리에서 오른쪽으로 20 pixels 가고 위쪽 테두리에서 아래로 10 pixels 에 그래픽 창을 배치하라는 한 예는 - geometry +20+10 입니다. 이 값은 일단 yabasic이 시작되면 변할 수 없습니다. - font NAME-OF-FONT 그래픽 폰트로 사용될 폰트의 이름은 decorative, dontcare, modern, roman, script, swiss 어떤것도 될 수 있습니다. 당신은 이 폰트이름들 중에 어떤 것에도 (pixels로 측정된) 폰트크기를 첨가 할 수 있습니 다. ; 예를 들어 - font swiss30은 30 pixels의 크기를 가진 swiss 폰트를 선택합니다. - bind NAME-OF-STANDALONE-PROGRAM 다시 말하면 커맨드라인상에 명시된 프로그램으로부터 (NAME-OF-STANDALONE-PROGRAM에 의해 명시된 이름을 가진 독립형의 프로그램을 창조합니다. 세부사항은 '독립형 프로그램 창조하기' 에 대한 섹션을 보십시요. - excute A-PROGRAM-AS-A-SINGLE-STRING 이 옵션을 가지고 당신은 즉시 실행 하기 위해 어떤 yabasic 코드에 조건으로 지정 할 수 있습니다. 이것은 당신이 파일로 저장하길 원치 않는 간단한 프로그램에 유용합니다. 만약 이 옵션이 주어진다면, 당신은 한 파일로부터 어떤 코드도 읽지 못할 것입니다. 당신이 1과 10사이에 평방수 몇개를 잊어 먹었다 고 가정해봅니다.; 이 경우에 있어 yabasic 명령어 - e 'for a=1 to 10:print a*a:next a' 는 즉시 당신에게 답을 줄 것입니다. - infolevel INFOLEVEL INFOLEVEL이 debug, note, warning, error 그리고 fatal의 하나가 될 수 있는 곳인 , (default가 경고하고 있는) yabasic의 infolevel을 변화시킨다. 이 옵션은 yabasic이 만들어 낸 debugging 정보의 양을 변화시킵니다. 그러나 정상적으로 yabasic의 작가 (나!) 만이 이 것을 변화시키길 원합니다. - doc NAME-OF-A-PROGRAM 지정된 프로그램의 내장된 문서를 출력합니다. 프로그램의 내장된 문서는 특별한 키워드 doc로 시작하 는 그 프로그램 안 쪽에 모든 해설로 구성되어 있습니다. 이 문서는 어떤 yabasic 프로그램의 세부 메뉴로부터 상응하는 입구를 선택함으로써 보여질 수 있습니다. - librarypath DIRECTORY-WITH-LIBRARIES (import 명령을 가지고) library들 그 중에 찾고 가져오게 할, 디렉토리를 변화시킵니다. 역시 library를 찾을 방법에 대한 더 많은 정보는 이 엔트리를 보십시요. 3.3. context menu ¶windows 상에 모든 다른 아이콘 처럼, 모든 yabasic 프로그램의 아이콘은 yabasic에 적용 시킬 가장 흔한 동작을 제공하는 context menu를 가지고 있습니다.
Excute 이것은 당신의 프로그램이 실행 되도록 yabasic에게 기원 할 것입니다. 만약 당신이 아이콘을 더블클릭한다면 똑같은 일이 발생합니다. Edit notepad가 당신의 프로그램을 편집하도록 기원 할 것입니다. View docu 이것은 당신의 프로그램에 내장된 문서를 제공 할 것입니다. 내장된 문서는 특별한 해설 doc를 가지고 창조될것입니다. 4.1. yabasic 시작하기 ¶만약 당신의 시스템 관리자가 정확하게 yabasic을 인스톨시켰다면, 시작하는 세 가지 방법이 있습니다.:
4.2. 옵션 ¶아래 모든 옵션들은 짧은 명령어가 두 가지 의미로 해석되지 않는 한, 짧은 형태로 사용할 수 있습니다. 예를 들어, - excute 대신에 - e를 쓸 수 있습니다.
- help 혹은 - ? 도움말 메세지를 출력합니다. - version yabasic의 버전을 출력합니다. -fg FOREGROUND-COLOR 혹은 -foreground FOREGROUND-COLOR (open window로 열리게 될) 그래픽 창의 foreground 색깔을 규정합니다. red, green ... 같은 평범한 x11 색깔명들이 받아들여집니다. 일단 yabasic이 시작되면 이 값은 변할수 없습니다. -bg BACKGROUND-COLOR or -background BACKGROUND-COLOR 그래픽 창의 background color을 규정합니다. 평범한 x11 색깔명들이 받아들여집니다. 일단 yabasic이 시작 되면 이 값은 변할수 없습니다. - geometry +X-Position+Y-Position</code> 그래픽 창의 위치를 설정합니다, 다시 말하면 open window (물론, 창의 크기는 open window 명령 안에 명시 됩니다.) 화면의 왼쪽 테두리에서 오른쪽으로 20 pixels 가고 위쪽 테두리에서 아래로 10 pixels 에 그래픽 창을 배치하라는 한 예는 - geometry +20+10 입니다. 이 값은 일단 yabasic이 시작되면 변할 수 없습니다. - display BACKGROUND-COLOR yabasic의 그래픽 창이 나타나야만 하는 곳인 display를 지정합니다. 그러나, 보통은 이 값은 DISPLAY 환경 안에 이미 제공 될 것입니다. - font NAME-OF-FONT 그래픽 창안에 텍스트로 사용 될, 폰트의 이름 - excute A-PROGRAM-AS-A-SINGLE-STRING 이 옵션을 가지고 당신은 즉시 실행 되기 위한 어떤 yabasic 코드를 조건으로 지정 할 수 있습니다. 이것은 당신이 파일로 저장하길 원치 않는 간단한 프로그램에 유용합니다. 만약 이 옵션이 주어진다면, 당신은 한 파일로부터 어떤 코드도 읽지 못할 것입니다.; 예를 들어 yabasic - e 'for a=1 to 10:print a*a:next a' 는 즉시 당신에게 1에서 10까지 평방수들을 출력합니다. - bind NAME-OF-STANDALONE-PROGRAM yabasic 프로그램으로부터 (NAME-OF-STANDALONE-PROGRAM에 의해 명시된 이름을 가진) 다시 말하면 커맨드 라인상에 명시되어진 독립형 프로그램을 만듭니다. 세부사항은 '독립형 프로그램 창조하기'에 대한 섹션을 보십시요. - infolevel INFOLEVEL INFOLEVEL이 debug, note, warning, error 그리고 fatal의 하나가 될 수 있는 곳인 , (default가 경고하고 있는) yabasic의 infolevel을 변화시킨다. 이 옵션은 yabasic이 만들어 낸 debugging 정보의 양을 변화시킵니다. 그러나 정상적으로 yabasic의 작가 (나!) 만이 이 것을 변화시키길 원합니다. - doc NAME-OF-A-PROGRAM 지정된 프로그램의 내장된 문서를 출력합니다. 프로그램의 내장된 문서는 특별한 키워드 doc로 시작하 는 그 프로그램 안 쪽에 모든 해설로 구성되어 있습니다. 이 문서는 어떤 yabasic 프로그램의 세부 메뉴로부터 상응하는 입구를 선택함으로써 보여질 수 있습니다. - librarypath DIRECTORY-WITH-LIBRARIES (import 명령을 가지고) library들 그 중에 찾고 가져오게 할, 디렉토리를 변화시킵니다. 역시 library를 찾을 방법에 대한 더 많은 정보는 이 엔트리를 보십시요. 4.3. defaults 설정하기 ¶만약 당신이 한 번에 어떤 옵션들을 설정하기 원한다면 X 윈도우즈 리소스 파일로 배치할 수 있습니다. 이것은
대게 .X리소스 혹은 당신의 home 디렉토리 안에 어떤 파일일것입니다. (세부사항은 man x 를 쳐보십시요.)
여기에 그 파일안에 있게 될 지도 모를 샘플입니다.
yabasic*foreground: blue yabasic*background: gold yabasic*geometry: +10+10 yabasic*font: 9x15 이것은 blue로 foreground 색깔을 gold로 background 색깔을 설정할것입니다. 그 창은 10,10 위치에 나타나게 될 것이며 문자 폰트는 9x15가 될 것입니다.
5. 주제에 의해 설명된 yabasic의 몇 가지 특징들 ¶이 장은 yabasic의 큰 특징들 중 몇 가지를 위한 섹션이며 각 부분과 관련된 소수의 명령어들로 이름이 지어졌습니다. 그래서 당신의 관심에 따라 이름이 붙은 부분의 가장 중요한 명령어들을 찾아 볼 수 있습니다. 이 부분으로부터 다른 명령어들은 see also 섹션안에 링크를 통해 볼 수 있습니다.
5.1. print, input과 그외의 것들 ¶명령어 print는 '텍스트 화면상'에 텍스트를 놓는데 사용됩니다. 여기, 단어 '텍스트 화면'은 (Unix 상에서는) 터미널을 (Window 상에서는) 콘솔창을 상징합니다.
본질적으로, print는 단순히 텍스트 창에 그것의 인수를 산출합니다. 그러나, 일단 당신이 clear screen을 호출했다면 getscreen$나 putscreen을 가지고 색깔을 출력하거나 텍스트 부분을 복사하는 것과 같은 앞선 특징들을 사용할 수 있습니다.
당신은 명령어 input을 가진 input을 그 이용자에게 요청해도 상관없다.; 그것이 눌러지자 마자 각 키를 얻기 위해 inkey$를 사용하세요
5.2. 컨트롤 구문 ; loops, if 그리고 switch ¶물론, yabasic은 goto- 와 gosub- 구문을 가지고 있습니다; 당신은 (단지 특별한 라벨의 종류인) 어떤 라벨 혹은 줄 번호에 갈 수 있습니다. (해롭다고 고려된 goto) 의 나쁜 평판에도 불구하고 goto는 아직도 잘 사용됩니다.; 그러나 많은 경우에 있어 당신은 아마도 repeat-until, while-wend 혹은 do-loop 같은 loop들을 사용하는 경우가 많습니다.; 당신은 break 구문으로 이 loop들의 어떤 것도 떠날 수 있으며 continue를 가지고 즉시 다음 반복을 시작 해도 상관없습니다.
결정은 짧거나 긴 형태 둘 다 올수있는 if 구문으로 만들 수 있습니다. 짧은 형태는 어떤 키워드 then도
없이 그 라인의 끝을 확장 할 수 있습니다. 긴 형태는 endif로 확장을 하며 키워드 then (긴 형태를 소개하는 것인) else 혹은 elseif를 사용해서 확장해도 됩니다.
만약 당신이 많은 다른 값에 대항하여 한 표현의 결과를 시험하고 싶다면, 당신의 switch 구문을 사용해야합니다.
5.3. Drawing 과 Painting ¶당신은 선, 원, 직사각형 혹은 삼각형 중 어떤 것도 그리기 전에 open window를 호출해야 합니다.; 이 구문들 모두는 깨끗하게 하거나 채워지는 것으로 장식되어집니다. 만약 당신이 drawing을 위해 색을 바꾸기 원한다면, Colour를 사용하십시요. 그러나 한번에 하나의 창만이 열려주있다는 사실을 주의하시십시요.
만약 당신이 open printer 명령어를 사용한다면, 당신이 그렸던 모든 것이 printer로 보내질수있습니다.
움직이는 그래픽의 몇 가지 (매우) 제한된 버전을 사용하고자 한다면, yabasic은 문자열 안쪽에서 그래픽 창으로부터 직사각형의 지역을 검색하거나 혹은 거꾸로도 똑같은 작용을 하는 명령어 getbit$ 나 putbit를 제공합니다.
만약 당신이 마우스 클릭에 반응 하는 것을 원한다면, 당신은 inkey$ 기능을 사용해도 됩니다.
5.4. 파일에 쓰기부터 읽기까지 ¶당신이 파일을 읽거나 쓰기 전에 파일을 열어야 합니다.; 일단 당신이 실행하려고 한다면, 파일을 닫아야만 합니다. 열린 파일은 간단한 번호로 지칭되며 만약 파일에 접근하길 원한다면 변수 내부에 저장되었을지 모를 파일이 공급되야만 합니다. 이것은 키워드 (파일로부터 읽기 위한) input 이나 (파일에 쓰기위한) print 각각 뒤에 그 파일의 번호에 뒤따라오는 hash ('#')을 입력함으로서 간단히 실행됩니다.
만약 당신이 더 제어하고 싶다면, 다 목적 명령어 peek와 poke를 사용함으로써 한 번에 1byte를 읽고 쓰는 것을 고려해도 됩니다.
5.5. 서브루틴과 라이브러리 ¶어떤 yabasic 프로그램을 더 조그맣게 만드는 최고의 방법이자, 좀 더 관리하기 쉬운 것들은 서브루틴과 라이브러리이다. 그것들은 프로그램을 구축하는데 있어 yabasic의 가장 앞선 수단이다.
서브루틴은 하위 명령어를 가지고 만들어집니다. 서부루틴은 파라미터를 받아 값을 되돌립니다. 서부루틴은 yabasic의 많은 함수를 호출 할 수있습니다.; 그러므로 그 자신을 언어로 확장하는 것을 허락합니다.
일단 당신이 관련된 서브루틴의 세트를 만들었다면 다른 프로그램안에서도 유용할 수 있다는 사실을 느낄 것이며,라이브러리로 그것들을 모을 수 있습니다. 라이브러리 같은 것은 키워드 import를 사용함으로써 분산된 파일안에 포함되며, 당신의 어떤 프로그램에도 포함될 수 있습니다.
5.6. 문자열 처리 ¶yabasic은 문자열로부터 부분들을 뽑아내는 평범한 함수들을 가지고 있습니다.: left$, mid$ 그리고 right$.
주의, 함수 모두는 문자열의 부분을 바꿀수 있도록 위치를 지정할 수 있습니다.
만약 당신이 token으로서 문자열을 분할하길 원한다면, token 혹은 분할하는 함수를 사용해야합니다.
그 외 여러가지 (상위경우로 변환하는) upper$, (다른 문자열 내부에 어떤 문자열을 찾는) instr$, (문자를 아스키코드로 변환하는) chr$, (패턴에 대조하여 문자열을 시험하는) glob 같은 다른 문자열 처리 함수들이 많이 있습니다. 그냥 링크를 따라가보십시요.
5.7. 계산 ¶yabasic은 숫자와 계산을 다룹니다.: 당신은 sin 이나 atan 같은 삼각함수나 (log를 사용하는) log수학 계산 할 수있습니다. and or or 같은 비트 단위의 연산은 (인수의 최소값 혹은 최대값을 계산) 최소 혹은 최대 혹은 계수 혹은 (나눗셈 혹은 정수 부분 혹은 총수의 리마인더) int 에 더하여 사용할 수 있습니다.
5.8. 데이터 ¶당신은 data 구문을 가진 당신의 프로그램안에 데이터를 저장 할 수 있습니다.; 실행 동안 당신은 아마도 기억속에서 희미해지기 전에 저장해야만 했던 데이터를 배열되어진채로 읽기를 원할 것입니다.
5.9. 다른 흥미로운 명령어들 ¶yabasic 프로그램은 system과 system$를 가지고 다른 프로그램을 시작 할 수 있습니다.
peek와 poke는 내부 정보를 얻고 설정하도록 합니다; (유닉스 혹은 윈도우즈) 운영 체제 둘다
현재 시각이나 날짜는 (몇인지 추측합니다 !) time$와 date$를 가지고 검색할 수 있습니다.
6.8.1. backcolor ¶specify the colour for subsequent drawing of the background
box
draw a rectangle. A synonym for rectangle
circle
draws a circle in the graphic-window
clear
Erase circles, rectangles or triangless
clear window
clear the graphic window and begin a new page, if printing is under way
close curve
close a curve, that has been drawn by the line-command
close window
close the graphics-window
colour
specify the colour for subsequent drawing
dot
draw a dot in the graphic-window
fill
draw a filled circles, rectangles or triangles
getbit$()
return a string representing the bit pattern of a rectangle within the graphic window
line
draw a line
mouseb
extract the state of the mousebuttons from a string returned by inkey$
mousemod
return the state of the modifier keys during a mouseclick
mousex
return the x-position of a mouseclick
mousey
return the y-position of a mouseclick
new curve
start a new curve, that will be drawn with the line-command
open window
open a graphic window
putbit
draw a rectangle of pixels into the graphic window
rectangle
draw a rectangle
triangle
draw a triangle
text
write text into your graphic-window
window origin
move the origin of a window
==계속 번역할 예정입니다.==
9. yabasic에 관한 권한 ¶9. yabasic에 관한 권한
yabasic의 복제는 Yabasic이 배급한 수정권한(Artistic License
![]() 수정권한? GNU? 무슨 말인지 조금 어렵다고 말하시는 것 같은데...맞죠? 음, 사실 두 권한에 대해서는 저도 읽고 싶지 않아서, 여러분께서 스스로 읽어보시면 좋겠습니다. (웃음) 여러분께서는 '수정권한'을 따르는게 yabasic을 사용하는데 더 융통성을 드릴 테니, 전자를 선택하십시오. 참고로 GPL은 많은 소프트웨어들이 배포될 때 정하고 있는 좀 더 널리 알려진 규약입니다.
'수정권한'을 따르는 조건 아래, 아래와 같은 행위가 가능합니다.
• yabasic을 사용자의 홈페이지 담거나 혹은 CD에 담아 yabasic을 공급하며 비용을 청구하는 경우
• 사용자 스스로 작성한 yabasic 사용 프로그램들 및 yabsic을 함께 묶어 판매하는 경우
• yabasic을 수정하거나 그 일부를 첨가, 삭제하여 그 수정본을 판매하는 경우
|
People who take cat naps don't usually sleep in a cat's cradle. |