Ruby (ингл. rubyрубин, якут; ру́би дип әйтелә) — динамик, интерпретацияләнүче, югары дәрәҗәле һәм объект-юнәлтелгән программалау теле. Әлеге телдә операцион системага бәйсез күпагымлылык гамәлгә ашырылган. Шулай ук тел катгый типизация, чүп җыю һәм башка мөмкинлекләргә ия. Синтаксис үзенчәлекләре белән ruby Perl һәм Эйфель телләренә, обект-юнәлтелү мөнәсәбәте буенча Smalltalk теленә якын. Телдәге кайбер алымнар Python, Lisp һәм Dylan программалаштыру телләреннән алынган.

Барлыкка килү һәм үсеш тарихы

үзгәртү

Rubyны ясаучы — Юкихиро Мацумото (Matz) — студент чагыннан программалау телләре белән кызыксына, ләкин яңа тел ясау фикере соңрак туа. Ruby 1993 елның 23 февралендә эшләнә башлый һәм 1995 елда дөнья күрә.

Яңа телне ясауның масаты "чын" объект-юнәлтелгән, куллануда җиңел, интерпретацияләнүче программалаштыру телен булдыру була.

Үрнәкләр

үзгәртү

Телләр белән танышуны башлый торган программа ruby-да

                      # комментарий - # тамгасыннан башлап юл ахырына кадәр
                      # «"» - тамгасы эчендә тел чаралары белән манипуляцияләнә торган юл
                      # puts - метод,
                      # бирелгән объектта to_s методын чакырып, кайтарылган кыйммәтне экранга чыгара
  puts "Hello World"  #=> Hello World

Ruby-да үзенчəлекле, башка киң таралган телләрдә сәрәк яисә бөтенләй очрамый торган, алымнар аз түгел. Шуларның берсе, теләсә кайсы класска гына түгел, теләсә кайсы объектка да метод өстәү мөмкинлеге. Мәсәлән, алдан билгеләнгән юлга (ингл. string) теләсә ниниди метод өстәп була.

  str = "Сәлам"    # монда String тибындагы, str үзгәрешлесе ясала
                   # def - функцияне игълан итү өчен
  def str.bye      # str. методның кемнеке икәнен күрсәтә (әйтелмәсә Object)
                   # bye - методның исеме, аның артыннан мәҗбүри булмаган, түгәрәк җәяләр
                   # эчендә, функциянең параметрлары исемлеге килә ала
    "Хуш!"         # методтан соңгы исәпләнелгән кыйммәт кайтарыла
  end              # Ruby-да күпчелек инструкцияләр end сүзе белән тәмамлана
                   # str.bye - str объектының bye методына мөрəҗəгать итү
                   # bye методыннан кайтрылган кыйммәт, puts методына бирелә,
  puts str.bye     #=> Хуш!