Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Лого Програмски језик





Лого програмски језик, дијалекат од Лиспа, осмишљен је као средство за учење. Његове особине - интерактивност, модуларност, могућност проширења, флексибилност типова података - пратите од овог циља.

Интерактивност

Иако постоје неке верзије Лога који се компајлирају, оне се углавном спроводе као интерпретирани језик. Интерактивност овог приступа кориснику пружа непосредну повратну информацију о појединачним инструкцијама, и помагже у дебаговању и процесу учења. Поруке од грешака су описне. На пример

fowad
I don't know how to fowad


(Реч фовад није примитивна - то је једна Лого уврштених речи - нити је поступак који је дефинисан)

forward
Not enough inputs to forward


(Сада када сте је исправно написали, Лого зна реч напред али не и да покрене ваше инструкције, јер напред захтева додатне информације)

forward 100

(Лого је срећан. Нема порука о грешци. Корњача се помера напред 100 корака)

Модуларност и Проширивост

Лого Програми су обично збирке малих процедура. Генерално, поступци су дефинисани писањем у текст едитору. Посебну реч да прати име поступка. Накнадне линије формирају поступак дефиниције. Реч завршите сигнализира да сте завршили.

У нашем Графика корњаче примеру дефинисали смо процедуру за цртање квадрата

to square
repeat 4 [forward 50 right 90]
end


и користи га као субпроцедуру другог поступка

to flower
repeat 36 [right 10 square]
end


Слично томе, цвет би могао да буде камен темељац нечег већег

to garden
repeat 25 [set-random-position flower]
end


Не, сет случајна-позиција није примитивна, али случајнa јесте и исто тако је сетпоситион (или сетпос или сетки). Или можете да напишете подесите Рандом-позицију користећи напред и десно са рандом.

Једном кад се Лого поступак дефинише то ради као и Лого примитивне. У ствари, када погледате Лого програме не постоји начин да се зна које речи су примитивне и које су кориснички дефинисане осим ако знате одређену Лого имплементацију. У нашој језичком примеру користили смо поступак покупити да насумично одаберете неку ставку из листе, на пример у поступку који.

to who
output pick [Sandy Dale Dana Chris]
end


У неким верзијама Лога изабери је примитивна, док у другима морате да је сами напишете. Ко ће изгледати и радити на исти у сваком случају.

Лого вам дозвољава да изградите комплексне пројекте у малим корацима. Програмирање у Логу се врши додавањем свог вокабулара, учећи га нове речи у смислу речи које већ зна. На овај начин је сличан начину на који људи уче говорни језик.

Флексибилност

Лого ради са речима и листама. Лого реч је веза знакова. Лого листа је наређена збирка речи и или листе. Бројеви су речи, али они су посебни, јер можете да урадите ствари као што је аритметика са њима.

Многи програмски језици су веома строги у вези жеље да тачно знају коју врсту података ви тврдите да користите. То чини ствари лакшим за рачунар, али је теже за програмера. Пре додавања неколико бројева можда ћете морати да наведете да ли су цели или реални бројеви. Рачунар мора да зна такве ствари. Али већина људи не размишљају о овоме тако да Лого брине о њему за вас. Када је упитан да уради аритметику Лого га једноставно уради.

print 3 + 4
7
print 3 / 4
.75


Ако нисте фамилијарни са Логом, али радите у другим програмским језицима, следећи редослед може вас изненадити:

print word "apple "sauce
applesauce

print word "3 "4
34

print 12 + word "3 "4
46


Ево је рекурзивна процедура која израчунава факторе:

to factorial :number
if :number = 1 [output 1]
output :number * factorial :number - 1
end

print factorial 3
6

print factorial 5
120


Ево је процедура да поништи листу речи

to reverse :stuff
ifelse equal? count :stuff 1
[output first :stuff]
[output sentence reverse butfirst :stuff first :stuff]
end

print reverse [apples and pears]
pears and apples


Такође, можда ћете хтети да погледате Бриан Харвијев занимљив Лого пример.

Напредне

Карактеристике које су илустроване су заједничке за све верзије Логоа. Неке Лого имплементације укључују напредне језичке карактеристике.

Постојао је објектно-оријентисани Лого назван Објекат Лого за Макинтош.

МицроВорлдс Лого укључује мултитаскинг, тако да неколико независних процеса може бити истовремено рађени. Иста способност је у софтверу за Контролу Лабораторије, Лего Лого производа. А још више масивнији паралелни Лого је СтарЛого.

У традиционалном Логу команда за корњаче

repeat 9999 [forward 1 right 1]

ће потрајати неко време да се изврши. Инструкција

repeat 9999 [forward 1 right 1] print "HELLO ће изазвати реч ЗДРАВО да се појави после кретња корњаче.

У МицроВорлдс Лого куцању

launch [repeat 9999 [forward 1 right 1]] print "HELLO

ће покренути корњачу. Реч
ЗДРАВО ће се појавити чим се први процес покрене. Или

forever [forward 1 right 1] print "HELLO

ће покренути процес који ће се наставити док га не заустави. Опет, реч ЗДРАВО ће се појавити чим процес корњаче је покренут.

Сазнајте више

Да бисте сазнали више о Лого програмском језику погледајте Брајан Харвијев три издања Компјутер Сциенце Лого Стил и Мајкл Фриендлијев Напредни Лого. Ако немате Лого и желите да почнете, можда ћете желети да погледате на нашем Лого Софтвер страници. Или, једноставно можете преузети УЦБЛого, МСВЛого, ФМСЛого, или СтарЛого сада.




Published (Last edited): 05-06-2012 , source: http://el.media.mit.edu/logo-foundation/logo/programming.html