Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

RubyLanguage: Difference between revisions

From ZeroWiki
imported>linflus
No edit summary
imported>linflus
No edit summary
Line 2: Line 2:
= Ruby =  
= Ruby =  
마츠모토 유키히로(Matz)가 1995년 [[Smalltalk]], Perl, [[Python]] 의 장점을 취하여 만든 객체지향 스크립트 언어이다. 펄보다 강력하고 파이썬보다 객체지향적이다.
마츠모토 유키히로(Matz)가 1995년 [[Smalltalk]], Perl, [[Python]] 의 장점을 취하여 만든 객체지향 스크립트 언어이다. 펄보다 강력하고 파이썬보다 객체지향적이다.
흔히 Ruby를 칭하는 명칭으로 ''진정한 객체지향 언어'', ''보다 나은 Perl'', ''동작하는 의사코드'', ''ALGOL의 탈을 쓴 Lisp''이라 한다.
흔히 Ruby를 칭하는 명칭으로 ''진정한 객체지향 언어'', ''보다 나은 Perl'', ''동작하는 의사코드'', ''ALGOL의 탈을 쓴 Lisp''등이 있다.
== 특징 ==
== 특징 ==
=== 진정한 객체지향 언어 ===
=== 진정한 객체지향 언어 ===
Line 15: Line 15:
** 단, Ruby 1.9에 도입된 BasicObject 클래스는 예외.
** 단, Ruby 1.9에 도입된 BasicObject 클래스는 예외.
=== 보다 나은 Perl ===
=== 보다 나은 Perl ===
* Perl과의 유사성
** 텍스트 처리에 적합한 HighlevelLanguage 이다.
** Ruby는 문자열을 간단히 다룰 수 있는 많은 기능을 갖추고 있다.
** Ruby는 확장 정규표현 기능이 인터프리터와 잘 통합되어 있다.
** C언어 라이브러리를 랩핑한 라이브러리를 지니고 있다.
* Perl보다 나은 점
** 스파게티 코드를 작성할 가능성이 덜하다.
=== 동작하는 의사코드 ===
=== 동작하는 의사코드 ===
* Ruby 코드는 간결해서
** 이해하기 쉽다.
** 보다 본질적인 면에 집중할 수 있다.
** C++, Java, C# 등의 언어로 작성한 코드 예문은
*** 본질적인 면과 상관없이 컴파일을 위한 코드가 많이 포함된다.
*** 언어 자체의 표현 능력 부족으로 의사코드를 사용해야했다.
* Ruby를 사용하면
** 생각하는대로 코드를 작성하면 된다.
** 프로그래밍 상의 개념을 설명할 때 실제로 동작하지 않는 의사코드를 작성할 필요가 없다.
# "Hello!" 를 세 번 출력하는 Ruby 예제 코드. 코드를 영어 문장을 읽듯이 읽어내려갈 수 있다.
3.times do
  puts "Hello!"
end
=== ALGOL의 탈을 쓴 Lisp ===
=== ALGOL의 탈을 쓴 Lisp ===
= 참고 =  
= 참고 =  

Revision as of 19:07, 20 January 2011

Ruby

마츠모토 유키히로(Matz)가 1995년 Smalltalk, Perl, Python 의 장점을 취하여 만든 객체지향 스크립트 언어이다. 펄보다 강력하고 파이썬보다 객체지향적이다. 흔히 Ruby를 칭하는 명칭으로 진정한 객체지향 언어, 보다 나은 Perl, 동작하는 의사코드, ALGOL의 탈을 쓴 Lisp등이 있다.

특징

진정한 객체지향 언어

  • Ruby는 진정한 객체 지향 언어이다.
    • Ruby에서는 숫자, 문자열, 정규표현, 입출력, 클래스 자체마저 객체이다. '객체가 아닌 자료형'은 존재하지 않는다.
    • 모든 작업은 객체를 이용한 작업이며, 작업의 결과물 또한 객체이다. 메소드나 코드 블록을 객체로 다룰 수 있다.
number = Math.abs(number); // 자바 절대값 구하기
number = nember.abs   # 루비 절대값 구하기
  • 클래스 기반의 객체지향을 채용했고, 모든 객체는 특정 클래스의 인스턴스이다.
  • 모든 클래스는 Object 클래스의 자손 클래스이다.
    • 단, Ruby 1.9에 도입된 BasicObject 클래스는 예외.

보다 나은 Perl

  • Perl과의 유사성
    • 텍스트 처리에 적합한 HighlevelLanguage 이다.
    • Ruby는 문자열을 간단히 다룰 수 있는 많은 기능을 갖추고 있다.
    • Ruby는 확장 정규표현 기능이 인터프리터와 잘 통합되어 있다.
    • C언어 라이브러리를 랩핑한 라이브러리를 지니고 있다.
  • Perl보다 나은 점
    • 스파게티 코드를 작성할 가능성이 덜하다.

동작하는 의사코드

  • Ruby 코드는 간결해서
    • 이해하기 쉽다.
    • 보다 본질적인 면에 집중할 수 있다.
    • C++, Java, C# 등의 언어로 작성한 코드 예문은
      • 본질적인 면과 상관없이 컴파일을 위한 코드가 많이 포함된다.
      • 언어 자체의 표현 능력 부족으로 의사코드를 사용해야했다.
  • Ruby를 사용하면
    • 생각하는대로 코드를 작성하면 된다.
    • 프로그래밍 상의 개념을 설명할 때 실제로 동작하지 않는 의사코드를 작성할 필요가 없다.
# "Hello!" 를 세 번 출력하는 Ruby 예제 코드. 코드를 영어 문장을 읽듯이 읽어내려갈 수 있다.
3.times do
  puts "Hello!"
end

ALGOL의 탈을 쓴 Lisp

참고


언어분류