프로그래밍/Boo 21

이진 파일을 읽어서 16진수로 보여주는 HexView 소스 with Boo

Boo 언어 소스: # Filename: testHexView_02.boo # # Execute: booi testHexView_02.boo [filename] # # Or # # Compile: booc testHexView_02.boo # Execute: testHexView_02 [filename] # # Date: 2013. 8. 16. import System import System.IO def printUsage(): print "Usage: booi testHexView_02 [filename]" def isDirectory(path as string) as bool: fa = System.IO.File.GetAttributes(path) isDir = false if (fa & FileA..

프로그래밍/Boo 2013.08.16

Boo 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제

역삼각함수란 삼각함수의 역함수를 의미하고, 역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다. 수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Boo 언어에서는 닷넷에서 사용하는 Math.Asin() 함수를 쓰면 된다. 이를 사용하기 위해서는 import 구문 import System 이 필요하다. Boo 언어는 Pytyhon 언어와 비슷하며, 닷넷 용이라는 점에서는 IronPython 과 더더욱 비슷하다. 다음 소스는 Boo 인타프리터 booi 로 실행해도 되고, Boo 컴파일러 booc 로 컴파일하여 생성된 실행 파일을 실행해도 된다. booc 로 컴파일이 성공적으로 끝나면 *.exe 파일과 *.pdb 파일이 생성된다. # Filename: testArcSine.boo # # Execute:..

프로그래밍/Boo 2013.01.06

삼각형 출력 예제를 통한 여러 가지 소스 비교 with Boo

콘솔에 삼각형 * * * * * * * * * * * * * * * ***************** 을 출력하는 Boo 소스 코드를 작성해 보자. 이런 소스 코드의 작성은 학원이나 학교에서 프로그래밍 입문자에게 과제로 많이 주어지는 것 중의 하나이다. 코끼리를 보거나 만진 사람들이 저마다 그 생김새를 말할 때 제각기 다르게 표현할 수 있듯이 이런 소스 코드의 작성도 알고 보면 얼마든지 많은 방법이 있을 것이다. 여기서는 쉬운 코드 부터 작성해 보고 차츰차츰 소스를 바꾸어 가면서 Boo 프로그래밍의 기초부분을 터득해 보기로 한다. Boo 언어는 프로그래밍은 다음 두 가지를 숙지하고 있으면 배우기 쉽다. (1) 우선 Boo 언어의 문법과 구문 몸체는 Python의 것을 따른다. 그러므로 들여쓰기 규칙을 Py..

프로그래밍/Boo 2009.04.08

클래스 상속(subclassing) 예제 with Boo

Boo 언어에서도 한 개의 소스 파일에 여러 개의 클래스가 존재해도 된다. 또 클래스명과 다른 파일명으로 저장해도 된다. Boo 언어의 구뮨 몸체는 Python 언어에서 빌려왔지만, Python 언어는 동적 타이핑(즉 변수의 타입이 실행시 결정되는) 언어, Boo 언어는 정적 타이핑(즉 변수의 타입이 컴파일시 결정되는) 언어라는 점이 다르다. 또한 Boo 언어는 닷넷환경에서 동작하는 만큼 내부적으로는 C# 언어에서 사용하는 개념들을 내포하고 있다. 다음은 두 개의 클래스로 구성되어 있다. Parent는 부모 클래스이고 Child는 Parent에서 상속 받은 자식 클래스이다. class Parent: _name as string def constructor(): # 클래스 생성자. 이것이 있어야 서브클래싱..

프로그래밍/Boo 2009.04.04

손으로 계산하는 긴자리 곱셈표 만들기 with Boo

초등학교 때 배우는 두 정수의 곱셈표를 만들어 주는 Boo 소스이다. 소스 코드는 Python 언어로 작성된 것과 거의 같다. 단지 여기서는 스트링을 int 타입이나 long 타입으로 변환하는 구문만 언급한다. int.Parse(스트링) // 스트링을 int 타입으로 변환하기 long.Parse(스트링) // 스트링을 long 타입으로 변환하기 # Filename: makeMultTable.boo # # Print a multiplication table. # # Execute: booi makeMultTable.boo 230 5100 # # Date: 2009/04/04 # Author: PH Kim [ pkim (AT) scripts.pe.kr ] import System def printUsing(..

프로그래밍/Boo 2009.04.04

Boo 언어로 공백 문자 없이 연속적으로 출력하려면

Boo 언어에서 주로 쓰이는 컨솔 출력 구문 print something 은 새 줄 문자(newline code '\n')도 출력한다. 파이썬 언어에서 쓰이는 (끝에 콤마가 붙은) 구문 print something. 은 Boo 언어에서는 지원하지 않는다. 그렇다면 새 줄 문자(newline code '\n')를 출력하지 않는 출력 구문은 없을까? Boo 언어 자체에서는 지원하지 않으므로, 닷넷의 System.Console.Write(스트링) 을 발려서 쓰는 방법이 있다. import System for i in range(10): Console.Write("*") Console.Write("\n") 은 ********** 를 출력한다. 크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 코리아 ..

프로그래밍/Boo 2009.04.04

문자열 거꾸로 하기 with Boo

▒ Boo 소스: testStringReverse.boo /* * Filename: testStringReverse.boo * * [참고] 이 파일은 UTF-8 인코딩으로 저장되어야 함. * * Compile: booc -utf8 testStringReverse.boo * Execute: testStringReverse */ s = "Hello, world!" s2 = "안녕하세요?" ######################################### u = join(reversed(s), '') # 문자열 거꾸로 하기 u2 = join(reversed(s2), '') # 문자열 거꾸로 하기 print( "s = " + s ) print( " ---> " + "join(reversed(s), ''..

프로그래밍/Boo 2009.04.04

7비트 ASCII 코드표 만들기 예제 with Boo

ASCII(애스키)란 American Standard Code for Information Interchange의 줄임글로서, 영문자에 기초한 문자 인코딩이다. 이 문자 인코딩에는 C0 제어문자(C0 control character)도 포함되어 있다. ( 참고: ASCII - Wikipedia, the free encyclopedia ) 다음은 7bit ASCII 코드표를 만들어 보여주는 Boo 소스 코드이다. 소스 코드 중에 진법변환에 필요한 함수 convertAtoI(string, radix) convertItoA(number, radix) 의 구현도 포함되어 있다. 소스코드의 170째 줄에 c = cast(char, j*16 + i) // casting from int to char 로 작성된 것은..

프로그래밍/Boo 2009.04.03

진법(radix) 표 만들기 예제 with Boo

컴퓨터 프로그래밍에서 꼭 알아두어야 할 주요 진법은 당연히 10진법, 2진법, 8진법, 16진법이다. 다음은 0 에서 15 까지의 정수를 10진법, 2진법, 8진법, 16진법의 표로 만들어 보여주는 Boo 소스 코드이다. 진법 변환에 필요한 함수 convertAtoI(string, radix) convertItoA(number, radix) 를 Boo 코드로 자체 작성하여 사용하였다. # Filename: makeRadixTable.boo # Show the radix table with 10-, 2-, 8-, 16-radices. # # Execute: booi makeRadixTable.boo # # Date: 2009/04/03 # Author: PH Kim [ pkim (AT) scripts.pe..

프로그래밍/Boo 2009.04.03