Thursday, October 01, 2009

self = я or programming / программирование in Krestianstvo


EN: Just want to show, how Russian language is already could be used to program in Smalltalk using Krestianstvo.
Here is a program for building L-systems and drawing them with Pen or any other Object later in Smalltalk (for example Croquet's TObjects in OpenGL).
You will see some fragments of source code in Russian - all are the executable Smalltalk code. The whole version is available here (also it is available in update stream). The changeset (*.cs) or source code (*.st) files, which could contain Unicode symbols (russian here), could be exported or imported into the Krestianstvo system without any trouble.

RU: Представляю вашему вниманию пример, показывающий как уже сейчас можно программировать в среде Крестьянство на Smalltalk используя Русский язык. Мы запрограммируем алгоритм пострения L - систем и их рисования с помощью Карандаша или других объектов в дальнейшем (например Croquet TObjects в OpenGL).
Ниже приведены фрагменты исполняемого кода, полная версия доступна для скачивания здесь (так же в потоке обновлений для системы). Файлы изменений (*.cs) или исходного кода (*.st), содерджащие символы Unicode (в данном случае - русские), могут экспортироваться или импортироваться в систему Крестьянство без ошибок.

Smalltalk in Russian/ Smalltalk'а по Русски
self = я
to: do: = по: делай:
at: = в:
at: put: = в: значение:
ifNotNil:[] = еслиНеПусто:[]
ifTrue:[] = еслиИстина:[]
or:[] = или:[]

L - система (code fragments)/(фрагменты кода)

1. Объявление класса / Creating the class:
Объект подкласс: #ЛСистема
именаПеременныхЭкземпляраКласса: 'предложение наборПравил генерация'
именаПеременныхКласса: ''
глобальныеСловари: ''

категория: 'Математика-ЛСистемы'

3. Метод инициализаци / Initialization
ЛСистема>>определитьЛСистемуАксиома: аксиома наборПравил: набор

я предложение: аксиома.
я наборПравил: набор.
я генерация: 0.

2. Определение метода генерации / Defining the generation method:
ЛСистема>>генерировать

| текущийСимвол строкаЗамены заменаИзПравил следующаяГенерация |

следующаяГенерация := ''.
1 по: предложение размер делай:[:индекс|

текущийСимвол := (предложение в: индекс) какСтрока.
строкаЗамены := '',текущийСимвол.

заменаИзПравил := (я искатьИзНабораПравил: текущийСимвол).
заменаИзПравил еслиНеПусто:[ строкаЗамены := заменаИзПравил].

следующаяГенерация := следующаяГенерация, строкаЗамены.
].

предложение := следующаяГенерация.

генерация := генерация + 1.

4. Рисование / Painting:

ЛСистема>>нарисовать

| символ карандаш длинаЛинии уголПоворота |

карандаш := Карандаш новый.

длинаЛинии := 20.
уголПоворота := 60.

1 по: предложение размер делай:[:индекс|

символ := (предложение в: индекс) какСтрока.

((символ = 'F') или:[ (символ = 'G')]) еслиИстина:[

карандаш иди: длинаЛинии.

].

(символ = '+') еслиИстина:[

карандаш повернуть: уголПоворота.

].

(символ = '-') еслиИстина:[

карандаш повернуть: (-1) * уголПоворота.

].

].


5. Выполнение / Executing:

ЛСистема класс>>примерПостроенияЛСистемыСерпинский

| правила лСистема |

правила := Массив новый: 2.
правила в: 1 значение: ((ЛСистемаПравило новый) определитьПравило: 'F' строка: 'F--F--F--G').
правила в: 2 значение: ((ЛСистемаПравило новый) определитьПравило: 'G' строка: 'GG').

лСистема := (ЛСистема новый) определитьЛСистемуАксиома: 'F--F--F' наборПравил: правила.

"генерировать 5 раз"

1 по: 5 делай:[:i|
лСистема генерировать.
].
лСистема нарисовать.

5 comments:

oakleyses said...

roshe run, lululemon outlet, celine handbags, nfl jerseys, ugg, asics shoes, insanity workout, giuseppe zanotti, hollister, nike huarache, longchamp, ugg outlet, ugg soldes, uggs outlet, canada goose outlet, mont blanc pens, babyliss pro, canada goose outlet, canada goose, p90x workout, ghd, instyler ionic styler, marc jacobs outlet, beats headphones, chi flat iron, vans outlet, jimmy choo shoes, ugg boots, birkin bag, soccer jerseys, ferragamo shoes, abercrombie and fitch, valentino shoes, mcm handbags, new balance outlet, mac cosmetics, reebok shoes, nike trainers, bottega veneta, soccer shoes, canada goose outlet, north face jackets, herve leger, wedding dresses, rolex watches, uggs on sale, north face outlet

oakleyses said...

timberland shoes, ugg, ralph lauren, supra shoes, wedding dress, parajumpers outlet, uggs canada, louboutin, converse, moncler, vans, canada goose, lancel, toms outlet, coach outlet, hollister canada, moncler, links of london uk, moncler outlet, swarovski jewelry, pandora uk, juicy couture outlet, karen millen, iphone 6 case, pandora charms, canada goose uk, hollister clothing, nike air max, ray ban, air max, gucci, montre femme, thomas sabo uk, canada goose, baseball bats, hollister, moncler, louis vuitton canada, pandora jewelry, canada goose pas cher, moncler, juicy couture outlet, moncler, replica watches, swarovski uk, oakley, moncler, converse shoes

Unknown said...

Coming Nike Air Max 2015 Shoes off a Super Bowl loss, the Carolina Panthers were about salary-cap discipline. General manager Dave Gettleman preached patience and measure. And when it came to making roster decisions – like letting All-Pro cornerback Josh Norman walk Nike Free Run away – everything was about the overall financial design. “You have to balance the needs of the team now with the needs of the team in cheap nfl jerseys a couple of years,” Gettleman told Yahoo Sports in June. “You have to plan. I’m very wholesale nfl jerseys methodical Nike Roshe Run and intentional about what I do [and] nfl jerseys store about the decisions we make. You have to be that NFL Jerseys way with the salary cap, because Nike Air Max 90 it’s going to cost you.”

chenmeinv0 said...

toms shoes outlet
ugg outlet online
polo outlet
ugg canada
discount rolex watches
rolex watches
pandora charms outlet
ray bans uk
chanel handbags
oakley sunglasses
2016.12.6xukaimin

Quân Đào said...

họ cá nhân có được sử dụng hóa đơn điện tử
hạch toán chi phí lãi vay khi mua ô tô
cách tính chi phí thuê nhà cho người nước ngoài
quy định tiền học cho con người nước ngoài
có được viết tắt khi lập hóa đơn tên người mua quá dài
có phải nộp thuế môn bài khi công ty tạm ngừng
cách ghi số tiền trên hóa đơn điện tử theo tt 68
quy định quyền quyết toán thuế tncn
cách xử lý hóa đơn điện tử có sai xót theo tt 68
lưu ý khi lập bctc quyết toán thuế năm 2019
quy định nội dung của hóa đơn điện tử theo tt 68
thu nhập chịu thuế và không chịu thuế tncn từ tiền lương
hạch toán xử lý chi phí hóa hồng mô giới
xử lý chu phí hóa đơn trên 20triệu
nhận biết xử lý hóa đơn của doanh nghiệp bỏ trốn
cách tính thuế tiêu thụ đặc biệt phải nộp
cách tính tiền trợ cấp thôi việc