История развития языков программирования Фантастика :

Скачать презентацию История развития языков программирования  Фантастика : Скачать презентацию История развития языков программирования Фантастика :

istoriya_razvitiya_yazykov_programmirovaniya.ppt

  • Размер: 3.8 Мб
  • Автор: Кирилл Спесивцев
  • Количество слайдов: 69

Описание презентации История развития языков программирования Фантастика : по слайдам

История развития языков программирования  История развития языков программирования

Фантастика :  разговор с компьютером «Идеальный»  компьютер «понимает» естественный язык человека -Фантастика : разговор с компьютером «Идеальный» компьютер «понимает» естественный язык человека — «Программирование» на естественном языке

Чаа рльз Бэа ббидж Разностная машина - механический аппарат  для автоматизации  вычисленийЧаа рльз Бэа ббидж Разностная машина — механический аппарат для автоматизации вычислений путём аппроксимации функций многочленами и вычисления конечных разностей

Первая программистка. Августа Ада Кинг (урождённая Байрон) ,  графиня Лавлейс Составила первую вПервая программистка. Августа Ада Кинг (урождённая Байрон) , графиня Лавлейс Составила первую в мире программу (для Аналитической машины Чарльза Бэббиджа). Аналитическая машина Бэббиджа должна была производить разнообразные вычисления, следуя набору инструкций.

При проектировании Аналитической машины в 1836 -1848 годах Бэббидж фактически задал направление всему последующемуПри проектировании Аналитической машины в 1836 -1848 годах Бэббидж фактически задал направление всему последующему развитию ЭВМ. Проект создания аналитической машины предусматривал целый ряд механизмов, присущих нынешним ЭВМ : 1. Тех же пяти компонент (арифметическое устройство, устройство памяти, управления, ввода и вывода) 2. В число операций, помимо четырех арифметических, была включена операция условного перехода и операции с кодами команд 3. Все программы вычислений записывались на перфокартах пробивками

Ада Лавлейс :  •  создала первые в мире теоретические основы программирования •Ада Лавлейс : • создала первые в мире теоретические основы программирования • написала первый учебник по программированию • вошла в историю как «первая программистка» . Именно Лавлейс принадлежит идея использования для подачи на вход машины двух потоков перфокарт, которые были названы операционными картами переменных: первые управляли процессом обработки данных, которые были записаны на вторых. Информация заносилась на перфокарты путем пробивки отверстий. Из операционных карт можно было составить библиотеку функций. Помимо этого, Analytical Engine, по замыслу автора, должна была содержать устройство печати и устройство вывода результатов на перфокарты для последующего использования.

ПРИЧИНЫ НЕУДАЧИ БЭББИДЖА Основная причина :  Бэббидж действительно слишком превзошел своевремя(вконцежизнионсказал: «яготовотдатьпоследниегоды своейжизнизато,ПРИЧИНЫ НЕУДАЧИ БЭББИДЖА Основная причина : Бэббидж действительно слишком превзошел своевремя(вконцежизнионсказал: «яготовотдатьпоследниегоды своейжизнизато, чтобыпрожитьтриднячерез 150 лет, ичтобымне подробнообъяснили принципработы будущих машин» ). Бэббиджне сомневалсявбудущемразвитиивычислительнойтехники. • Невозможность в то время обрабатывать металл с высокой степенью точности (в то время как для реализации проекта Аналитической машины только зубчатых колес потребовалось бы несколькотысяч!) • Финансовая проблема. Если поначалу различные научные общества с энтузиазмом поддерживали Бэббиджа, то совсем скоро они охладели к затратному проекту с размытыми целями. В 1851 году Бэббидж с горечью заявлял, что все, связанное с машиной, он сделалзасобственныеденьги. Известно, чтоученыйвцеляхдобычи материальных средств написал роман, пытался избраться в Парламент. Британскойимперии, дажеодновремяигралвлотерею.

1940 -ые, Конрад. Цузе , ,  Plancalcul Перваяпопыткасоздать высоко-уровневыйязык программированияпринадлежит гениальному. Конраду. Цузе(конец1940 -ые, Конрад. Цузе , , Plancalcul Перваяпопыткасоздать высоко-уровневыйязык программированияпринадлежит гениальному. Конраду. Цузе(конец 1940 -хгодов), разработавшему Plancalcul (планировщик вычислений). «Plancalculродилсяисключительно какрезультаттеоретической работы, безвсякойсвязистем, появитсяилинетвобозримом будущеммашины, подходящиек программамна. Plancalcul» . Фрагментрукописи Цузе с шахматнойпрограммой наязыке Planc a lcul

Михаил. Романович. Шура-Бураи. А. П. Ершов–создателипервых отечественныхсистемавтоматизациипрограммированиядля ЭВМ «БЭСМ» и «Стрела» (1954 -1956 годы)Языкипрограммированияв.Михаил. Романович. Шура-Бураи. А. П. Ершов–создателипервых отечественныхсистемавтоматизациипрограммированиядля ЭВМ «БЭСМ» и «Стрела» (1954 -1956 годы)Языкипрограммированияв. СССР

Языкиисистемыпрограммирования в 1960 -е Наиболееактивныйпериод разработкиязыковисистем программирования приходитсяна 1960 -егоды. Заэтодесятилетиевмире родилосьболеетысячи разнообразныхязыков, какЯзыкиисистемыпрограммирования в 1960 -е Наиболееактивныйпериод разработкиязыковисистем программирования приходитсяна 1960 -егоды. Заэтодесятилетиевмире родилосьболеетысячи разнообразныхязыков, как универсальных, таки специализированных, но выжилиидорослидо XXI векадожилинемногие, втом числебессмертные Fotran, Basic, Algol, Cobol, Simula, Lisp иихпотомки. Нарисунке: «вавилонская башня» языков программи-рования, созданныхв 1960 -егоды

Родословнаяосновныхвысокоуровневыхязыков программирования Cobol. Fortran-77 Basic Visual. Basic Algol-68 Altair-Basic. Fortran-IV Cobol-85 IMS d. BASEРодословнаяосновныхвысокоуровневыхязыков программирования Cobol. Fortran-77 Basic Visual. Basic Algol-68 Altair-Basic. Fortran-IV Cobol-85 IMS d. BASE Fox. Pro Visual. Basic Fortran Cobol SQL Pascal. Algol-60 PL/1 Turbo Pascal Object. Pascal Ada Simula-67 Smalltalk B C C++ Java Visual. C++ Lisp Prolog. Delphi Visual. C++Modula Visual Fox. Pro Simula. Modula 1960 1970 1980 1990 2000 Logo

Бессмертный Fortran=FORmula. TRANslator Первыйвысокоуровневыйязык программирования Fortran был разработанвфирме. IBMпод руководством. Джона. Бэкуса(Backus, John; р.Бессмертный Fortran=FORmula. TRANslator Первыйвысокоуровневыйязык программирования Fortran был разработанвфирме. IBMпод руководством. Джона. Бэкуса(Backus, John; р. 1924). Работанадязыкомначаласьв 1954 г. , перваяреализациядля. IBM 704 в выполненав 1957 г. 19601970198019902000 Fortran-77 Basic Fortran-IV Algol-60 Fortran

C MAIN PROGRAM 101 FORMAT(208) 102 FORMAT(//’N=’, 15, 5 X, ’R=’, 15 1//6 X,C MAIN PROGRAM 101 FORMAT(208) 102 FORMAT(//’N=’, 15, 5 X, ’R=’, 15 1//6 X, ’M’, 5 X, PROB) 103 FORMAT(18, F 14. 10) 201 READ(1, 101) N, IR WRITE(3, 102) N, IR IF(N) 202, 203 202 STOP 203 IF(IR) 202, 204 M=O P=COMBF(N, M)*COMBF(IR-1, N-M-1) 1/COMBF(N+IR-1, IR). . . Фрагментпрограммынаязыке. Fortran

Basic– языкдляначинающих BASIC = Beginners All-purpuse Symbolic Instruction Code Язык. Basicбылразработанв 1964 г. в.Basic– языкдляначинающих BASIC = Beginners All-purpuse Symbolic Instruction Code Язык. Basicбылразработанв 1964 г. в. Дармутскомколледжев г. Хановере (Darmouth. College, Hanover ) , штат. Нью-Хемпшир. Fortran Basic Visual Basic. Altair-Basic. Fortran-IV

Простейшаяпрограмманаязыке. Basic Авторыязыка Basic. Стоит Джон. Кемени (Kemeny, John. G. ; 1926 - 19Простейшаяпрограмманаязыке. Basic Авторыязыка Basic. Стоит Джон. Кемени (Kemeny, John. G. ; 1926 — 19 93), сидит. Томас. Курц (Kurtz , Thomas. E. ; р. 1928) 10 dim. A(5) 20 fori=1 to 5 30 input. A(i) 40 nexti 50 ifi=5 thengoto 140 60 if. A(i)<=A(i+1)thengoto 90 70 i=i+1 80 goto 130 90 z=A(i) 100 A(i)=A(i+1) 110 A(i+1)=z 120 i=1 130 goto 50 140 fori=1 to 5 150 print. A(i) 160 nexti

 Будущиесоздатели Microsoft Пол. Аллен (Allen, Paul; р. 1954) и. Билл. Гейтс (Gates, Будущиесоздатели Microsoft Пол. Аллен (Allen, Paul; р. 1954) и. Билл. Гейтс (Gates, William; р. 1955)познакомилисьс. Бэйсиком, работаяв компьютерномклассешколыв. Сиэтле(снимок 1968 г. ) Basic ии Microsoft

Начавс. Бэйсика, компания Microsoft превратиласьвкрупнейшую софтвернуюимперию, а. Билл. Гейтс –сталсамымбогатымчеловекомна планете Штаб-квартира корпорации MicrosoftНачавс. Бэйсика, компания Microsoft превратиласьвкрупнейшую софтвернуюимперию, а. Билл. Гейтс –сталсамымбогатымчеловекомна планете Штаб-квартира корпорации Microsoft в Редмонде(пригород Сиэтла)

Напротяжениинесколькихдесятилетий Visual. Basic оставалсяфирменный языкомкомпании Microsoft. Вначале 1990 -хгодовонсталобъектными приобрелсредствавизуальногопроектирования Visual. Basic отот MicrosoftНапротяжениинесколькихдесятилетий Visual. Basic оставалсяфирменный языкомкомпании Microsoft. Вначале 1990 -хгодовонсталобъектными приобрелсредствавизуальногопроектирования Visual. Basic отот Microsoft

Cobol– языкдлябухгалтеров COBOL = COmmon Business-Oriented Language Нафото: разработчики языка Cobol ушуточного обелиска, присланноговCobol– языкдлябухгалтеров COBOL = COmmon Business-Oriented Language Нафото: разработчики языка Cobol ушуточного обелиска, присланногов ихадресвкачестве намеканабезнадежно медленнуюработу, способнуюпохоронить самуидею. Справавнизу –Грейс. Хоппер Cobol-85 Visual. Fox. Pro Cobol SQL

Основныесвойстваязыка Cobol :  •  независимостьпрограммотоборудования;  •  независимостьпрограммотданных;  • Основныесвойстваязыка Cobol : • независимостьпрограммотоборудования; • независимостьпрограммотданных; • сложныеструктурыданных; • синтаксис, приближенный кестественномуанглийскомуязыку. Cobol– языкдлябухгалтеров

 Программа на Коболе (начало)1010 IDENTIFICATION DIVISION. 1020 PROGRAM-ID“EXAMPLE”. 1030 ENVIROMENT DIVISION. 1040 INPUT-OUTPUTSECTION. Программа на Коболе (начало)1010 IDENTIFICATION DIVISION. 1020 PROGRAM-ID“EXAMPLE”. 1030 ENVIROMENT DIVISION. 1040 INPUT-OUTPUTSECTION. 1050 FILE-CONTROL. 1060 SELECTCDASSIGNTO“SYS 010”UNIT-RECORD 2540 R. 1070 SELECTTTASSIGNTO“SYS 009”UTILITY 2400. 1080 DATA DIVISION. 1090 FILESECTION. 1100 FD CD DATARECORDISC 1110 LABELRECORDSAREOMITTED. 112001 C. 1130 02 C 1 PICTURE 9(4). 1140 02 C 2 PICTURE 9. 1150 02 C 3 PICTUREX(70). Примерпрограммынаязыке COBOL

… 1290 PROCEDURE DIVISION. 1300 P 1. OPENINPUTCD, OUTPUTTT. 1310 P 2. READCD, ATENDGOTOP… 1290 PROCEDURE DIVISION. 1300 P 1. OPENINPUTCD, OUTPUTTT. 1310 P 2. READCD, ATENDGOTOP 3. 1320 MOVEC 1 TOD 1. 1330 MONEC 2 TOD 2. 1340 MOVEC 3 TOD 3. 1350 ADDC 1, C 2, GIVINGD 4. 1360 WRITETFROMD. 1370 GOTOP 2. 1380 P 3. CLOSESD, TT. 1390 STOPRUN. Программана. Коболе(окончание)

3. 3. 22. Языкиисистемыпрограммирования Algol иеговлияниенаязыкипрограммирования ALGOL = ALGOritmic Language В 1958 годув. Цюрихе(Швейцария)состояласьмеждународнаяконференция,3. 3. 22. Языкиисистемыпрограммирования Algol иеговлияниенаязыкипрограммирования ALGOL = ALGOritmic Language В 1958 годув. Цюрихе(Швейцария)состояласьмеждународнаяконференция, предложившаяпроектновогоуниверсальногомеждународногоязыка программирования. Algol-58. В 1960 годунапарижскойконференциибыла принятаокончательнаяверсияподназванием. Algol-60. Наснимке: участникипарижскойконференцииголосуютза. Алгол-60. Fortran Pascal. Algol-60 PL/1 Simula-67 B CAlgol-

 Основныесвойстваязыка Algol -60:  •  машиннаянезависимость;  •  формальныйсинтаксис;  • Основныесвойстваязыка Algol -60: • машиннаянезависимость; • формальныйсинтаксис; • описаниепеременныхиблочнаяструктура; • рекурсия Нормальнаяформа. Бэкуса-Наура ( БНФ) : : =1 |2|3|4|5|6|7|8|9|0 : : = | Algolиеговлияниенаязыки программирования

begin integer i, n; real s; real array x[1: n]; s: =0; for i:begin integer i, n; real s; real array x[1: n]; s: =0; for i: =1 step 1 to n do s: =s+x[i]; s: =s/n end Простейшаяпрограммана. Алголе-60, вычисляющаясреднее арифметическое n чисел. Синтаксис. Алгола-60 сформировалстандартдлявсехпоследующихязыков программирования. АЛГОЛиеговлияниенаязыки программирования

Врезультатемноголетнейпереработки. Алгола-60 комитетом IFIP появился язык Алгол-68 (пересмотренноесообщениеподред. А. ван. Вейнгаардена(A. van. Wijngaarden)идр. опубликовановВрезультатемноголетнейпереработки. Алгола-60 комитетом IFIP появился язык Алгол-68 (пересмотренноесообщениеподред. А. ван. Вейнгаардена(A. van. Wijngaarden)идр. опубликованов 1975 г. ) Стандарт. АЛГОЛ-

Pascal иегопотомки Членкомитетапо. Алголу-68 Никлаус. Вирт(Wirth, Niklaus; р. 1934)былпротивпринятияпереусложненного стандарта. Взнакдоказательствасвоейправотыонразработалв 1971 г. простойиясныйалголоподобныйязык,Pascal иегопотомки Членкомитетапо. Алголу-68 Никлаус. Вирт(Wirth, Niklaus; р. 1934)былпротивпринятияпереусложненного стандарта. Взнакдоказательствасвоейправотыонразработалв 1971 г. простойиясныйалголоподобныйязык, предназначенныйпреждевсегодляобучениястудентовв Федеральномтехническомуниверситетев. Швейцарии. В честьизобретателяпервойвычислительноймашины. Вирт назвалязык Паскалем. Pascal. Algol-60 Turbo Pascal Object. Pascal Ada. Delphi. Modula. Algol-68 Modula Smalltalk

var i, n: integer; s: float; x: array[1. . n]ofreal; begin s: =0; fori:var i, n: integer; s: float; x: array[1. . n]ofreal; begin s: =0; fori: =1 tondo s: =s+x[i]; s: =s/n end. Программана. Паскале, вычисляющая среднееарифметическоеnчисел

Паскаль( Pascal ) Никлаус Вирт ( Niklaus Wirth ) - швейцарскийучёный, одиниз известнейшихтеоретиковвобластиразработкиязыков программирования,Паскаль( Pascal ) Никлаус Вирт ( Niklaus Wirth ) — швейцарскийучёный, одиниз известнейшихтеоретиковвобластиразработкиязыков программирования, профессоркомпьютерныхнаук(ETH), Лауреат премии. Тьюринга 1984 года. Разработал : Паскаль, Модула-2, Оберон.

Новуюжизньязыку Pascal дал. Филипп Кан (Kahn, Philippe; р. 1938 )– создателькомпилятора Turbo Pascal дляНовуюжизньязыку Pascal дал. Филипп Кан (Kahn, Philippe; р. 1938 )– создателькомпилятора Turbo Pascal для IBMPC иоснователькомпании Borland (1984 г. )

Средаразработки Delphi фирмы Borland объединилапередовыедостижениятехнологии программирования: объектноерасширение языка Pascal , визуально-событийное проектирование, модульноеструктурированиеи раздельнаякомпиляция.Средаразработки Delphi фирмы Borland объединилапередовыедостижениятехнологии программирования: объектноерасширение языка Pascal , визуально-событийное проектирование, модульноеструктурированиеи раздельнаякомпиляция. Delphi- потомок Pascal Вотличиеотучебного. Паскаля, язык программирования Modula-2 , предложенные Никлаусом. Виртом, изначальнопредназначался дляпрофессиональногоприменения

В 1975 году. Министерство обороны. СШАпринялорешение разработатьстандартныйязык дляпрограммированиясложныхи ответственныхвоенных приложений. Былобъявлен широкиймеждународныйконкурс, вкоторомпринялиучастие 15В 1975 году. Министерство обороны. СШАпринялорешение разработатьстандартныйязык дляпрограммированиясложныхи ответственныхвоенных приложений. Былобъявлен широкиймеждународныйконкурс, вкоторомпринялиучастие 15 группразработчиков. Врезультате несколькихтуроввмае 1979 года выявилсяпобедитель— французскаяфирма. C. I. I. , руководительпроекта. Жан. Ихбиа (Ichbiah, Jean). Снимоксделанна II конференции поисторииязыков программирования, 1993 г. Pascal иегопотомки

Суперязык PLPL /1/1 –– самый сложныйязык. Cobol Algol-60 PL/1 1960 1970 E XAMPLE: PROCEDUREOPTIONS(MAIN);Суперязык PLPL /1/1 –– самый сложныйязык. Cobol Algol-60 PL/1 1960 1970 E XAMPLE: PROCEDUREOPTIONS(MAIN); ONENDFILE(SYSIN)GOTOENDING; P 1: GETLIST(A, B, C); D=B*B— 4*A*C; E=—B/(A+A); IFD<0 THENDO; X 1, X 2=E; Y 1=SQRT(—D)/(A+A); END; ELSEDO; R=SQRT(D)/(A+A); … Y 1=0; END; Y 2=—Y 1; PUTLIST(X 1, Y 1, X 2, Y 2); GOTOP 1; ENDING: ; ENDEXAMPLE; PL/1 = Programming Language One Язык. PL / 1 былчастью амбициозногопроекта IBM S/360 , онсоздавалсявспешке и представлялсобой механическуюсмесьидейиз многихязыков. Критики сравнивалиегоселкойсо множествомукрашений.

Simulaи. Smalltalk–революциявпрограммировании– Объектно-Ориентированноепрограммирование Simula=SIMULAlation Заразрабрткуязыка Simula Кристен. Нигорд (Nygaard, Kristen;  1926 -2002), наснимкеслева,Simulaи. Smalltalk–революциявпрограммировании– Объектно-Ориентированноепрограммирование Simula=SIMULAlation Заразрабрткуязыка Simula Кристен. Нигорд (Nygaard, Kristen; 1926 -2002), наснимкеслева, и Оле-Йохан. Дал(Dahl, Ole-Johan; 1931 -2002) былиудостоенывысшейнаградыкомпьютерного сообщества–медали. Тьюринга. Visual. Basic. Algol-60 Object. Pascal Simula-67 Smalltalk C++ Simula

|a| a: =Arraynew: 5. 1 to: 5 do: [: i|aat: iput: (Prompterprompt: ’Введитеэлемент массива’)as.|a| a: =Arraynew: 5. 1 to: 5 do: [: i|aat: iput: (Prompterprompt: ’Введитеэлемент массива’)as. Number]. a: =aas. Sorted. Collection. ado: [: i|Transcriptput. All: iprint. String]. Простейшая программа на Smalltalk , вычисляющая среднее арифметическое пяти чисел Алан Кей. Простейшаяпрограмма нана Smalltalk

С–языкдляпрофессионалов Язык Си(С) былсоздан. Деннисом. Ричи (Ritchie, Dennis. M. ; р. 1941)в 1973 годувС–языкдляпрофессионалов Язык Си(С) былсоздан. Деннисом. Ричи (Ritchie, Dennis. M. ; р. 1941)в 1973 годув Bell. Labsвходеразработкиоперационной системы. UNIX. Онразвивалязык Би(B), которыйосновывалсянасозданномв Кембриджскомуниверситетеязыке BCPL (от. Basic. Combined. Programming Language), которыйвсвоюочередьбыл потомком Алгола-601960 1970 1980 1990 2000 Algol-60 Smalltalk B C C++ Java Visual. C++PL/

float. A[5];  for(inti=0; i5; i++)scanf(f, &A[i]);  i=0;  while(i4){ if(A[i]=A[i+1])i++;  else{float. A[5]; for(inti=0; i<5; i++)scanf("%f", &A[i]); i=0; while(i<4){ if(A[i]<=A[i+1])i++; else{ z=A[i]; A[i]=A[i+1]; A[i+1]: =z; i=0; } }; for(i=0; i<5; i++)printf("%f\n", A[i]); Текстнаязыке. Сотличаетсялаконичностью

 Бьярн. Страуструп(Stroustrup, Bjarne; р. 1950)ввелвязык. С объектыипревратилегов. С++ С–языкдляпрофессионалов  Бьярн. Страуструп(Stroustrup, Bjarne; р. 1950)ввелвязык. С объектыипревратилегов. С++ С–языкдляпрофессионалов

Java– дитяинтернета В 1995 г. фирма Sun. Microsystems представилаязык Java для программированиявинтернете. Онвозниквходереализации проектаJava– дитяинтернета В 1995 г. фирма Sun. Microsystems представилаязык Java для программированиявинтернете. Онвозниквходереализации проекта Oak ( «Дуб» ), целью которогобылосозданиесистемы программированиябытовых микропроцессорныхустройств. Джеймс. Гослинг(Gosling, James) –автор Java.

Internet. Виртуальная Java-машина JVM Байт-код Компилятор Исходный текст на Java. Web-браузер Сервер. Клиент JavaInternet. Виртуальная Java-машина JVM Байт-код Компилятор Исходный текст на Java. Web-браузер Сервер. Клиент Java -технология. Java- апплеты

classtest { inti, n;  floats;  floatx[n];  publicstaticvoidmain(Stringargs[]) { n=10;  s=0;classtest { inti, n; floats; floatx[n]; publicstaticvoidmain(Stringargs[]) { n=10; s=0; for(i=1; i<=n; i++) { s=s+x[i-1]; s=s/n; } } Язык Java основанна. С++ Java ии C#C# Вкачествеальтернативы Java корпорация Microsoft предложилаязык С # (Си-шарп)

Lisp = LISt Processing Язык Lisp созданв 1960 году. Джоном Маккарти(Mc. Carthy, John; р.Lisp = LISt Processing Язык Lisp созданв 1960 году. Джоном Маккарти(Mc. Carthy, John; р. 1927)в Массачусетскомтехнологи-ческом институтенатеоретическом фундаментелямбда-исчисления, пред-ложенногоещев 1930 году известнымамериканскимлогиком Алонзо. Черчем. Долгожитель. Lisp–инструментфункционального программирования Lisp Prolog Lisp 1960 1970 1980 1990 2000 Дж. Маккартии. А. П. Ершов Снимок 1975 г.

Программана Lisp имеетспецифическийвидиз-заобилияскобок. Заэто студентыпрозвалиего «Lotsof. Infuriating&Silly. Parenthesis» - «Множество раздражающихиглупыхскобок» (setq. L`(85131110)) (defunsum(L)Программана Lisp имеетспецифическийвидиз-заобилияскобок. Заэто студентыпрозвалиего «Lotsof. Infuriating&Silly. Parenthesis» — «Множество раздражающихиглупыхскобок» (setq. L`(85131110)) (defunsum(L) (cond((null. L)’0) (t(add(car. L)(sum(cdr. L)))) ) ) (div(sum. L)’5) Примитивы : cond—условнаяфункция, проверяющаяспомощьюфункцииnullпустоту списка; add—суммированиеаргументов; car—извлечениепервогоэлементаизсписка; cdr—извлечениеостаткасписка(безпервогоэлемента). Примерпрограммына LISP

Scheme – 1975 год Функциональный язык программирования, один из двух наиболее популярных в нашиScheme – 1975 год Функциональный язык программирования, один из двух наиболее популярных в наши дни диалектов языка Лисп (другой популярный диалект — это Common Lisp). Авторы языка Scheme — Гай Стил (англ. Guy L. Steele) и Джеральд Сассмен (англ. Gerald Jay Sussman) из Массачусетского технологического института — создали его в середине 1970 -х годов. Продолжения — continuation состояние программы в определённый момент, которое может быть сохранено и использовано для перехода в это состояние. Продолжения содержат всю информацию, чтобы продолжить выполнения программы с определённой точки.

Prolog–несостоявшаясямечта. ЭВМVпоколения Prolog=PROgrammingfor. LOGic Теоретическиеосновыязыкабылиразработаны Робертом. Ковальским(Kowalski, Robert)в. Эдинбургском университете(Шотландия)вконце 1960 -хгодов Перваяпрактическаяреализацияязыка осуществлена.Prolog–несостоявшаясямечта. ЭВМVпоколения Prolog=PROgrammingfor. LOGic Теоретическиеосновыязыкабылиразработаны Робертом. Ковальским(Kowalski, Robert)в. Эдинбургском университете(Шотландия)вконце 1960 -хгодов Перваяпрактическаяреализацияязыка осуществлена. Аленом. Кольмари(Colmerauer, Alain)в. Марсельскомуниверситете(Франция) в 1972 г. 1960 1970 1980 1990 2000 Prolog. Lisp

Факты: муж(петя), муж(ваня), муж(коля), жен(таня), жен(маша), мать(ваня, таня), отец(ваня, петя), отец(маша, ваня), отец(коля, ваня).Факты: муж(петя), муж(ваня), муж(коля), жен(таня), жен(маша), мать(ваня, таня), отец(ваня, петя), отец(маша, ваня), отец(коля, ваня). Правила вывода: родитель(X, Y): —отец(X, Y) родитель(X, Y): —мать(X, Y) дед(X, Y): —родитель(X, Z), отец(Z, Y) брат(X, Y): —муж(Y), родитель(X, Z), родитель(Y, Z), XY Примеры диалога: GOAL>дед(коля, X) Кто дед Коли? X=Петя GOAL>брат(маша, X) Кто брат Маши? X=Коля. ЖМ М ЖМ Таня. Петя Ваня Маша. Коля Описаниепредметной областисемейных отношенийнаязыке Prolog

Концептуальные отличия ЭВМ V поколения:  • новаятехнологияпроизводствамикросхем, знаменующаяпереходоткремниякарсенидугаллия, и дающаявозможностьнапорядокповысить быстродействиеосновныхлогическихэлементов;  •Концептуальные отличия ЭВМ V поколения: • новаятехнологияпроизводствамикросхем, знаменующаяпереходоткремниякарсенидугаллия, и дающаявозможностьнапорядокповысить быстродействиеосновныхлогическихэлементов; • новаяархитектура(нефон-неймановская); • новыеспособыввода-выводаинформации— распознаваниеисинтезречииобразов; • отказоттрадиционныхалгоритмическихязыков программирования(Фортран, Алголит. п. )впользу декларативных; • ориентацияназадачиискусственногоинтеллектас автоматическимпоискомрешениянаосновелогического вывода. ЭВМЭВМ VV поколения

Языкзапросов высокогоуровня Языкядра Естественныйязык. Общениеголосоми графикой Система управления базамизнаний Система решениязадач иполучения логического выводаЯзыкзапросов высокогоуровня Языкядра Естественныйязык. Общениеголосоми графикой Система управления базамизнаний Система решениязадач иполучения логического вывода Система интеллектуального интерфейса Машинабазы знаний Машинарешения задачи получения выводов Машина интеллектуального интерфейса. А ппаратны е средства П рограм м ны е средства Ксетям. ЭВМ Vпоколения. Структура. ЭВМ VV поколения

Вкачествеосновногоязыка. ЭВМVпоколения предполагалосьиспользовать. Prolog  Вкачествеосновногоязыка. ЭВМVпоколения предполагалосьиспользовать. Prolog

Logo–языкдлясамыхмаленьких Язык Logo , изобретенв 1967 г. в MIT выдающимсяматематикоми педагогом. Сеймуром. Пейпертом (Papert,Logo–языкдлясамыхмаленьких Язык Logo , изобретенв 1967 г. в MIT выдающимсяматематикоми педагогом. Сеймуром. Пейпертом (Papert, Seymour; р. 1928). Пейпертв 1958 -1963 годах работалв. Женевеузнаменитого психолога. Жана. Пиаже(Piaget, Jean), гдезанималсядетьмии природойихмышления. Идейнойосновой Logo является язык Lisp 1960 1970 1980 1990 2000 Logo. Lisp Нафото: Сеймур. Пейпертполучает степеньпочетногодоктора. Софийского университета(1999 г. )

Программа на Logo управляет черепашкой,  оставляющей видимый след. С помощью зрительных образов интерпретируютсяПрограмма на Logo управляет черепашкой, оставляющей видимый след. С помощью зрительных образов интерпретируются все базовые структуры программирования Процедура с параметромэтодуга: шаг: число_шагов повтори: число_шагов [вперед: шагнаправо 10] Конец этоспираль: шаг если: шаг<1[стоп] дуга: шаг 18 спираль: шаг/2 конец Цикл Рекурсия 3. 3. 22. Языкиисистемыпрограммирования Logo– языкдлясамыхмаленьких

Концепция Logo учитываетдетскую психологиюирассчитанана обучениешкольников, начинаяс младшихклассов Новейшиереализации Logo используютпринципы объектно-ориентированного программирования. Впрограмме. Юли.Концепция Logo учитываетдетскую психологиюирассчитанана обучениешкольников, начинаяс младшихклассов Новейшиереализации Logo используютпринципы объектно-ориентированного программирования. Впрограмме. Юли. Гладких, 9 лет, черепашкавформе лебедяплаваетпоозеру. Наснимке: группаюныхпрограммистовнафакультете информатики. Томскогогосударственногоуниверситета. Занятиеведетдоцент. Т. Н. Поддубная (200 2 г. )Logo–языкдлясамыхмаленьких

ДРАКОН Д ружелюбный Р усский А лгоритмический язык К оторый О беспечивает Н аглядностьДРАКОН Д ружелюбный Р усский А лгоритмический язык К оторый О беспечивает Н аглядность Созданврамкахкосмическойпрограммы. Буран(разработканачатав 1986 г. ). Вразработкеязыкапринималиучастие Федеральноекосмическоеагентство ( НПЦавтоматикииприборостроенияим. акад. Н. А. Пилюгина, г. Моск ва )и Российскаяакадемиянаук ( Институтприкладнойматематикиим. акад. М. В. Келдыша ).

Парадигмыпрограммирования Основные парадигмы программирования:  • программированиевмашинныхкодах (Assembler) ;  • процедурноепрограммирование (Fortran, Basic,Парадигмыпрограммирования Основные парадигмы программирования: • программированиевмашинныхкодах (Assembler) ; • процедурноепрограммирование (Fortran, Basic, Cobol, Algol, Pascal, Ada, С, Logo, Fox. Pro) ; • объектно-ориентированноепрограммирование (Simula, Smalltalk, Object. Pascal, C++, Java, C#) ; • визуально-событийноепрограммирование (Visual Basic, Delphi, Visual. C++, Visual. Java, Visual. Fox. Pro); • функциональноепрограммирование (Lisp) ; • логическое программирование (Prolog). • аспектно-ориентированноепрограммирование. • предметно-ориентированноепрограммирование. • субьектно-ориентированноепрограммирование.

http: //lang-index. sourceforge. net / Место Название Процент 1 Java 17. 751 2 Chttp: //lang-index. sourceforge. net / Место Название Процент 1 Java 17. 751% 2 C 16. 110% 3 PHP 10. 351% 4 C++ 8. 154% 5 Basic 6. 230% 6 Python 5. 339% 7 C# 5. 026% 8 Perl 2. 412% 9 Delphi 2. 305% 10 Ruby 1. 924% 11 Objective-C 1. 895% 12 Java. Script 1. 808%

Визуальное(графическое)программирование  Визуальное(графическое)программирование

Андерс Хейлсберг. Разработчик Delphi и C# Андерс Хейлсберг. Разработчик Delphi и C#

C# объектно-ориентированныйязык программирования. Разработанв 1998 -2001 годахгруппойинженеровподруководством Андерса. Хейлсбергавкомпании. Microsoft как основнойязыкразработкиприложенийдля платформы. Microsoft.C# объектно-ориентированныйязык программирования. Разработанв 1998 -2001 годахгруппойинженеровподруководством Андерса. Хейлсбергавкомпании. Microsoft как основнойязыкразработкиприложенийдля платформы. Microsoft. NET. Компиляторс. C# входитвстандартнуюустановкусамой. NET, поэтомупрограммынанёмможносоздаватьи компилироватьдажебезинструментальных средств, вроде. Visual. Studio. Перенявмногоеотсвоихпредшественников- языков. C++, Java, Delphi, Модулаи. Smalltalk- С#неподдерживаетмножественное наследованиеклассов(вотличиеот. C++).

Go-компилируемый, многопоточныйязыкпрограммирования Началоразработки : сентябрь2007 года. http: // golang. org /Google Go = PythonGo-компилируемый, многопоточныйязыкпрограммирования Началоразработки : сентябрь2007 года. http: // golang. org /Google Go = Python + C++ Цель : повысить скорость Python за счёт статической типизации С++ при этом сохранив высокий уровень языка

Параллелизм-отличительнаяособенностьдизайна. Go. Языквводитпонятиеgoroutines—методы, которые выполняютсяодновременно. Любаяфункцияможетбыть выполненакакgoroutineспомощьюуказанияв префиксевызовафункцииключевогословаgo. Языкреализуетchannelмеханизм, которыйможетбыть использовандлябезопасногообменаданнымис goroutines.  Параллелизм-отличительнаяособенностьдизайна. Go. Языквводитпонятие»goroutines»—методы, которые выполняютсяодновременно. Любаяфункцияможетбыть выполненакак»goroutine»спомощьюуказанияв префиксевызовафункцииключевогослова»go». Языкреализует»channel»механизм, которыйможетбыть использовандлябезопасногообменаданнымис «goroutines».

Python Текст философии:  •  Красивоелучше, чемуродливое.  •  Явноелучше, чемнеявное. Python Текст философии: • Красивоелучше, чемуродливое. • Явноелучше, чемнеявное. • Простоелучше, чемсложное. • Сложноелучше, чемзапутанное. • Плоскоелучше, чемвложенное. • Разреженноелучше, чемплотное. • Читаемостьимеетзначение. • Особыеслучаиненастолькоособые, чтобынарушатьправила. • Приэтомпрактичностьважнеебезупречности. • Ошибкиникогданедолжнызамалчиваться. • Еслинезамалчиваютсяявно. • Встретивдвусмысленность, отбросьискушениеугадать. • Долженсуществоватьодин—и, желательно, только один—очевидный способсделатьэто. • Хотяонпоначалуможетбытьинеочевиден, есливынеголландец • Сейчаслучше, чемникогда. • Хотяникогдазачастуюлучше, чем прямо сейчас. • Еслиреализациюсложнообъяснить—идеяплоха. • Еслиреализациюлегкообъяснить—идея, возможно , хороша. • Пространстваимён—отличнаяштука!Будемделатьихпобольше!

Влияние других языков на Python Появившисьсравнительнопоздно, Pythonсоздавалсяподвлияниеммножества языковпрограммирования:  •  ABC ( англ.Влияние других языков на Python Появившисьсравнительнопоздно, Pythonсоздавалсяподвлияниеммножества языковпрограммирования: • ABC ( англ. )—отступыдлягруппировкиоператоров, высокоуровневые структурыданных(map) (фактически, Pythonсоздавалсякакпопыткаисправить ошибки, допущенныеприпроектировании. ABC); • Modula-3 —пакеты, модули, использование else совместнос try и except , именованныеаргументыфункций(наэтотакжеповлиял Common Lisp ); • Си , C++ —некоторыесинтаксическиеконструкции(какпишетсам Гвидо ван Россум —ониспользовалнаиболеенепротиворечивыеконструкциииз. С, чтобы невызватьнеприязньу. Си-программистовк. Python); • Smalltalk —объектно-ориентированноепрограммирование; • Lisp —отдельныечерты функциональногопрограммирования ( lambda, map, reduce, filter идругие); • Fortran —срезымассивов, комплекснаяарифметика; • Miranda — списочныевыражения ; • Java —модулиlogging, unittest, threading(частьвозможностейоригинального модулянереализована), xml. saxстандартнойбиблиотеки, совместное использованиеfinallyиexceptприобработкеисключений, использование@для декораторов; • Icon — генераторы. Большаячастьдругихвозможностей. Python(например, байт-компиляция исходногокода)такжебылареализованаранеевдругихязыках.

  print ( Здравствуй, s!    Мир ) Здравствуй, Мир !>>> print ( «Здравствуй, %s!» % «Мир» ) Здравствуй, Мир ! 1 < = a < 10 and 1 < = b < 20 (a < b) and "меньше" or "больше или равно" Ленивыеоперации "строка" + 'строка' """тоже строка""" u "Юникод-строка" True or False # булевы литералы 3. 14 # число с плавающей запятой 012 + 0 x. A # числа в восьмеричной и шестнадцатеричной системах счисления 1 + 2 j # целое число и мнимое число [ 1 , 2 , "a" ] # список ( 1 , 2 , "a" ) # кортеж { 'a' : 1 , 'b' : 'B' } # словарь lambda x: x ** 2 # неименованная функция

# -*- coding: utf-8 -*- Кодировка   2  **  100 # -*- coding: utf-8 -*- Кодировка >>> 2 ** 100 # возведение 2 в степень 100 1267650600228229401496703205376 L >>> from math import * # импорт математических функций >>> sin(pi * 0. 5 ) # вычисление синуса от половины пи 1. 0 >>> help ( srted ) # помощь по функции sorted Help on built- in function srted in module __builtin__ : srted (. . . ) srted (iterable, cmp = None , key= None , reverse= False ) — > new srted list. Режимкалькулятора

# Дан массив чисел. Найти 2 разных элемента,  произведение которых # максимально. b# Дан массив чисел. Найти 2 разных элемента, произведение которых # максимально. b = [- 2 , 3 , 4 , — 48 ] max = b [ 0 ]* b [ 1 ] for x in b : for y in b : if x != y and x * y > max : # можно if x==y: max = x * y # pass print max # else:

# сортировка пузырьком b  =  [ 2 , 3 , 4 ,# сортировка пузырьком b = [ 2 , 3 , 4 , 5 , 6 , 7 , 10 , 3 , 4 ] for i , vi in enumerate ( b ): for j , vj in enumerate ( b ): if b [ j ] > b [ i ]: b [ i ], b [ j ] = b [ j ], b [ i ] print b

# Дан массив слов, вывести в виде словаря 10 самых встречающихся букв b =[# Дан массив слов, вывести в виде словаря 10 самых встречающихся букв b =[ ‘fall’ , ‘winter’ , ‘summer’ , ‘defenestrate’ , ‘compilation’ ] d ={} max = 0 for word in b : for letter in word : if d. has_key ( letter ): d [ letter ]+= 1 else : d [ letter ]=

# Дан список (list), вывести все элементы умноженные на 2 (c помощью ГЕНЕРАТОРА) ## Дан список (list), вывести все элементы умноженные на 2 (c помощью ГЕНЕРАТОРА) # Например: # b = [2, 3, 4, 5, 6] b = [ 2 , 3 , 4 , 5 , 6 ] h = tuple ( x * 2 for x in b ) print «h = » , h k = tuple ( x for x in b if x % 2 == 0 ) # Все делящиеся на 2 (добавили условие) print «k = » , k k 1 = tuple ( x * x for x in b if x % 2 == 0 ) # Квадраты всех делящихся на 2 print «k 1 = » , k 1 k 2 = tuple ( x * x for x in b if ( x + 13 ) % 10 == 5 ) # может быть условие любой сложности (if. . . )