Создать форум бесплатно: ixbb.ru :: Календарь на Май 2024 года: calendar2008.ru/2024/may/

  Reply to this topicStart new topicStart Poll

Програмырование на языке "РУБИ"

Домофонщик
Отправлено: Dec 4 2007, 02:54 PM
Quote Post


  Генерал
*

Группа: Members
Сообщений: 244
Пользователь №: 1099
Регистрация:
22-August 07



Я хочу вас познакомить со сравнительно новым языком программирования Ruby (читается — «руби»). Но перед тем как начать — немного исторических фактов. Название языка происходит от имени драгоценного камня рубина (по аналогии с другим широко распространенным языком программирования Perl: «pearl» — жемчуг). Ruby увидел свет 23 февраля 1993 года. Его создатель — японец Юкихиро Мацумото (по прозвищу Мац), стремился создать язык, совмещающий все наилучшие качества других языков, чтобы облегчить труд программиста. Итак, в декабре 1995 года был опубликован Ruby 0.95 в японских новостных группах. С тех пор все и началось…

В стране восходящего солнца Ruby стал популярным с момента появления первой общедоступной пользовательской версии в 1995 году, однако наличие документации к нему только лишь на японском языке сдерживало его дальнейшее распространение и популяризацию. Только в 1997 году появилось описание Ruby на английском языке, а в 1998 году даже уже открылся форум ruby-talk. С этого момента язык программирования Ruby начал свое шествие по всему миру. Сейчас Ruby входит в большинство дистрибутивов ОС Linux, доступен он и пользователям других операционных систем, таким, например, как всеми нами любимая Windows.

Ruby очень удобный язык для решения многих задач. Вот как характеризует Ruby его автор: «Это мощный и динамический объектно-ориентированный язык с открытыми исходниками. Ruby работает на многих платформах, включая Linux и другие реализации Unix, MS–DOS, Windows 9x/2000/NT, BeOS и MacOS. Главная цель Ruby — эффективность разработки программ, и пользователи найдут, что программирование на нем эффективно и даже забавно».

Вот перечисление некоторых достоинств Ruby:

• имеет довольно простой синтаксис;

• поддерживает обработку исключений;

• позволяет переопределять операторы;

• является чисто объектно-ориентированным языком, в котором, в отличие от Java или Perl, все — объекты;

• позволяет работать с целыми числами произвольной величины (в Ruby нет ограничений на числа как таковых);

• не требует объявления переменных;

• использует префиксы (@, $, @@) для задания области видимости ( scope) переменных;

• поддерживает многопоточное программирование.

К недостаткам интерпретатора Ruby можно отнести следующие:

• невысокая скорость работы;

• отсутствие поддержки потоков операционной системы (данное утверждение действительно только для операционных систем семейства Microsoft Windows, потому как для Unix-подобных операционных систем есть Kernel.fork);

• у Ruby отсутствует встроенная поддержка юникода.

А где же все-таки используется Ruby, спросите вы… За ответом далеко ходить не надо:

• RPG Maker — R GSS (Ruby Game Scripting System);

• X Chat;

• Для K-Office разрабатывается Kross — механизм для поддержки скриптов, который включает Ruby;

• W A T I R (англ. «Web Application Testing in Ruby») — свободное средство для автоматического тестирования web-приложений в браузере.

Более полный список программ, написанных на Ruby, вы сможете найти по адресу raa.ruby-lang.org.

Наше знакомство с Ruby начнется с установки данного языка. Скачать дистрибутив можно в Интернете. В свое время я брал его по ссылке rubyforge.org/projects/rubyinstaller/. Последней известной мне версией Ruby является версия 1.8.5, которая вышла 28 августа 2006 года. Также существует вариант и для *никс-систем, но мне не удалось установить Ruby на мой Линукс (у меня стоит Alt Linux). Процесс установки подробно я описывать не буду. Объясню лишь некоторые моменты. Итак.

Параметры настройки редактора SciTE (Windows)

К сожалению, после установки SciTE замечены некоторые недостатки:

• не готов к работе с русским текстом;

• не показывает номера строк;

• знак табуляции заменяется на 8 пробелов вместо 4;

• текстовые символы разной ширины;

• знак переноса строки CR+LF (\r\n) вместо LF (\n), что может повлечь за собой проблемы с исполнением на операционных системах, отличных от ОС Windows.

Эти недостатки быстро устраняются через правку конфигурационных файлов. Загрузите свой редактор SciTE (обычно он расположен по адресу c:\ruby\scite\scite.exe). Выберите в меню Options > Open Global Options File. Нас интересуют только следующие опции:

QUOTE

line.margin.visible=1
use.monospaced=1
tabsize=4
indent.size=4
use.tabs=0
eol.mode=LF
eol.auto=1
character.set=204


Чтобы не утруждать себя поиском и заменой указанных параметров, добавьте их в конец конфигурационного файла. Перезапустите SciTE. Теперь можете забыть обо всем вышесказанном до следующей переустановки дистрибутива.

Чтобы запустить программу в SciTE, сохраните ее с расширением .rbw (или .rb). После этого выполнение программы будет происходить при нажатии клавиши F5. Открытие/закрытие окна с выводом результата программы осуществляется клавишей F8.

Создаем файл firstPrimer.rb. Далее нужно просто щелкнуть дважды по ярлыку с именем firstPrimer.rb. Помимо этого, любой редактор из стандартной поставки (SciTE и FreeRIDE) с радостью запустит вашу программу в ответ на нажатие клавиши F5.

Первая программа

Открываем текстовый редактор SciTE (или тот, который вы себе установили — их огромное множество) и начинаем писать нашу первую программу. Как заведено, это будет программа «Hello world!» Давайте не будем нарушать традицию:

QUOTE
puts "Hello world!"


Сохраняем ее с именем firstPrimer.rb и запускаем. На экране будет красоваться надпись:

QUOTE
"Hello world!"


Поздравляю вас, традиционный ритуал можно считать исполненным.

Комментарии и демонстрация результата

В Ruby знаком начала комментария служит символ #. Все, что между ним и концом строки, является комментарием. Пример:

QUOTE
# это комментарий


Вывод результата на экран

В Ruby есть много методов для вывода на экран: print, printf, p, puts, .display и другие. Но пока давайте мы пользоваться будем только двумя:

• метод puts. После вывода строки осуществляется переход на новую строку. Если приходится выводить объект, который не является строкой, то puts вызывает метод .to_s для преобразования его к строке (от «to_string»);

• метод p. Имеет самое короткое название, из-за чего часто используется для отладки. Так же, как и puts, осуществляет перевод на новую строку после вывода. Перед выводом любого объекта (в том числе и строки) на экран вызывает метод .inspect.

Приведу вам несколько примеров вывода на экран:

QUOTE
puts [1,2,3,4]  #-> 1\n2\n3\n4
p [1,2,3,4]    #-> [1,2,3,4]
puts "Hello!"    #-> "Hello!"
p "Hello!"    #-> "Hello!"   
puts 5      #-> 5
p 5        #-> 5


Как видно из примера ( рис. 1), результаты при выводе строк и массивов существенно различаются.

user posted image

Если вас не смущают кавычки в результате вывода, то смело используйте p, если смущают, то puts.

Переменные

Для тех, кто не знает: переменные используются, чтобы сохранить промежуточный результат вычислений. В нашем случае имя переменной в Ruby должно удовлетворять следующим условиям:

• начинаться со строчной латинской буквы или знака подчеркивания;

• состоять из строчных и прописных латинских букв, цифр и знака подчеркивания.

Это значит, что такие имена как 1Peremennaja, Peremennaja, p@#mennaja не являются действительными.

В Ruby значение переменной передается оператором присваивания (=). Делается это так:

QUOTE
array = [1,2,3,4]
peremennaja = array + [1,2]
drugajaPeremennaja = peremennaja — array



Слева от знака присваивания может быть как конкретный объект (пример первой строки), так и некоторое выражение (пример второй и третей строк).

Интерактивный терминал

Наверное, самым удобным способом экспериментировать с Ruby и программами на этом языке является интерактивный терминал irb (от «Interactive Ruby Shell», рис. 2). Он входит в комплект любого дистрибутива этого языка (да и сам к тому же написан на Ruby!) Чтобы начать работать с терминалом, просто запустите его, зайдя в папку с дистрибутивом и найдя файл irb.bat.

user posted image

Когда терминал запущен, можно набирать код, который сразу же будет выполнен. Результат выполненной операции вы увидите на своем экране:


QUOTE
% irb(main):001:0> [1,2,3,4]
% => [1, 2, 3, 4]


Поскольку одной из особенностей языка Ruby является то, что любая функция может быть переопределена в любой момент, важнейший этап написания большинства моих (а со временем и ваших) небольших (которые в процессе изучения языка становятся намного больше) программ — это именно эксперименты в интерактивном терминале.

Давайте, к примеру, произведем некоторые несложные вычисления:

QUOTE
% irb(main):002:0> 22+45
% => 67


Для того чтобы выйти из терминала, следует просто набрать команду exit.

Несомненно, главным, но отнюдь не единственным плюсом данного языка программирования является его простота и краткость. О его краткости вы смогли убедиться на данном примере простой программы.
PMEmail Poster
Top

Topic Options Reply to this topicStart new topicStart Poll

 



[ Script Execution time: 0.0198 ]   [ 10 queries used ]   [ GZIP выключен ]