Лисп логикалық тілі



1. Лисп тілі туралы мәліметтер
2. Лисп тілінің негізгі ерекшелігі
3. Синтаксис элементтері
4. Лисп тіліндегі операторлар
5. Қорытынды
6. Пайдаланған әдебиеттер
1960 жылы математикадағы көптеген зерттеулер негізінде Джон Маккарти (John McCarthy) ЛИСП (LISP –LIST PROCESSING) деп аталатын программалау тілін құрды. ЛИСП тілі көптеген жылдар бойы да, қазір де, функционалдық стильде программалаудың тілі есебінде жүріп отыр. Бұл тілде қолданылатын көптеген идеялар функционалдық программалаудың негіздерін құрды деуге болады. Мысалы, функцияның өзін есептеу үдерісін ұйымдастырудың негізгі механизмі ретінде қарау, атом ұғымын енгізу, деректер мен программаның негізгі типтері есебінде тізімдерді қабылдау сияқты көптеген тәсілдер осы стильдің классикалық тірегі болып қалыптасты. Программалаудың функционалдық тілдері әдетте таңбалар және сандармен жұмыс істейді. Тілдің негізін салушы Маккарти «тізім» және оның кеңейтуі «тізімдік құрылым» деген ұғымдарды енгізген.
Тізімдер. Бұл құрылымдар негізінде x:y және осы жұптардың «жұп құру» операциясы бар. Операцияның осылайша жазылуы «инфикс қалыбында» деп аталады. Ал осы операцияның «префикстік» түрі келесі түрде: prefix x y (ЛИСП тілінде – CONS) жазылады. Бұл Prefix операцияның нәтижесі екі базистік head(басы) және tail(құйрығы) операциялары арқылы анықталады. Бұл операциялардың тағы селекторлар (ЛИСП тілінде – CAR және CDR) деген атауы да бар. Өйткені олар бүтіннен бөліктерді алып шығады. Бұл селекторлар мен конструкторлар ЛИСП тілінің негізгі базалық функцияларын құрады. Сондықтан оларды есептерге қолданып үйрену оқытудың маңызды қадамдарына жатады.
1-Кесте ЛИСП тіліндегі базалық функциялар мақсаты
Мақсаты Шақырылуы Нәтиже
жіктеу (car тізім) s-өрнек
жіктеу (cdr тізім) тізім
құру (cons s-өрнек тізім) тізім
тексеру (atom s- өрнек) T немесе NIL
тексеру (eq таңба, таңба) T немесе NIL

ЛИСП тіліндегі тізімдерді құру, талдау және жіктеуге арналған базалық функцияларға мыналар жатады: car, cdr, cons, atom, eq. Функционалдық программалауда көп қолданылатын механизмдердің біріне рекурсия жатады. Функцияның өзін өзі шақыруы ЛИСП тілінің негізгі ерекшелігі. Рекурсиялық анықтаманың негізгі идеясы функцияны рекурренттік формулалар арқылы анықтап, қарапайым түрде есептелетін бастапқы мәні бар функция түріне келтіру болып табылады. Функционалдық программалау негізінен таңбалармен жұмыс істейтіндіктен, таңбалардың қасиеттерін анықтайтын функцияларды оқып үйренудің маңызы зор. Сонымен бірге ЛИСП тілінің енгізу және шығару функцияларының да өзіндік ерекшеліктері бар. Белгілі бір түрде берілген тізімдерден жаңа тізбектерді құратын функцияларды ЛИСП тілінде бейнелеуші функционалдар деп атайды. Ол ЛИСП тілінде өздері бір топ құрады. Олардың көмегімен рекурсия немесе итерация арқылы басқарылатын қайталау есептерін қысқартып жазуға болады. Макростар ЛИСП тілінің синтаксисі мен семантикасын кеңейтуге мүмкіндік берумен қатар белгілі бір есептерге арналған тиімді программалар құрады.
1. Х. Абельсон, Д. Сассман. Структура и интерпретация компьютерных программ. — Книга и курс лекций MIT. В качестве основного языка используется Scheme.
2. Paul Graham. ANSI Common Lisp. — Prentice Hall, 1995. — ISBN 0-13-370875-6 (англ.).
3. Перевод: Пол Грэм. ANSI Common Lisp. — СПб.: Символ-Плюс, 2012. — 448 с. — ISBN 978-5-93286-206-3.
4. Paul Graham. On Lisp. — Prentice Hall, 1993. — ISBN 0-13-030552-9 (англ.).
5. Peter Seibel. Practical Common Lisp[en].
6. Хювёнен Э., Сеппянен Й. Мир Лиспа. В 2-х т. / Пер. с финск.. — М.: Мир, 1990. — ISBN 5-03-001935-9 (русск.). — ISBN 5-03-001336-9. — ISBN 951-26-2787-6(финск.).

ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
СЕМЕЙ ҚАЛАСЫНЫҢ ШӘКӘРІМ АТЫНДАҒЫ МЕМЛЕКЕТТІК УНИВЕРСИТЕТІ
Автоматтандыру және электротехника кафедрасы

СӨЖ
Тақырыбы: Лисп логикалық тілі

Орындаған:Қайырбек А.С
Тобы: ВТ-211
Қабылдаған:Курушбаева Д.Т

СЕМЕЙ 2015
Жоспар:
1. Лисп тілі туралы мәліметтер
2. Лисп тілінің негізгі ерекшелігі
3. Синтаксис элементтері
4. Лисп тіліндегі операторлар
5. Қорытынды
6. Пайдаланған әдебиеттер

1960 жылы математикадағы көптеген зерттеулер негізінде Джон Маккарти (John McCarthy) ЛИСП (LISP - LIST PROCESSING) деп аталатын программалау тілін құрды. ЛИСП тілі көптеген жылдар бойы да, қазір де, функционалдық стильде программалаудың тілі есебінде жүріп отыр. Бұл тілде қолданылатын көптеген идеялар функционалдық программалаудың негіздерін құрды деуге болады. Мысалы, функцияның өзін есептеу үдерісін ұйымдастырудың негізгі механизмі ретінде қарау, атом ұғымын енгізу, деректер мен программаның негізгі типтері есебінде тізімдерді қабылдау сияқты көптеген тәсілдер осы стильдің классикалық тірегі болып қалыптасты. Программалаудың функционалдық тілдері әдетте таңбалар және сандармен жұмыс істейді. Тілдің негізін салушы Маккарти тізім және оның кеңейтуі тізімдік құрылым деген ұғымдарды енгізген.
Тізімдер. Бұл құрылымдар негізінде x:y және осы жұптардың жұп құру операциясы бар. Операцияның осылайша жазылуы инфикс қалыбында деп аталады. Ал осы операцияның префикстік түрі келесі түрде: prefix x y (ЛИСП тілінде - CONS) жазылады. Бұл Prefix операцияның нәтижесі екі базистік head(басы) және tail(құйрығы) операциялары арқылы анықталады. Бұл операциялардың тағы селекторлар (ЛИСП тілінде - CAR және CDR) деген атауы да бар. Өйткені олар бүтіннен бөліктерді алып шығады. Бұл селекторлар мен конструкторлар ЛИСП тілінің негізгі базалық функцияларын құрады. Сондықтан оларды есептерге қолданып үйрену оқытудың маңызды қадамдарына жатады.
1-Кесте ЛИСП тіліндегі базалық функциялар мақсаты
Мақсаты
Шақырылуы
Нәтиже
жіктеу
(car тізім)
s-өрнек
жіктеу
(cdr тізім)
тізім
құру
(cons s-өрнек тізім)
тізім
тексеру
(atom s- өрнек)
T немесе NIL
тексеру
(eq таңба, таңба)
T немесе NIL

ЛИСП тіліндегі тізімдерді құру, талдау және жіктеуге арналған базалық функцияларға мыналар жатады: car, cdr, cons, atom, eq. Функционалдық программалауда көп қолданылатын механизмдердің біріне рекурсия жатады. Функцияның өзін өзі шақыруы ЛИСП тілінің негізгі ерекшелігі. Рекурсиялық анықтаманың негізгі идеясы функцияны рекурренттік формулалар арқылы анықтап, қарапайым түрде есептелетін бастапқы мәні бар функция түріне келтіру болып табылады. Функционалдық программалау негізінен таңбалармен жұмыс істейтіндіктен, таңбалардың қасиеттерін анықтайтын функцияларды оқып үйренудің маңызы зор. Сонымен бірге ЛИСП тілінің енгізу және шығару функцияларының да өзіндік ерекшеліктері бар. Белгілі бір түрде берілген тізімдерден жаңа тізбектерді құратын функцияларды ЛИСП тілінде бейнелеуші функционалдар деп атайды. Ол ЛИСП тілінде өздері бір топ құрады. Олардың көмегімен рекурсия немесе итерация арқылы басқарылатын қайталау есептерін қысқартып жазуға болады. Макростар ЛИСП тілінің синтаксисі мен семантикасын кеңейтуге мүмкіндік берумен қатар белгілі бір есептерге арналған тиімді программалар құрады.

Синтаксис элементтері:
Соңына дейінгі комментарий
;
Қосылуы мүмкін комментариялар
# ... #
Регистрге тәуелділік
нет
Идентификатор айнымалысының тұрақты
құрамында бос орындар болмайтын және сан кездеспейтін таңбалардың кез келген комбинациясы

Тұрақты өрнек функциясының идентификаторы
set, setf, setq
Айнымалыны жариялау
let
теңдік
eq, eql
Әрбір айнымалының жеке теңдігі
equal, equalp
Салыстыру
= =
Функцияны анықтау
(defun f (para1 para2) ...)
Функцияны шақыру
(f a b ...)
Параметрсіз функцияны шақыру
(f)
Егер - содан кейін
(if condition ...)
Егер - содан кейін -әйтпесе
(if condition trueBlock falseBlock)
Шексіз цикл
(loop do ...)
Шартты цикл
(loop while condition do ...)
Цикл с постусловием
(loop do ... until condition)
for - next циклдары инкременті 1-ге тең болатын диапазондағы сандар үшін
(loop for i from 1 to 10 do ...)
for - next циклдары декременті 1-ге тең болатын диапазондағы сандар үшін
(loop for i from 1 to 10 by -1 ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Бағдарламалық қамсыздандыруды орнықтыру
AutoCad ортасының AutoLisp программалау тілі
Программалау технологиялары
Турбо Прологтағы программаның құрылымы
Программалау тілдері
Бағдарламалау(программалау) технологиясы
Компьютердің негізгі орындаушысы - процессор
Фортран
Комьютерлік диагностика
Си бағдарламалау тілі
Пәндер