Иван Калинин - Как правильно выбрать язык...

Preview:

Citation preview

ßçûêè ïðîãðàììèðîâàíèÿ

Êàëèíèí Èâàí

15 íîÿáðÿ 2014

ßçûê ïðîãðàììèðîâàíèÿ

• èñêóññòâåííûé ÿçûê

• äëÿ êîììóíèêàöèè �÷åëîâåê� => �ìàøèíà�

• â ÷àñòíîñòè, äëÿ ïåðåäà÷å êîìïüþòåðóèíñòðóêöèé è êîìàíä

• ò.ê. êîìïüþòåðû äî ñèõ ïîð ïëîõî ïîíèìàþòåñòåñòâåííûå ÿçûêè

• è ëþäè ïëîõî ïîíèìàþò ìàøèííûé ÿçûê

ßçûê ïðîãðàììèðîâàíèÿ

• èñêóññòâåííûé ÿçûê

• äëÿ êîììóíèêàöèè �÷åëîâåê� => �ìàøèíà�

• â ÷àñòíîñòè, äëÿ ïåðåäà÷å êîìïüþòåðóèíñòðóêöèé è êîìàíä

• ò.ê. êîìïüþòåðû äî ñèõ ïîð ïëîõî ïîíèìàþòåñòåñòâåííûå ÿçûêè

• è ëþäè ïëîõî ïîíèìàþò ìàøèííûé ÿçûê

ßçûê ïðîãðàììèðîâàíèÿ

• èñêóññòâåííûé ÿçûê

• äëÿ êîììóíèêàöèè �÷åëîâåê� => �ìàøèíà�

• â ÷àñòíîñòè, äëÿ ïåðåäà÷å êîìïüþòåðóèíñòðóêöèé è êîìàíä

• ò.ê. êîìïüþòåðû äî ñèõ ïîð ïëîõî ïîíèìàþòåñòåñòâåííûå ÿçûêè

• è ëþäè ïëîõî ïîíèìàþò ìàøèííûé ÿçûê

ßçûê ïðîãðàììèðîâàíèÿ

• èñêóññòâåííûé ÿçûê

• äëÿ êîììóíèêàöèè �÷åëîâåê� => �ìàøèíà�

• â ÷àñòíîñòè, äëÿ ïåðåäà÷å êîìïüþòåðóèíñòðóêöèé è êîìàíä

• ò.ê. êîìïüþòåðû äî ñèõ ïîð ïëîõî ïîíèìàþòåñòåñòâåííûå ÿçûêè

• è ëþäè ïëîõî ïîíèìàþò ìàøèííûé ÿçûê

ßçûê ïðîãðàììèðîâàíèÿ

• èñêóññòâåííûé ÿçûê

• äëÿ êîììóíèêàöèè �÷åëîâåê� => �ìàøèíà�

• â ÷àñòíîñòè, äëÿ ïåðåäà÷å êîìïüþòåðóèíñòðóêöèé è êîìàíä

• ò.ê. êîìïüþòåðû äî ñèõ ïîð ïëîõî ïîíèìàþòåñòåñòâåííûå ÿçûêè

• è ëþäè ïëîõî ïîíèìàþò ìàøèííûé ÿçûê

ßçûê ïðîãðàììèðîâàíèÿ

• èñêóññòâåííûé ÿçûê

• äëÿ êîììóíèêàöèè �÷åëîâåê� => �ìàøèíà�

• â ÷àñòíîñòè, äëÿ ïåðåäà÷å êîìïüþòåðóèíñòðóêöèé è êîìàíä

• ò.ê. êîìïüþòåðû äî ñèõ ïîð ïëîõî ïîíèìàþòåñòåñòâåííûå ÿçûêè

• è ëþäè ïëîõî ïîíèìàþò ìàøèííûé ÿçûê

ßçûê ïðîãðàììèðîâàíèÿ

• ìîãóò áûòü ïðîñòûìè:

print("Hello, world!")

• ñëîæíûìè:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>

++.>+.+++++++..+++.>++.<<+++++++++++++++.>.

+++.------.--------.>+.>.

• è íåïîíÿòíûìè:

ßçûê ïðîãðàììèðîâàíèÿ

• ìîãóò áûòü ïðîñòûìè:

print("Hello, world!")

• ñëîæíûìè:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>

++.>+.+++++++..+++.>++.<<+++++++++++++++.>.

+++.------.--------.>+.>.

• è íåïîíÿòíûìè:

ßçûê ïðîãðàììèðîâàíèÿ

• ìîãóò áûòü ïðîñòûìè:

print("Hello, world!")

• ñëîæíûìè:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>

++.>+.+++++++..+++.>++.<<+++++++++++++++.>.

+++.------.--------.>+.>.

• è íåïîíÿòíûìè:

Èñòîðèÿ

Íóëåâîå ïîêîëåíèå

• (ýëåêòðî)ìåõàíè÷åñêèå

• ïðîãðàììèðóþòñÿ ñòðóêòóðîé

• óçêîñïåöèàëüíûå

• âîçìîæíîñòè ïðîãðàììèðîâàíèÿ îãðàíè÷åíû

Íóëåâîå ïîêîëåíèå

• (ýëåêòðî)ìåõàíè÷åñêèå

• ïðîãðàììèðóþòñÿ ñòðóêòóðîé

• óçêîñïåöèàëüíûå

• âîçìîæíîñòè ïðîãðàììèðîâàíèÿ îãðàíè÷åíû

Íóëåâîå ïîêîëåíèå

• (ýëåêòðî)ìåõàíè÷åñêèå

• ïðîãðàììèðóþòñÿ ñòðóêòóðîé

• óçêîñïåöèàëüíûå

• âîçìîæíîñòè ïðîãðàììèðîâàíèÿ îãðàíè÷åíû

Íóëåâîå ïîêîëåíèå

• (ýëåêòðî)ìåõàíè÷åñêèå

• ïðîãðàììèðóþòñÿ ñòðóêòóðîé

• óçêîñïåöèàëüíûå

• âîçìîæíîñòè ïðîãðàììèðîâàíèÿ îãðàíè÷åíû

Æàêêàðäîâûé ñòàíîê

Ìàøèíà Áýááèäæà

Ïðîãðàììèðóåìûé òàáóëÿòîð

Åãî ïðîãðàììà

Ìàøèíà Òüþðèíãà

• ïðîãðàììà � íàáîð ñîñòîÿíèé è ïåðåõîäîâìàøèíû

• âõîäíûå è âûõîäíûå äàííûå çàïèñàíû íà ëåíòå

Code number of a Turing machine Input to Output

TAPE

HEAD

Control unit

Print Sk, EraseLeft, Right

Scannedsymbol

Table of U

11X11

RRRLL

ABCDE

10EE1

RLRNR

PKHUS

P1X0Y

RLNRR

MNOPH

Currentstate A:

Currentstate B:

Currentstate V:

. . .

. . .

. . .

. . .

. . .

Writesymbol

Movetape

Nextstate

Writesymbol

Movetape

Nextstate

Writesymbol

Movetape

Nextstate

tape symbol is blank

tape symbol is 0

tape symbol is 1

tape symbol is X

tape symbol is Y

etc.

Ìàøèíà Òüþðèíãà

• ïðîãðàììà � íàáîð ñîñòîÿíèé è ïåðåõîäîâìàøèíû

• âõîäíûå è âûõîäíûå äàííûå çàïèñàíû íà ëåíòå

Code number of a Turing machine Input to Output

TAPE

HEAD

Control unit

Print Sk, EraseLeft, Right

Scannedsymbol

Table of U

11X11

RRRLL

ABCDE

10EE1

RLRNR

PKHUS

P1X0Y

RLNRR

MNOPH

Currentstate A:

Currentstate B:

Currentstate V:

. . .

. . .

. . .

. . .

. . .

Writesymbol

Movetape

Nextstate

Writesymbol

Movetape

Nextstate

Writesymbol

Movetape

Nextstate

tape symbol is blank

tape symbol is 0

tape symbol is 1

tape symbol is X

tape symbol is Y

etc.

Ìàøèíà Òüþðèíãà

• ïðîãðàììà � íàáîð ñîñòîÿíèé è ïåðåõîäîâìàøèíû

• âõîäíûå è âûõîäíûå äàííûå çàïèñàíû íà ëåíòå

Code number of a Turing machine Input to Output

TAPE

HEAD

Control unit

Print Sk, EraseLeft, Right

Scannedsymbol

Table of U

11X11

RRRLL

ABCDE

10EE1

RLRNR

PKHUS

P1X0Y

RLNRR

MNOPH

Currentstate A:

Currentstate B:

Currentstate V:

. . .

. . .

. . .

. . .

. . .

Writesymbol

Movetape

Nextstate

Writesymbol

Movetape

Nextstate

Writesymbol

Movetape

Nextstate

tape symbol is blank

tape symbol is 0

tape symbol is 1

tape symbol is X

tape symbol is Y

etc.

Ìàøèíà Òüþðèíãà

• ïðîãðàììà � íàáîð ñîñòîÿíèé è ïåðåõîäîâìàøèíû

• âõîäíûå è âûõîäíûå äàííûå çàïèñàíû íà ëåíòå

Code number of a Turing machine Input to Output

TAPE

HEAD

Control unit

Print Sk, EraseLeft, Right

Scannedsymbol

Table of U

11X11

RRRLL

ABCDE

10EE1

RLRNR

PKHUS

P1X0Y

RLNRR

MNOPH

Currentstate A:

Currentstate B:

Currentstate V:

. . .

. . .

. . .

. . .

. . .

Writesymbol

Movetape

Nextstate

Writesymbol

Movetape

Nextstate

Writesymbol

Movetape

Nextstate

tape symbol is blank

tape symbol is 0

tape symbol is 1

tape symbol is X

tape symbol is Y

etc.

Àðõèòåêòóðà ôîí Íåéìàíà

ArithmeticLogicUnit

ControlUnit

Memory

Input Output

Accumulator

Öèôðîâûå êîìïüþòåðû

Èäåè ìàøèíû Òüþðèíãà è ìàøèíû Ôîí Íåéìàíà îïðåäåëèëè

äàëüíåéøåå ðàçâèòèå ïðîãðàììèðîâàíèÿ:

• îäíîðîäíîñòü ïàìÿòè

• àäðåñàöèÿ ïàìÿòè

• ïðîãðàììíîå óïðàâëåíèå

• äâîè÷íîå êîäèðîâàíèå äàííûõ è ïðîãðàìì

Ïåðâûå ïðîãðàììû äëÿ öèôðîâûõ êîìïüþòåðîâ ïèñàëèñü â

ìàøèííûõ êîäàõ.

Öèôðîâûå êîìïüþòåðû

Èäåè ìàøèíû Òüþðèíãà è ìàøèíû Ôîí Íåéìàíà îïðåäåëèëè

äàëüíåéøåå ðàçâèòèå ïðîãðàììèðîâàíèÿ:

• îäíîðîäíîñòü ïàìÿòè

• àäðåñàöèÿ ïàìÿòè

• ïðîãðàììíîå óïðàâëåíèå

• äâîè÷íîå êîäèðîâàíèå äàííûõ è ïðîãðàììÏåðâûå ïðîãðàììû äëÿ öèôðîâûõ êîìïüþòåðîâ ïèñàëèñü â

ìàøèííûõ êîäàõ.

Àññåìáëåð

• íèçêîóðîâíåâûé ÿçûê, ñïåöèàëèçèðîâàííûéäëÿ êîíêðåòíîé àðõèòåêòóðû

• 1-ê-1 ñîîòâåòñòâèå èíñòðóêöèé ÿçûêà êìàøèííûì êîäàì

mov ah,9

mov dx,offset hello_message

int 21h

Ïåðôîêàðòà

Ðàííèå ÿçûêè âûñîêîãî óðîâíÿ

 êîíöå 50õ � íà÷àëå 60õ ïðîáëåìû òàêîãî ïîäõîäà ñòàëè

î÷åâèäíû, ïîâèëèñü ïåðâûå ÿçûêè âûñîêîãî óðîâíÿ:

• FORTRAN

• COBOL

COBOL

001 IDENTIFICATION DIVISION.

002 PROGRAM-ID. 'HELLO'.

003 ENVIRONMENT DIVISION.

004 CONFIGURATION SECTION.

005 SOURCE-COMPUTER. IBM-360.

006 OBJECT-COMPUTER. IBM-360.

0065 SPECIAL-NAMES.

0066 CONSOLE IS CNSL.

007 DATA DIVISION.

008 WORKING-STORAGE SECTION.

009 77 HELLO-CONST PIC X(12) VALUE 'HELLO, WORLD'.

075 PROCEDURE DIVISION.

090 000-DISPLAY.

100 DISPLAY HELLO-CONST UPON CNSL.

110 STOP RUN.

FORTRAN

READ INPUT TAPE 5, 501, IA, IB, IC

501 FORMAT (3I5)

IF (IA) 777, 777, 701

701 IF (IB) 777, 777, 702

702 IF (IC) 777, 777, 703

703 IF (IA+IB-IC) 777,777,704

704 IF (IA+IC-IB) 777,777,705

705 IF (IB+IC-IA) 777,777,799

777 STOP 1

799 S = FLOATF (IA + IB + IC) / 2.0

AREA = SQRT( S * (S - FLOATF(IA)) * (S - FLOATF(IB)) *

+ (S - FLOATF(IC)))

WRITE OUTPUT TAPE 6, 601, IA, IB, IC, AREA

601 FORMAT (4H A= ,I5,5H B= ,I5,5H C= ,I5,8H AREA= ,F10.2,

+ 13H SQUARE UNITS)

STOP

Çîëîòîé âåê

Êîíåö 60õ � íà÷àëî 70õ.

Ïðîãðàììèðîâàíèå ïîëó÷àåò ïðèçíàíèå.

Ðåøàþòñÿ íîâûå çàäà÷è, ïîÿâëÿþòñÿ íîâûå ÿçûêè è ïîäõîäû.

• ïðîöåäóðíîå (ñòðóêòóðíîå) ïðîãðàììèðîâàíèå� Algol, C, Pascal

• îáúåêòíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå� Simula, Smalltalk

• ôóíêöèîíàëüíîå ïðîãðàììèðîâàííèå � LISP,ML

Çîëîòîé âåê

Êîíåö 60õ � íà÷àëî 70õ.

Ïðîãðàììèðîâàíèå ïîëó÷àåò ïðèçíàíèå.

Ðåøàþòñÿ íîâûå çàäà÷è, ïîÿâëÿþòñÿ íîâûå ÿçûêè è ïîäõîäû.

• ïðîöåäóðíîå (ñòðóêòóðíîå) ïðîãðàììèðîâàíèå� Algol, C, Pascal

• îáúåêòíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå� Simula, Smalltalk

• ôóíêöèîíàëüíîå ïðîãðàììèðîâàííèå � LISP,ML

Çîëîòîé âåê

Êîíåö 60õ � íà÷àëî 70õ.

Ïðîãðàììèðîâàíèå ïîëó÷àåò ïðèçíàíèå.

Ðåøàþòñÿ íîâûå çàäà÷è, ïîÿâëÿþòñÿ íîâûå ÿçûêè è ïîäõîäû.

• ïðîöåäóðíîå (ñòðóêòóðíîå) ïðîãðàììèðîâàíèå� Algol, C, Pascal

• îáúåêòíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå� Simula, Smalltalk

• ôóíêöèîíàëüíîå ïðîãðàììèðîâàííèå � LISP,ML

Ñêðèïòîâûå ÿçûêè

 80õ-90õ ñ ïîÿâëåíèåì PC â ïðîãðàììèðîâàíèå ïðèõîäÿò

�ïðîñòûå ëþäè�.

Ïîÿâëÿþòñÿ íîâûå ÿçûêè:

• Perl � 1987

• Python � 1991

• Ruby � 1993

Èõ îñíîâûå îñîáåííîñòè:

• íàöåëåííûå íà áûñòðóþ ðàçðàáîòêó

• èíòåðïðåòèðóåìûå

• ñ áîãàòîé ñòàíäàðòíîé áèáëèîòåêîé

Ñêðèïòîâûå ÿçûêè

 80õ-90õ ñ ïîÿâëåíèåì PC â ïðîãðàììèðîâàíèå ïðèõîäÿò

�ïðîñòûå ëþäè�.

Ïîÿâëÿþòñÿ íîâûå ÿçûêè:

• Perl � 1987

• Python � 1991

• Ruby � 1993

Èõ îñíîâûå îñîáåííîñòè:

• íàöåëåííûå íà áûñòðóþ ðàçðàáîòêó

• èíòåðïðåòèðóåìûå

• ñ áîãàòîé ñòàíäàðòíîé áèáëèîòåêîé

Ñêðèïòîâûå ÿçûêè

 80õ-90õ ñ ïîÿâëåíèåì PC â ïðîãðàììèðîâàíèå ïðèõîäÿò

�ïðîñòûå ëþäè�.

Ïîÿâëÿþòñÿ íîâûå ÿçûêè:

• Perl � 1987

• Python � 1991

• Ruby � 1993

Èõ îñíîâûå îñîáåííîñòè:

• íàöåëåííûå íà áûñòðóþ ðàçðàáîòêó

• èíòåðïðåòèðóåìûå

• ñ áîãàòîé ñòàíäàðòíîé áèáëèîòåêîé

Ñêðèïòîâûå ÿçûêè

 80õ-90õ ñ ïîÿâëåíèåì PC â ïðîãðàììèðîâàíèå ïðèõîäÿò

�ïðîñòûå ëþäè�.

Ïîÿâëÿþòñÿ íîâûå ÿçûêè:

• Perl � 1987

• Python � 1991

• Ruby � 1993

Èõ îñíîâûå îñîáåííîñòè:

• íàöåëåííûå íà áûñòðóþ ðàçðàáîòêó

• èíòåðïðåòèðóåìûå

• ñ áîãàòîé ñòàíäàðòíîé áèáëèîòåêîé

Ñêðèïòîâûå ÿçûêè

 80õ-90õ ñ ïîÿâëåíèåì PC â ïðîãðàììèðîâàíèå ïðèõîäÿò

�ïðîñòûå ëþäè�.

Ïîÿâëÿþòñÿ íîâûå ÿçûêè:

• Perl � 1987

• Python � 1991

• Ruby � 1993

Èõ îñíîâûå îñîáåííîñòè:

• íàöåëåííûå íà áûñòðóþ ðàçðàáîòêó

• èíòåðïðåòèðóåìûå

• ñ áîãàòîé ñòàíäàðòíîé áèáëèîòåêîé

Èíòåðíåò è Âåá

Âîçíèêàëè ñïåöèàëèçèðîâàííûå ÿçûêè:

• PHP

• JavaScript

Ìíîãèå ñóùåñòâóþùèå ÿçûêè íàøëè íîâûå íèøè è ñòàëè

âåá-îðèåíòèðîâàííûìè:

• Ruby

• Python

• Java

Èíòåðíåò è Âåá

Âîçíèêàëè ñïåöèàëèçèðîâàííûå ÿçûêè:

• PHP

• JavaScript

Ìíîãèå ñóùåñòâóþùèå ÿçûêè íàøëè íîâûå íèøè è ñòàëè

âåá-îðèåíòèðîâàííûìè:

• Ruby

• Python

• Java

Æèçíåííûé öèêë ÿçûêà

• ñîçäàíèå

• early adoption

• (ïðîìûøëåííûé) óñïåõ

• óàãàñàíèå, ñìåíà äðóãèìè ÿçûêàìè

Æèçíåííûé öèêë ÿçûêà

• ñîçäàíèå

• early adoption

• (ïðîìûøëåííûé) óñïåõ

• óàãàñàíèå, ñìåíà äðóãèìè ÿçûêàìè

Æèçíåííûé öèêë ÿçûêà

• ñîçäàíèå

• early adoption

• (ïðîìûøëåííûé) óñïåõ

• óàãàñàíèå, ñìåíà äðóãèìè ÿçûêàìè

Æèçíåííûé öèêë ÿçûêà

• ñîçäàíèå

• early adoption

• (ïðîìûøëåííûé) óñïåõ

• óàãàñàíèå, ñìåíà äðóãèìè ÿçûêàìè

×òî åñòü ÿçûê ïðîãðàììèðîâàíèÿ

ßçûê ýòî

• ñèíòàêñèñ

• ñåìàíòèêà

• runtime

ßçûê ýòî

• ñèíòàêñèñ

• ñåìàíòèêà

• runtime

ßçûê ýòî

• ñèíòàêñèñ

• ñåìàíòèêà

• runtime

Ñèíòàêñèñ

Îïðåäåëÿåò ôîðìó òåêñòîâîãî ïðåäñòàâëåíèÿ ïðîãðàìì.

• ãðàììàòèêà ÿçûêà � ôîðìàëüíàÿ, êàê ïðàâèëî� êîíòåêñòíî-ñâîáîäíàÿ (òèï 2 ïî Õîìñêîìó)

• BNF-îïèñàíèå ñèíòàêñèñà

ãðàììàòèêà LISP

expression ::= atom | list

atom ::= number | symbol

number ::= [+-]?['0'-'9']+

symbol ::= ['A'-'Z''a'-'z'].*

list ::= '(' expression* ')'

(defun factorial (x)

(if (zerop x)

1

(* x (factorial (- x 1)))))

ãðàììàòèêà LISP

expression ::= atom | list

atom ::= number | symbol

number ::= [+-]?['0'-'9']+

symbol ::= ['A'-'Z''a'-'z'].*

list ::= '(' expression* ')'

(defun factorial (x)

(if (zerop x)

1

(* x (factorial (- x 1)))))

Ñåìàíòèêà

Ìîæåò áûòü:

• îïèñàíà íà åñòåñòâåííîì ÿçûêå

• çàäàíà ôîðìàëüíî

• îïðåäåëåíà èñõîäíîé ðåàëèçàöèåé

• îïðåäåëåíà íàáîðîì òåñòîâ

Ðàçäåëÿåòñÿ íà:

• ñòàòè÷åñêóþ

• äèíàìè÷åñêóþ

Ñåìàíòèêà

Ìîæåò áûòü:

• îïèñàíà íà åñòåñòâåííîì ÿçûêå

• çàäàíà ôîðìàëüíî

• îïðåäåëåíà èñõîäíîé ðåàëèçàöèåé

• îïðåäåëåíà íàáîðîì òåñòîâ

Ðàçäåëÿåòñÿ íà:

• ñòàòè÷åñêóþ

• äèíàìè÷åñêóþ

Ñåìàíòèêà

Ìîæåò áûòü:

• îïèñàíà íà åñòåñòâåííîì ÿçûêå

• çàäàíà ôîðìàëüíî

• îïðåäåëåíà èñõîäíîé ðåàëèçàöèåé

• îïðåäåëåíà íàáîðîì òåñòîâ

Ðàçäåëÿåòñÿ íà:

• ñòàòè÷åñêóþ

• äèíàìè÷åñêóþ

Ñåìàíòèêà

Ìîæåò áûòü:

• îïèñàíà íà åñòåñòâåííîì ÿçûêå

• çàäàíà ôîðìàëüíî

• îïðåäåëåíà èñõîäíîé ðåàëèçàöèåé

• îïðåäåëåíà íàáîðîì òåñòîâ

Ðàçäåëÿåòñÿ íà:

• ñòàòè÷åñêóþ

• äèíàìè÷åñêóþ

Ñåìàíòèêà

Ìîæåò áûòü:

• îïèñàíà íà åñòåñòâåííîì ÿçûêå

• çàäàíà ôîðìàëüíî

• îïðåäåëåíà èñõîäíîé ðåàëèçàöèåé

• îïðåäåëåíà íàáîðîì òåñòîâ

Ðàçäåëÿåòñÿ íà:

• ñòàòè÷åñêóþ

• äèíàìè÷åñêóþ

Ñåìàíòèêà

Ìîæåò áûòü:

• îïèñàíà íà åñòåñòâåííîì ÿçûêå

• çàäàíà ôîðìàëüíî

• îïðåäåëåíà èñõîäíîé ðåàëèçàöèåé

• îïðåäåëåíà íàáîðîì òåñòîâ

Ðàçäåëÿåòñÿ íà:

• ñòàòè÷åñêóþ

• äèíàìè÷åñêóþ

Ñåìàíòèêà

Ìîæåò áûòü:

• îïèñàíà íà åñòåñòâåííîì ÿçûêå

• çàäàíà ôîðìàëüíî

• îïðåäåëåíà èñõîäíîé ðåàëèçàöèåé

• îïðåäåëåíà íàáîðîì òåñòîâ

Ðàçäåëÿåòñÿ íà:

• ñòàòè÷åñêóþ

• äèíàìè÷åñêóþ

Ñåìàíòèêà

Ìîæåò áûòü:

• îïèñàíà íà åñòåñòâåííîì ÿçûêå

• çàäàíà ôîðìàëüíî

• îïðåäåëåíà èñõîäíîé ðåàëèçàöèåé

• îïðåäåëåíà íàáîðîì òåñòîâ

Ðàçäåëÿåòñÿ íà:

• ñòàòè÷åñêóþ

• äèíàìè÷åñêóþ

Ñòàòè÷åñêàÿ ñåìàíòèêà

• ïðèäàåò ñìûñë ëåêñè÷åñêèì êîíñòðóêöèÿì

• îïðåäåëÿåò äîïóñòèìûå çíà÷åíèÿ ïåðåìåííûõè ïàðàìåòðîâ

• äîïîëíÿåò ñèíòàêñè÷åñêèå îãðàíè÷åíèÿ

Ñòàòè÷åñêàÿ ñåìàíòèêà

• ïðèäàåò ñìûñë ëåêñè÷åñêèì êîíñòðóêöèÿì

• îïðåäåëÿåò äîïóñòèìûå çíà÷åíèÿ ïåðåìåííûõè ïàðàìåòðîâ

• äîïîëíÿåò ñèíòàêñè÷åñêèå îãðàíè÷åíèÿ

Ñòàòè÷åñêàÿ ñåìàíòèêà

• ïðèäàåò ñìûñë ëåêñè÷åñêèì êîíñòðóêöèÿì

• îïðåäåëÿåò äîïóñòèìûå çíà÷åíèÿ ïåðåìåííûõè ïàðàìåòðîâ

• äîïîëíÿåò ñèíòàêñè÷åñêèå îãðàíè÷åíèÿ

Ñåìàíòèêà ýòàïà âûïîëíåíèÿ

• îïðåäåëÿåò îáùèé õàðàêòåð âûïîëíåíèÿïðîãðàììû

• îïèñûâàåò, êàê ðàáîòàþò âñòðîåííûå îïåðàöèè

• çàäàåò òðåáîâàíèÿ äëÿ èíòåðïðåòàòîðà /ðàíòàéìà

Ñåìàíòèêà ýòàïà âûïîëíåíèÿ

• îïðåäåëÿåò îáùèé õàðàêòåð âûïîëíåíèÿïðîãðàììû

• îïèñûâàåò, êàê ðàáîòàþò âñòðîåííûå îïåðàöèè

• çàäàåò òðåáîâàíèÿ äëÿ èíòåðïðåòàòîðà /ðàíòàéìà

Ñåìàíòèêà ýòàïà âûïîëíåíèÿ

• îïðåäåëÿåò îáùèé õàðàêòåð âûïîëíåíèÿïðîãðàììû

• îïèñûâàåò, êàê ðàáîòàþò âñòðîåííûå îïåðàöèè

• çàäàåò òðåáîâàíèÿ äëÿ èíòåðïðåòàòîðà /ðàíòàéìà

Ñèñòåìà òèïîâ

• òèïèçèðîâàííûé èëè íåòèïèçèðîâàííûé ÿçûê

• ñòàòè÷åñêàÿ èëè äèíàìè÷åñêàÿ òèïèçàöèÿ

• ñòðîãàÿ èëè ñëàáàÿ òèïèçàöèÿ

Ñèñòåìà òèïîâ

• òèïèçèðîâàííûé èëè íåòèïèçèðîâàííûé ÿçûê

• ñòàòè÷åñêàÿ èëè äèíàìè÷åñêàÿ òèïèçàöèÿ

• ñòðîãàÿ èëè ñëàáàÿ òèïèçàöèÿ

Ñèñòåìà òèïîâ

• òèïèçèðîâàííûé èëè íåòèïèçèðîâàííûé ÿçûê

• ñòàòè÷åñêàÿ èëè äèíàìè÷åñêàÿ òèïèçàöèÿ

• ñòðîãàÿ èëè ñëàáàÿ òèïèçàöèÿ

Ñèñòåìà òèïîâ

• òèïèçèðîâàííûé èëè íåòèïèçèðîâàííûé ÿçûê

• ñòàòè÷åñêàÿ èëè äèíàìè÷åñêàÿ òèïèçàöèÿ

• ñòðîãàÿ èëè ñëàáàÿ òèïèçàöèÿ

Ñèñòåìà òèïîâ

• òèïèçèðîâàííûé èëè íåòèïèçèðîâàííûé ÿçûê

• ñòàòè÷åñêàÿ èëè äèíàìè÷åñêàÿ òèïèçàöèÿ

• ñòðîãàÿ èëè ñëàáàÿ òèïèçàöèÿ

Ïàðàäèãìà

• ñ ãðå÷åñêîãî � øàáëîí, ïðèìåð, îáðàçåö

• ñèñòåìà èäåé è ïîíÿòèé, îïðåäåëÿþùèõ ñòèëüíàïèñàíèÿ êîìïüþòåðíûõ ïðîãðàìì (wiki)

• ÿçûê "áëàãîâîëèò"îäíîé èëè íåñêîëüêèìïàðàäèãìàì (ìóëüòèïàðàäèãìåííîñòü)

Ïàðàäèãìà

• ñ ãðå÷åñêîãî � øàáëîí, ïðèìåð, îáðàçåö

• ñèñòåìà èäåé è ïîíÿòèé, îïðåäåëÿþùèõ ñòèëüíàïèñàíèÿ êîìïüþòåðíûõ ïðîãðàìì (wiki)

• ÿçûê "áëàãîâîëèò"îäíîé èëè íåñêîëüêèìïàðàäèãìàì (ìóëüòèïàðàäèãìåííîñòü)

Ïàðàäèãìà

• ñ ãðå÷åñêîãî � øàáëîí, ïðèìåð, îáðàçåö

• ñèñòåìà èäåé è ïîíÿòèé, îïðåäåëÿþùèõ ñòèëüíàïèñàíèÿ êîìïüþòåðíûõ ïðîãðàìì (wiki)

• ÿçûê "áëàãîâîëèò"îäíîé èëè íåñêîëüêèìïàðàäèãìàì (ìóëüòèïàðàäèãìåííîñòü)

Ãëàâíûå ïàðàäèãìû• èìïåðàòèâíàÿ: ïðîãðàììà � íàáîðïîñëåäîâàòåëüíûõ èíñòðóêöèé, èçìåíÿþùèõâíóòðåííå ñîñòîÿíèå âû÷èñëèòåëÿ

• ôóíêöèîíàëüíàÿ: ïðîãðàììà � íàáîðìàòåìàòè÷åñêèõ ôóíêöèé, ðàáîòà ïðîãðàììû� âû÷èñëåíèå çíà÷åíèÿ ôóíêöèé

• îáúåêòíî-îðèåíòèðîâàííàÿ: ïðåäìåòíàÿîáëàñòü îïèñûâàåòñÿ ïðè ïîìîùè îáúåêòîâ ñîñâîéñòâàìè è ìåòîäàìè, ïðîãðàììà � ïðîöåññâçàèìîäåéñòâèå îáúåêòîâ

• ëîãè÷åñêàÿ: ïðîãðàììà � íàáîð óòâåðæäåíèé îïðåäìåòíîé îáëàñòè, ðàáîòà ïðîãðàììû �óñòàíîâëåíèå èñòèííîñòè âûñêàçûâàíèé

Ãëàâíûå ïàðàäèãìû• èìïåðàòèâíàÿ: ïðîãðàììà � íàáîðïîñëåäîâàòåëüíûõ èíñòðóêöèé, èçìåíÿþùèõâíóòðåííå ñîñòîÿíèå âû÷èñëèòåëÿ

• ôóíêöèîíàëüíàÿ: ïðîãðàììà � íàáîðìàòåìàòè÷åñêèõ ôóíêöèé, ðàáîòà ïðîãðàììû� âû÷èñëåíèå çíà÷åíèÿ ôóíêöèé

• îáúåêòíî-îðèåíòèðîâàííàÿ: ïðåäìåòíàÿîáëàñòü îïèñûâàåòñÿ ïðè ïîìîùè îáúåêòîâ ñîñâîéñòâàìè è ìåòîäàìè, ïðîãðàììà � ïðîöåññâçàèìîäåéñòâèå îáúåêòîâ

• ëîãè÷åñêàÿ: ïðîãðàììà � íàáîð óòâåðæäåíèé îïðåäìåòíîé îáëàñòè, ðàáîòà ïðîãðàììû �óñòàíîâëåíèå èñòèííîñòè âûñêàçûâàíèé

Ãëàâíûå ïàðàäèãìû• èìïåðàòèâíàÿ: ïðîãðàììà � íàáîðïîñëåäîâàòåëüíûõ èíñòðóêöèé, èçìåíÿþùèõâíóòðåííå ñîñòîÿíèå âû÷èñëèòåëÿ

• ôóíêöèîíàëüíàÿ: ïðîãðàììà � íàáîðìàòåìàòè÷åñêèõ ôóíêöèé, ðàáîòà ïðîãðàììû� âû÷èñëåíèå çíà÷åíèÿ ôóíêöèé

• îáúåêòíî-îðèåíòèðîâàííàÿ: ïðåäìåòíàÿîáëàñòü îïèñûâàåòñÿ ïðè ïîìîùè îáúåêòîâ ñîñâîéñòâàìè è ìåòîäàìè, ïðîãðàììà � ïðîöåññâçàèìîäåéñòâèå îáúåêòîâ

• ëîãè÷åñêàÿ: ïðîãðàììà � íàáîð óòâåðæäåíèé îïðåäìåòíîé îáëàñòè, ðàáîòà ïðîãðàììû �óñòàíîâëåíèå èñòèííîñòè âûñêàçûâàíèé

Ãëàâíûå ïàðàäèãìû• èìïåðàòèâíàÿ: ïðîãðàììà � íàáîðïîñëåäîâàòåëüíûõ èíñòðóêöèé, èçìåíÿþùèõâíóòðåííå ñîñòîÿíèå âû÷èñëèòåëÿ

• ôóíêöèîíàëüíàÿ: ïðîãðàììà � íàáîðìàòåìàòè÷åñêèõ ôóíêöèé, ðàáîòà ïðîãðàììû� âû÷èñëåíèå çíà÷åíèÿ ôóíêöèé

• îáúåêòíî-îðèåíòèðîâàííàÿ: ïðåäìåòíàÿîáëàñòü îïèñûâàåòñÿ ïðè ïîìîùè îáúåêòîâ ñîñâîéñòâàìè è ìåòîäàìè, ïðîãðàììà � ïðîöåññâçàèìîäåéñòâèå îáúåêòîâ

• ëîãè÷åñêàÿ: ïðîãðàììà � íàáîð óòâåðæäåíèé îïðåäìåòíîé îáëàñòè, ðàáîòà ïðîãðàììû �óñòàíîâëåíèå èñòèííîñòè âûñêàçûâàíèé

Runtime

Ïðîãðàììà ìîæåò âûïîëíÿòüñÿ ïî-ðàçíîìó:

• èíòåðïðåòàöèÿ � ÷òåíèå èñõîäíîãî êîäà âìîìåíò çàïóñêà

• êîìïèëÿöèÿ â ìàøèííûé êîä � îòäåëüíûé øàãäî çàïóñêà

• áàéò-êîìïèëÿöèÿ è âûïîëíåíèå â âèðòóàëüíîéìàøèíå

Ýòè òåõíèêè ìîãóò êîìáèíèðîâàòüñÿ � èíòåðïðåòàòîð ìîæåò

êîìïèëèðîâàòü "íà ëåòó äèíàìè÷åñêè-ñãåíåðèðîâàííûé êîä

ìîæåò èíòåðïðåòèðîâàòüñÿ áåç êîìïèëÿöèè.

Runtime

Ïðîãðàììà ìîæåò âûïîëíÿòüñÿ ïî-ðàçíîìó:

• èíòåðïðåòàöèÿ � ÷òåíèå èñõîäíîãî êîäà âìîìåíò çàïóñêà

• êîìïèëÿöèÿ â ìàøèííûé êîä � îòäåëüíûé øàãäî çàïóñêà

• áàéò-êîìïèëÿöèÿ è âûïîëíåíèå â âèðòóàëüíîéìàøèíå

Ýòè òåõíèêè ìîãóò êîìáèíèðîâàòüñÿ � èíòåðïðåòàòîð ìîæåò

êîìïèëèðîâàòü "íà ëåòó äèíàìè÷åñêè-ñãåíåðèðîâàííûé êîä

ìîæåò èíòåðïðåòèðîâàòüñÿ áåç êîìïèëÿöèè.

Runtime

Ïðîãðàììà ìîæåò âûïîëíÿòüñÿ ïî-ðàçíîìó:

• èíòåðïðåòàöèÿ � ÷òåíèå èñõîäíîãî êîäà âìîìåíò çàïóñêà

• êîìïèëÿöèÿ â ìàøèííûé êîä � îòäåëüíûé øàãäî çàïóñêà

• áàéò-êîìïèëÿöèÿ è âûïîëíåíèå â âèðòóàëüíîéìàøèíå

Ýòè òåõíèêè ìîãóò êîìáèíèðîâàòüñÿ � èíòåðïðåòàòîð ìîæåò

êîìïèëèðîâàòü "íà ëåòó äèíàìè÷åñêè-ñãåíåðèðîâàííûé êîä

ìîæåò èíòåðïðåòèðîâàòüñÿ áåç êîìïèëÿöèè.

Runtime

Ïðîãðàììà ìîæåò âûïîëíÿòüñÿ ïî-ðàçíîìó:

• èíòåðïðåòàöèÿ � ÷òåíèå èñõîäíîãî êîäà âìîìåíò çàïóñêà

• êîìïèëÿöèÿ â ìàøèííûé êîä � îòäåëüíûé øàãäî çàïóñêà

• áàéò-êîìïèëÿöèÿ è âûïîëíåíèå â âèðòóàëüíîéìàøèíå

Ýòè òåõíèêè ìîãóò êîìáèíèðîâàòüñÿ � èíòåðïðåòàòîð ìîæåò

êîìïèëèðîâàòü "íà ëåòó äèíàìè÷åñêè-ñãåíåðèðîâàííûé êîä

ìîæåò èíòåðïðåòèðîâàòüñÿ áåç êîìïèëÿöèè.

Runtime

Ïðîãðàììà ìîæåò âûïîëíÿòüñÿ ïî-ðàçíîìó:

• èíòåðïðåòàöèÿ � ÷òåíèå èñõîäíîãî êîäà âìîìåíò çàïóñêà

• êîìïèëÿöèÿ â ìàøèííûé êîä � îòäåëüíûé øàãäî çàïóñêà

• áàéò-êîìïèëÿöèÿ è âûïîëíåíèå â âèðòóàëüíîéìàøèíå

Ýòè òåõíèêè ìîãóò êîìáèíèðîâàòüñÿ � èíòåðïðåòàòîð ìîæåò

êîìïèëèðîâàòü "íà ëåòó äèíàìè÷åñêè-ñãåíåðèðîâàííûé êîä

ìîæåò èíòåðïðåòèðîâàòüñÿ áåç êîìïèëÿöèè.

Ïðåäñòàâèòåëè

• ñîçäàí â 1972 ãîäó

• ñîçäàòåëè � Äåííèñ Ðèò÷è (Dennis Ritchie) èêîëëåãè

• èìïåðàòèâíûé

• êîìïèëèðóåìûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• ðó÷íîå óïðàâëåíèå ïàìÿòüþ

• ñîçäàí â 1972 ãîäó

• ñîçäàòåëè � Äåííèñ Ðèò÷è (Dennis Ritchie) èêîëëåãè

• èìïåðàòèâíûé

• êîìïèëèðóåìûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• ðó÷íîå óïðàâëåíèå ïàìÿòüþ

• ñîçäàí â 1972 ãîäó

• ñîçäàòåëè � Äåííèñ Ðèò÷è (Dennis Ritchie) èêîëëåãè

• èìïåðàòèâíûé

• êîìïèëèðóåìûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• ðó÷íîå óïðàâëåíèå ïàìÿòüþ

• ñîçäàí â 1972 ãîäó

• ñîçäàòåëè � Äåííèñ Ðèò÷è (Dennis Ritchie) èêîëëåãè

• èìïåðàòèâíûé

• êîìïèëèðóåìûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• ðó÷íîå óïðàâëåíèå ïàìÿòüþ

• ñîçäàí â 1972 ãîäó

• ñîçäàòåëè � Äåííèñ Ðèò÷è (Dennis Ritchie) èêîëëåãè

• èìïåðàòèâíûé

• êîìïèëèðóåìûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• ðó÷íîå óïðàâëåíèå ïàìÿòüþ

• ñîçäàí â 1972 ãîäó

• ñîçäàòåëè � Äåííèñ Ðèò÷è (Dennis Ritchie) èêîëëåãè

• èìïåðàòèâíûé

• êîìïèëèðóåìûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• ðó÷íîå óïðàâëåíèå ïàìÿòüþ

Äî ñèõ ïîð êðàéíå àêòóàëåí, èñïîëüçóåòñÿ äëÿ:

• ñèñòåìíîãî ïðîãðàììèðîâàíèÿ (íàïðèìåð,Linux)

• number-crunching

• ïðîãðàììèðîâàíèÿ ìèêðîêîíòðîëëåðîâ èâñòðàèâàåìûõ ñèñòåì

Äî ñèõ ïîð êðàéíå àêòóàëåí, èñïîëüçóåòñÿ äëÿ:

• ñèñòåìíîãî ïðîãðàììèðîâàíèÿ (íàïðèìåð,Linux)

• number-crunching

• ïðîãðàììèðîâàíèÿ ìèêðîêîíòðîëëåðîâ èâñòðàèâàåìûõ ñèñòåì

Äî ñèõ ïîð êðàéíå àêòóàëåí, èñïîëüçóåòñÿ äëÿ:

• ñèñòåìíîãî ïðîãðàììèðîâàíèÿ (íàïðèìåð,Linux)

• number-crunching

• ïðîãðàììèðîâàíèÿ ìèêðîêîíòðîëëåðîâ èâñòðàèâàåìûõ ñèñòåì

C � ïðèìåðû

Hello world:

#include <stdio.h>

int main(void)

{

printf("Hello, world!\n");

return 0;

}

• ñîçäàí â 1995 ãîäó

• ñîçäàòåëè � Äæåéìñ Ãîñëèíã (James Gosling) èSun Microsystems

• îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• áàéò-êîìïèëèðóåìûé ñ âèðòóàëüíîé ìàøèíîé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• ñîçäàí â 1995 ãîäó

• ñîçäàòåëè � Äæåéìñ Ãîñëèíã (James Gosling) èSun Microsystems

• îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• áàéò-êîìïèëèðóåìûé ñ âèðòóàëüíîé ìàøèíîé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• ñîçäàí â 1995 ãîäó

• ñîçäàòåëè � Äæåéìñ Ãîñëèíã (James Gosling) èSun Microsystems

• îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• áàéò-êîìïèëèðóåìûé ñ âèðòóàëüíîé ìàøèíîé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• ñîçäàí â 1995 ãîäó

• ñîçäàòåëè � Äæåéìñ Ãîñëèíã (James Gosling) èSun Microsystems

• îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• áàéò-êîìïèëèðóåìûé ñ âèðòóàëüíîé ìàøèíîé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• ñîçäàí â 1995 ãîäó

• ñîçäàòåëè � Äæåéìñ Ãîñëèíã (James Gosling) èSun Microsystems

• îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• áàéò-êîìïèëèðóåìûé ñ âèðòóàëüíîé ìàøèíîé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• ñîçäàí â 1995 ãîäó

• ñîçäàòåëè � Äæåéìñ Ãîñëèíã (James Gosling) èSun Microsystems

• îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé

• ñòðîãî- è ñòàòè÷åñêè-òèïèçèðîâàííûé

• áàéò-êîìïèëèðóåìûé ñ âèðòóàëüíîé ìàøèíîé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

Èñïîëüçóåòñÿ äëÿ:

• ïðèêëàäíîãî ïðîãðàììèðîâàíèÿ, â ò.÷.âåá-ïðîãðàììèðîâàíèÿ

• âñòðàèâàåìûõ ñèñòåì

• âûñîêîíàãðóæåííûé ñèñòåìÑòîèò îòëè÷àòü ñïåöèôèêàöèè ÿçûêà Java è ðàçëè÷íûå

ðåàëèçàöèè JVM: � Sun JDK, IBM JDK, OpenJDK, etc

Èñïîëüçóåòñÿ äëÿ:

• ïðèêëàäíîãî ïðîãðàììèðîâàíèÿ, â ò.÷.âåá-ïðîãðàììèðîâàíèÿ

• âñòðàèâàåìûõ ñèñòåì

• âûñîêîíàãðóæåííûé ñèñòåìÑòîèò îòëè÷àòü ñïåöèôèêàöèè ÿçûêà Java è ðàçëè÷íûå

ðåàëèçàöèè JVM: � Sun JDK, IBM JDK, OpenJDK, etc

Èñïîëüçóåòñÿ äëÿ:

• ïðèêëàäíîãî ïðîãðàììèðîâàíèÿ, â ò.÷.âåá-ïðîãðàììèðîâàíèÿ

• âñòðàèâàåìûõ ñèñòåì

• âûñîêîíàãðóæåííûé ñèñòåì

Ñòîèò îòëè÷àòü ñïåöèôèêàöèè ÿçûêà Java è ðàçëè÷íûå

ðåàëèçàöèè JVM: � Sun JDK, IBM JDK, OpenJDK, etc

Èñïîëüçóåòñÿ äëÿ:

• ïðèêëàäíîãî ïðîãðàììèðîâàíèÿ, â ò.÷.âåá-ïðîãðàììèðîâàíèÿ

• âñòðàèâàåìûõ ñèñòåì

• âûñîêîíàãðóæåííûé ñèñòåì

Ñòîèò îòëè÷àòü ñïåöèôèêàöèè ÿçûêà Java è ðàçëè÷íûå

ðåàëèçàöèè JVM: � Sun JDK, IBM JDK, OpenJDK, etc

Èñïîëüçóåòñÿ äëÿ:

• ïðèêëàäíîãî ïðîãðàììèðîâàíèÿ, â ò.÷.âåá-ïðîãðàììèðîâàíèÿ

• âñòðàèâàåìûõ ñèñòåì

• âûñîêîíàãðóæåííûé ñèñòåìÑòîèò îòëè÷àòü ñïåöèôèêàöèè ÿçûêà Java è ðàçëè÷íûå

ðåàëèçàöèè JVM: � Sun JDK, IBM JDK, OpenJDK, etc

Java � ïðèìåðû

Hello world:

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello, world!");

}

}

• LISt Processor

• ñîçäàí â 1958 ãîäó

• ñîçäàòåëè � Äæîí Ìàêêàðòè

• ÷èñòûé ôóíêöèîíàëüíûé ÿçûê

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• êàê ïðàâèëî, èíòåðïðåòèðóåìûé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• LISt Processor

• ñîçäàí â 1958 ãîäó

• ñîçäàòåëè � Äæîí Ìàêêàðòè

• ÷èñòûé ôóíêöèîíàëüíûé ÿçûê

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• êàê ïðàâèëî, èíòåðïðåòèðóåìûé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• LISt Processor

• ñîçäàí â 1958 ãîäó

• ñîçäàòåëè � Äæîí Ìàêêàðòè

• ÷èñòûé ôóíêöèîíàëüíûé ÿçûê

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• êàê ïðàâèëî, èíòåðïðåòèðóåìûé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• LISt Processor

• ñîçäàí â 1958 ãîäó

• ñîçäàòåëè � Äæîí Ìàêêàðòè

• ÷èñòûé ôóíêöèîíàëüíûé ÿçûê

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• êàê ïðàâèëî, èíòåðïðåòèðóåìûé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• LISt Processor

• ñîçäàí â 1958 ãîäó

• ñîçäàòåëè � Äæîí Ìàêêàðòè

• ÷èñòûé ôóíêöèîíàëüíûé ÿçûê

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• êàê ïðàâèëî, èíòåðïðåòèðóåìûé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• LISt Processor

• ñîçäàí â 1958 ãîäó

• ñîçäàòåëè � Äæîí Ìàêêàðòè

• ÷èñòûé ôóíêöèîíàëüíûé ÿçûê

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• êàê ïðàâèëî, èíòåðïðåòèðóåìûé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

• LISt Processor

• ñîçäàí â 1958 ãîäó

• ñîçäàòåëè � Äæîí Ìàêêàðòè

• ÷èñòûé ôóíêöèîíàëüíûé ÿçûê

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• êàê ïðàâèëî, èíòåðïðåòèðóåìûé

• íåò äîñòóïà ê ïàìÿòè, àâòîìàòè÷åñêàÿ ñáîðêàìóñîðà

Èñïîëüçóåòñÿ äëÿ:

• íàó÷íîãî ïðîãðàììèðîâàíèÿ è èññëåäîâàíèé

• èñêóñòâåííîãî èíòåëëåêòà

• âñåãî, ÷åãî óãîäíî

Ìíîæåñòâî ðåàëèçàöèé è äèàëåêòîâ:

• CommonLisp � êëàññè÷åñêàÿ ðåàëèçàöèÿ

• Scheme � óïðîùåííû äèàëåêò

• Clojure � ðàáîòàåò ïîâåðõ JVM

Èñïîëüçóåòñÿ äëÿ:

• íàó÷íîãî ïðîãðàììèðîâàíèÿ è èññëåäîâàíèé

• èñêóñòâåííîãî èíòåëëåêòà

• âñåãî, ÷åãî óãîäíî

Ìíîæåñòâî ðåàëèçàöèé è äèàëåêòîâ:

• CommonLisp � êëàññè÷åñêàÿ ðåàëèçàöèÿ

• Scheme � óïðîùåííû äèàëåêò

• Clojure � ðàáîòàåò ïîâåðõ JVM

Èñïîëüçóåòñÿ äëÿ:

• íàó÷íîãî ïðîãðàììèðîâàíèÿ è èññëåäîâàíèé

• èñêóñòâåííîãî èíòåëëåêòà

• âñåãî, ÷åãî óãîäíî

Ìíîæåñòâî ðåàëèçàöèé è äèàëåêòîâ:

• CommonLisp � êëàññè÷åñêàÿ ðåàëèçàöèÿ

• Scheme � óïðîùåííû äèàëåêò

• Clojure � ðàáîòàåò ïîâåðõ JVM

Èñïîëüçóåòñÿ äëÿ:

• íàó÷íîãî ïðîãðàììèðîâàíèÿ è èññëåäîâàíèé

• èñêóñòâåííîãî èíòåëëåêòà

• âñåãî, ÷åãî óãîäíî

Ìíîæåñòâî ðåàëèçàöèé è äèàëåêòîâ:

• CommonLisp � êëàññè÷åñêàÿ ðåàëèçàöèÿ

• Scheme � óïðîùåííû äèàëåêò

• Clojure � ðàáîòàåò ïîâåðõ JVM

Èñïîëüçóåòñÿ äëÿ:

• íàó÷íîãî ïðîãðàììèðîâàíèÿ è èññëåäîâàíèé

• èñêóñòâåííîãî èíòåëëåêòà

• âñåãî, ÷åãî óãîäíî

Ìíîæåñòâî ðåàëèçàöèé è äèàëåêòîâ:

• CommonLisp � êëàññè÷åñêàÿ ðåàëèçàöèÿ

• Scheme � óïðîùåííû äèàëåêò

• Clojure � ðàáîòàåò ïîâåðõ JVM

Èñïîëüçóåòñÿ äëÿ:

• íàó÷íîãî ïðîãðàììèðîâàíèÿ è èññëåäîâàíèé

• èñêóñòâåííîãî èíòåëëåêòà

• âñåãî, ÷åãî óãîäíî

Ìíîæåñòâî ðåàëèçàöèé è äèàëåêòîâ:

• CommonLisp � êëàññè÷åñêàÿ ðåàëèçàöèÿ

• Scheme � óïðîùåííû äèàëåêò

• Clojure � ðàáîòàåò ïîâåðõ JVM

Èñïîëüçóåòñÿ äëÿ:

• íàó÷íîãî ïðîãðàììèðîâàíèÿ è èññëåäîâàíèé

• èñêóñòâåííîãî èíòåëëåêòà

• âñåãî, ÷åãî óãîäíî

Ìíîæåñòâî ðåàëèçàöèé è äèàëåêòîâ:

• CommonLisp � êëàññè÷åñêàÿ ðåàëèçàöèÿ

• Scheme � óïðîùåííû äèàëåêò

• Clojure � ðàáîòàåò ïîâåðõ JVM

LISP � ïðèìåðû

Hello world:

(princ "Hello, world!")

Bubble sort:

(defun bubble-sort (sequence &optional (compare #'<))

"sort a sequence (array or list)"

(loop with sorted = nil until sorted do

(setf sorted t)

(loop for a below (1- (length sequence)) do

(unless (funcall compare (elt sequence a)

(elt sequence (1+ a)))

(rotatef (elt sequence a)

(elt sequence (1+ a)))

(setf sorted nil)))))

LISP � ïðèìåðû

Hello world:

(princ "Hello, world!")

Bubble sort:

(defun bubble-sort (sequence &optional (compare #'<))

"sort a sequence (array or list)"

(loop with sorted = nil until sorted do

(setf sorted t)

(loop for a below (1- (length sequence)) do

(unless (funcall compare (elt sequence a)

(elt sequence (1+ a)))

(rotatef (elt sequence a)

(elt sequence (1+ a)))

(setf sorted nil)))))

• Monty Python's Flying Circus

• ñîçäàí â 1991 ãîäó

• ñîçäàòåëü � Guido van Rossum

• ìóëüòèïàðàäèãìåííûé,îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé,ôóíêöèîíàëüíûé

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• èíòåðïðåòèðóåìûé, áàéò-êîìïèëèðóåìûé ñâèðòóàëüíîé ìàøèíîé (â çàâèñèìîñòè îòðåàëèçàöèè)

• Monty Python's Flying Circus

• ñîçäàí â 1991 ãîäó

• ñîçäàòåëü � Guido van Rossum

• ìóëüòèïàðàäèãìåííûé,îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé,ôóíêöèîíàëüíûé

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• èíòåðïðåòèðóåìûé, áàéò-êîìïèëèðóåìûé ñâèðòóàëüíîé ìàøèíîé (â çàâèñèìîñòè îòðåàëèçàöèè)

• Monty Python's Flying Circus

• ñîçäàí â 1991 ãîäó

• ñîçäàòåëü � Guido van Rossum

• ìóëüòèïàðàäèãìåííûé,îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé,ôóíêöèîíàëüíûé

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• èíòåðïðåòèðóåìûé, áàéò-êîìïèëèðóåìûé ñâèðòóàëüíîé ìàøèíîé (â çàâèñèìîñòè îòðåàëèçàöèè)

• Monty Python's Flying Circus

• ñîçäàí â 1991 ãîäó

• ñîçäàòåëü � Guido van Rossum

• ìóëüòèïàðàäèãìåííûé,îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé,ôóíêöèîíàëüíûé

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• èíòåðïðåòèðóåìûé, áàéò-êîìïèëèðóåìûé ñâèðòóàëüíîé ìàøèíîé (â çàâèñèìîñòè îòðåàëèçàöèè)

• Monty Python's Flying Circus

• ñîçäàí â 1991 ãîäó

• ñîçäàòåëü � Guido van Rossum

• ìóëüòèïàðàäèãìåííûé,îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé,ôóíêöèîíàëüíûé

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• èíòåðïðåòèðóåìûé, áàéò-êîìïèëèðóåìûé ñâèðòóàëüíîé ìàøèíîé (â çàâèñèìîñòè îòðåàëèçàöèè)

• Monty Python's Flying Circus

• ñîçäàí â 1991 ãîäó

• ñîçäàòåëü � Guido van Rossum

• ìóëüòèïàðàäèãìåííûé,îáúåêòíî-îðèåíòèðîâàííûé, èìïåðàòèâíûé,ôóíêöèîíàëüíûé

• ñòðîãî- è äèíàìè÷åñêè-òèïèçèðîâàííûé

• èíòåðïðåòèðóåìûé, áàéò-êîìïèëèðóåìûé ñâèðòóàëüíîé ìàøèíîé (â çàâèñèìîñòè îòðåàëèçàöèè)

Èñïîëüçóåòñÿ äëÿ:

• ñêðèïòîâîãî ïðîãðàììèðîâàíèÿ

• âåá-ïðîãðàììèðîâàíèÿ

• íàó÷íîãî ïðîãðàììèðîâàíèÿ

Python � ñïåöèôèêàöèÿ ÿçûêà, ðåàëèçàöèè:

• CPython � îñíîâíàÿ (reference)

• Jython � ïîâåðõ JVM

• PyPy � Python in Python

Èñïîëüçóåòñÿ äëÿ:

• ñêðèïòîâîãî ïðîãðàììèðîâàíèÿ

• âåá-ïðîãðàììèðîâàíèÿ

• íàó÷íîãî ïðîãðàììèðîâàíèÿ

Python � ñïåöèôèêàöèÿ ÿçûêà, ðåàëèçàöèè:

• CPython � îñíîâíàÿ (reference)

• Jython � ïîâåðõ JVM

• PyPy � Python in Python

Èñïîëüçóåòñÿ äëÿ:

• ñêðèïòîâîãî ïðîãðàììèðîâàíèÿ

• âåá-ïðîãðàììèðîâàíèÿ

• íàó÷íîãî ïðîãðàììèðîâàíèÿ

Python � ñïåöèôèêàöèÿ ÿçûêà, ðåàëèçàöèè:

• CPython � îñíîâíàÿ (reference)

• Jython � ïîâåðõ JVM

• PyPy � Python in Python

Èñïîëüçóåòñÿ äëÿ:

• ñêðèïòîâîãî ïðîãðàììèðîâàíèÿ

• âåá-ïðîãðàììèðîâàíèÿ

• íàó÷íîãî ïðîãðàììèðîâàíèÿ

Python � ñïåöèôèêàöèÿ ÿçûêà, ðåàëèçàöèè:

• CPython � îñíîâíàÿ (reference)

• Jython � ïîâåðõ JVM

• PyPy � Python in Python

Èñïîëüçóåòñÿ äëÿ:

• ñêðèïòîâîãî ïðîãðàììèðîâàíèÿ

• âåá-ïðîãðàììèðîâàíèÿ

• íàó÷íîãî ïðîãðàììèðîâàíèÿ

Python � ñïåöèôèêàöèÿ ÿçûêà, ðåàëèçàöèè:

• CPython � îñíîâíàÿ (reference)

• Jython � ïîâåðõ JVM

• PyPy � Python in Python

Èñïîëüçóåòñÿ äëÿ:

• ñêðèïòîâîãî ïðîãðàììèðîâàíèÿ

• âåá-ïðîãðàììèðîâàíèÿ

• íàó÷íîãî ïðîãðàììèðîâàíèÿ

Python � ñïåöèôèêàöèÿ ÿçûêà, ðåàëèçàöèè:

• CPython � îñíîâíàÿ (reference)

• Jython � ïîâåðõ JVM

• PyPy � Python in Python

Èñïîëüçóåòñÿ äëÿ:

• ñêðèïòîâîãî ïðîãðàììèðîâàíèÿ

• âåá-ïðîãðàììèðîâàíèÿ

• íàó÷íîãî ïðîãðàììèðîâàíèÿ

Python � ñïåöèôèêàöèÿ ÿçûêà, ðåàëèçàöèè:

• CPython � îñíîâíàÿ (reference)

• Jython � ïîâåðõ JVM

• PyPy � Python in Python

Python � ïðèìåðû

Hello world:

print("Hello, world!")

Bubble sort:

def bubblesort(lst):

"Sorts lst in place and returns it."

for passesLeft in range(len(lst)-1, 0, -1):

for i in range(passesLeft):

if lst[i] > lst[i + 1]:

lst[i], lst[i + 1] = lst[i + 1], lst[i]

return lst

Python � ïðèìåðû

Hello world:

print("Hello, world!")

Bubble sort:

def bubblesort(lst):

"Sorts lst in place and returns it."

for passesLeft in range(len(lst)-1, 0, -1):

for i in range(passesLeft):

if lst[i] > lst[i + 1]:

lst[i], lst[i + 1] = lst[i + 1], lst[i]

return lst

Âûáîð ÿçûêà ïîä çàäà÷ó

Ýêîñèñòåìà

• ñðåäñòâà ðàçðàáîòêè (IDE)

• áèáëèîòåêè è ôðåéìâîðêè

• òåñòîâûå ôðåéìâîðêè è èíñòðóìåíòû

• ñèñòåìû ïàêåòèðîâàíèÿ è ðàçâåðòûâàíèÿ

• êîììüþíèòè

Ýêîñèñòåìà

• ñðåäñòâà ðàçðàáîòêè (IDE)

• áèáëèîòåêè è ôðåéìâîðêè

• òåñòîâûå ôðåéìâîðêè è èíñòðóìåíòû

• ñèñòåìû ïàêåòèðîâàíèÿ è ðàçâåðòûâàíèÿ

• êîììüþíèòè

Ýêîñèñòåìà

• ñðåäñòâà ðàçðàáîòêè (IDE)

• áèáëèîòåêè è ôðåéìâîðêè

• òåñòîâûå ôðåéìâîðêè è èíñòðóìåíòû

• ñèñòåìû ïàêåòèðîâàíèÿ è ðàçâåðòûâàíèÿ

• êîììüþíèòè

Ýêîñèñòåìà

• ñðåäñòâà ðàçðàáîòêè (IDE)

• áèáëèîòåêè è ôðåéìâîðêè

• òåñòîâûå ôðåéìâîðêè è èíñòðóìåíòû

• ñèñòåìû ïàêåòèðîâàíèÿ è ðàçâåðòûâàíèÿ

• êîììüþíèòè

Ýêîñèñòåìà

• ñðåäñòâà ðàçðàáîòêè (IDE)

• áèáëèîòåêè è ôðåéìâîðêè

• òåñòîâûå ôðåéìâîðêè è èíñòðóìåíòû

• ñèñòåìû ïàêåòèðîâàíèÿ è ðàçâåðòûâàíèÿ

• êîììüþíèòè

Ïîïóëÿðíîñòü

Ñêîðîñòü îáó÷åíèÿ

Íèøåâîñòü ÿçûêîâ

Íàïðèìåð

• âåá-ïðèëîæåíèå

• âçàèìîäåéñòâèå ñ áàçîé äàííûõ

• âíóòðåííèé ñåðâèñ â êàìïàíèè

• íèçêàÿ íàãðóçêà

• áûñòðàÿ ðàçðàáîòêà

Íàø âûáîð � Python èëè Ruby

Íàïðèìåð

• âåá-ïðèëîæåíèå

• âçàèìîäåéñòâèå ñ áàçîé äàííûõ

• âíóòðåííèé ñåðâèñ â êàìïàíèè

• íèçêàÿ íàãðóçêà

• áûñòðàÿ ðàçðàáîòêà

Íàø âûáîð � Python èëè Ruby

Íàïðèìåð

• âåá-ïðèëîæåíèå

• âçàèìîäåéñòâèå ñ áàçîé äàííûõ

• âíóòðåííèé ñåðâèñ â êàìïàíèè

• íèçêàÿ íàãðóçêà

• áûñòðàÿ ðàçðàáîòêà

Íàø âûáîð � Python èëè Ruby

Íàïðèìåð

• âåá-ïðèëîæåíèå

• âçàèìîäåéñòâèå ñ áàçîé äàííûõ

• âíóòðåííèé ñåðâèñ â êàìïàíèè

• íèçêàÿ íàãðóçêà

• áûñòðàÿ ðàçðàáîòêà

Íàø âûáîð � Python èëè Ruby

Íàïðèìåð

• âåá-ïðèëîæåíèå

• âçàèìîäåéñòâèå ñ áàçîé äàííûõ

• âíóòðåííèé ñåðâèñ â êàìïàíèè

• íèçêàÿ íàãðóçêà

• áûñòðàÿ ðàçðàáîòêà

Íàø âûáîð � Python èëè Ruby

Íàïðèìåð

• âåá-ïðèëîæåíèå

• âçàèìîäåéñòâèå ñ áàçîé äàííûõ

• âíóòðåííèé ñåðâèñ â êàìïàíèè

• íèçêàÿ íàãðóçêà

• áûñòðàÿ ðàçðàáîòêà

Íàø âûáîð � Python èëè Ruby

Íàïðèìåð

• âåá-ïðèëîæåíèå

• âçàèìîäåéñòâèå ñ áàçîé äàííûõ

• âíóòðåííèé ñåðâèñ â êàìïàíèè

• íèçêàÿ íàãðóçêà

• áûñòðàÿ ðàçðàáîòêà

Íàø âûáîð � Python èëè Ruby

Íàïðèìåð

• áèëëèíãîâàÿ ñèñòåìà ñîòîâîãî îïåðàòîðà

• òûñÿ÷è îïåðàöèé â ñåêóíäó

• âûñîêàÿ íàäåæíîñòü è îòêàçîóñòîé÷èâîñòü

• ãèáêîñòü â êîíôèãóðàöèè, äèàãíîñòèêàïðîáëåì

Íàø âûáîð � Java, C++, Erlang

Íàïðèìåð

• áèëëèíãîâàÿ ñèñòåìà ñîòîâîãî îïåðàòîðà

• òûñÿ÷è îïåðàöèé â ñåêóíäó

• âûñîêàÿ íàäåæíîñòü è îòêàçîóñòîé÷èâîñòü

• ãèáêîñòü â êîíôèãóðàöèè, äèàãíîñòèêàïðîáëåì

Íàø âûáîð � Java, C++, Erlang

Íàïðèìåð

• áèëëèíãîâàÿ ñèñòåìà ñîòîâîãî îïåðàòîðà

• òûñÿ÷è îïåðàöèé â ñåêóíäó

• âûñîêàÿ íàäåæíîñòü è îòêàçîóñòîé÷èâîñòü

• ãèáêîñòü â êîíôèãóðàöèè, äèàãíîñòèêàïðîáëåì

Íàø âûáîð � Java, C++, Erlang

Íàïðèìåð

• áèëëèíãîâàÿ ñèñòåìà ñîòîâîãî îïåðàòîðà

• òûñÿ÷è îïåðàöèé â ñåêóíäó

• âûñîêàÿ íàäåæíîñòü è îòêàçîóñòîé÷èâîñòü

• ãèáêîñòü â êîíôèãóðàöèè, äèàãíîñòèêàïðîáëåì

Íàø âûáîð � Java, C++, Erlang

Íàïðèìåð

• áèëëèíãîâàÿ ñèñòåìà ñîòîâîãî îïåðàòîðà

• òûñÿ÷è îïåðàöèé â ñåêóíäó

• âûñîêàÿ íàäåæíîñòü è îòêàçîóñòîé÷èâîñòü

• ãèáêîñòü â êîíôèãóðàöèè, äèàãíîñòèêàïðîáëåì

Íàø âûáîð � Java, C++, Erlang

Íàïðèìåð

• áèëëèíãîâàÿ ñèñòåìà ñîòîâîãî îïåðàòîðà

• òûñÿ÷è îïåðàöèé â ñåêóíäó

• âûñîêàÿ íàäåæíîñòü è îòêàçîóñòîé÷èâîñòü

• ãèáêîñòü â êîíôèãóðàöèè, äèàãíîñòèêàïðîáëåì

Íàø âûáîð � Java, C++, Erlang

Íàïðèìåð

• êîä áîðòîâîé ÝÂÌ äëÿ ñïóòíèêà

• îãðàíè÷åííûå ðåñóðñû

• æåñòêîå ðåàëüíîå âðåìÿ

• ñòðîãî èçâåñòíûå çàäà÷è

• áîëüøîå êîëè÷åñòâî âû÷èñëåíèé

Íàø âûáîð � Ñ è Ñ-ïîäîáíûå ÿçûêè (èëè äàæå àññåìáëåð)

Íàïðèìåð

• êîä áîðòîâîé ÝÂÌ äëÿ ñïóòíèêà

• îãðàíè÷åííûå ðåñóðñû

• æåñòêîå ðåàëüíîå âðåìÿ

• ñòðîãî èçâåñòíûå çàäà÷è

• áîëüøîå êîëè÷åñòâî âû÷èñëåíèé

Íàø âûáîð � Ñ è Ñ-ïîäîáíûå ÿçûêè (èëè äàæå àññåìáëåð)

Íàïðèìåð

• êîä áîðòîâîé ÝÂÌ äëÿ ñïóòíèêà

• îãðàíè÷åííûå ðåñóðñû

• æåñòêîå ðåàëüíîå âðåìÿ

• ñòðîãî èçâåñòíûå çàäà÷è

• áîëüøîå êîëè÷åñòâî âû÷èñëåíèé

Íàø âûáîð � Ñ è Ñ-ïîäîáíûå ÿçûêè (èëè äàæå àññåìáëåð)

Íàïðèìåð

• êîä áîðòîâîé ÝÂÌ äëÿ ñïóòíèêà

• îãðàíè÷åííûå ðåñóðñû

• æåñòêîå ðåàëüíîå âðåìÿ

• ñòðîãî èçâåñòíûå çàäà÷è

• áîëüøîå êîëè÷åñòâî âû÷èñëåíèé

Íàø âûáîð � Ñ è Ñ-ïîäîáíûå ÿçûêè (èëè äàæå àññåìáëåð)

Íàïðèìåð

• êîä áîðòîâîé ÝÂÌ äëÿ ñïóòíèêà

• îãðàíè÷åííûå ðåñóðñû

• æåñòêîå ðåàëüíîå âðåìÿ

• ñòðîãî èçâåñòíûå çàäà÷è

• áîëüøîå êîëè÷åñòâî âû÷èñëåíèé

Íàø âûáîð � Ñ è Ñ-ïîäîáíûå ÿçûêè (èëè äàæå àññåìáëåð)

Íàïðèìåð

• êîä áîðòîâîé ÝÂÌ äëÿ ñïóòíèêà

• îãðàíè÷åííûå ðåñóðñû

• æåñòêîå ðåàëüíîå âðåìÿ

• ñòðîãî èçâåñòíûå çàäà÷è

• áîëüøîå êîëè÷åñòâî âû÷èñëåíèé

Íàø âûáîð � Ñ è Ñ-ïîäîáíûå ÿçûêè (èëè äàæå àññåìáëåð)

Íàïðèìåð

• êîä áîðòîâîé ÝÂÌ äëÿ ñïóòíèêà

• îãðàíè÷åííûå ðåñóðñû

• æåñòêîå ðåàëüíîå âðåìÿ

• ñòðîãî èçâåñòíûå çàäà÷è

• áîëüøîå êîëè÷åñòâî âû÷èñëåíèé

Íàø âûáîð � Ñ è Ñ-ïîäîáíûå ÿçûêè (èëè äàæå àññåìáëåð)

Ñïàñèáî çà âíèìàíèå!

Âîïðîñû?