I����������� � ������������ • D��������� �� ���������� • H������� �� ��� ������������ • ����� �� ����������� • A����������� �� ����� • C����������� �������� • H����������� �����������
D��������� �� ���������� • L�� ������������ ��� ������������ ��� ��������� �� ����������� ��� �������� �� �������� �� �� �������� � ����. �� ���������� ���� ���� �� ������� �� �������� ������� �� �������� ������ � ������ � ������� �� �������� ����������� ������� �� �������� ������. ������.
Lenguaje Fuente
Traductor
Mensajes de error
Lenguaje Destino
D��������� �� ���������� • L�� ������������ ��� ������������ ��� ��������� �� ����������� ��� �������� �� �������� �� �� �������� � ����. �� ���������� ���� ���� �� ������� �� �������� ������� �� �������� ������ � ������ � ������� �� �������� ����������� ������� �� �������� ������. ������.
Lenguaje Fuente
Traductor
Mensajes de error
Lenguaje Destino
D��������� �� ���������� •
G����������� �� �������� ������ �� �� ������ ���� �������� �� ���� �����, �������� �� �������� ������ �� �� ������ ���� ������ ������ (������ �� �������) ������� ��������������� ���� ��� ������� ������. A �� ����� ��� ������� �� ���������� �� ���������� ���� �������� �� ��������� �� ������� �� �� �������� ������. , , ������������� �� �� ����������� �� ���� ������������ �� ���� �����.
•
N� ��������, ��� ������������ �� �������� �� ���� ����� ��� ������ �� �� ����������� � ���������� ����������� �� ���� ���� ������� ������� �� ������������ � �� �������������� ������ �� �� ����������.
H������� �� ��� C����������� •
A ������� �� �� ������ �� 1940, ���������� � ����������� ��� �������� ������������ ��������� � ��� ��������� ����������� �� �������� ����� �� �������� ��� ��������, �� ���� ����� ������� �� �������� �� ������� ��� ������������ ���������� �� ������� ���������: C7 06 0000 0002 (����������� ��� ����� �� ������ ��� � �� ��������� 0000)
•
D����������������� ���� �������� ��� ������� �� ������ � ���������� �� ��������, ��� �� ��� ���� ����� �� ������������ ��� ����������� ��� �� �������� ����������� , �� �� ���� ��� ������������� � ��� ����������� �� ������� ��� ������ ����������. �� ����������� ������� �� ��� ������� ���������� � �������� �� �������. A�� ��� ���� ������, �� �������� ����������� ����� ������ ��������� ������� �� ��������: MO� �, 2 (����������� �� ����������� ����������� � �� ��������)
H������� �� ��� C����������� •
E� ���� ����� �� �������� �� ��������� �� ��������� ��� �������� �������� ��� ��������� �� ����� �������, ������� � ��� �������� ����������, � ��� �� �������� �������� � ������ ���������� ���� ��� ������� ����: �=2
•
E� 1950, �. �. ������ ����� �� ������� ���������� � �������� ��� �������� �������� �������.
•
���� ������ ������ �� ����� �� ������� �� IBM ���� �������� �� �� ��������� �� ������ ������� � �������� �����������. ���������� ��� ���� �����: �� �������������� �� �� �������� �� ���� ����� (�������, FO����� ��AN�������) ���������� 18 �������� ������� ��� �� �� ��� �� �� ��������.
•
F�� �� ���������� ����� ������ (� ���� �������), ���� �� ������� ��� ������ ������, ���� ��� �� ���� ����������� ��� �������������� ��� � ���, ���� ���� ��������� ����������.
H������� �� ��� C����������� •
���� ������� �������� ��� �������� ����� �� ���������� ��� �������� �������. ��� �������� �� ���������� � �� ������������� �� ��� ��������� �� ������� � ��� ��������� �� ��� ����������, ������ ��� �������� ����� ��� ���������� �� �������������� ��������� �� ��� �������������� ��� ������� �� ���������� ��� ���������.
•
1960, �� ������ �� �������� LI�P. E� �� ���������, �� ������ LI�P �� �������� ����������� � ������ �������. �� �������� �� LI�P �� �������� ����� �� ����������� ��������� , ��� �� ��� � � ����� ����� � � �� � � �� ��, ���������� � � ���� ���� �� ���������� ���������� �� LI�P.
• ����� ���������� �� ������� �� ��� �������� �� �������� ����������. •
1970, �� ��������� ��� ������� ������� �� �� ���� �� ��������� �� ������������.
•
A������� ��� �������� ��������� ��� ����������� ��� �������� �� �������� ������ � ����������. ��������� �� ������� ����� �� ����� ������ � �� ������������� �� �� ������ ���� �� ������������ �� ������������.
H������� �� ��� C����������� •
������� �����, ������ P�����, ������� ���� �� ���������.
• ����� ������� �� �������� �� �������������� ���������� �� ������, ��������� �� ������� �� ���������� �� ��� �����: �� ��������� ��������� �� �������� �� �������� ������ (����������� ������������ ���� ��� �������� ������) � �� �������� ��������� �� ������� �� ������ ���� �� ������� ������.
•
1980, ��������� � ��� � ���� �� � ������ � ������������ � � ��� (������������), �� ��������� � ��������� �� �������� �� ���������� � ���������� �� ������� ��������. L� ������������ ��������� � ������� �� ������������ ��������� � ������.
•
1990, ��� ��������� �� ������������ � ������������ ��� ��� ��������� � �� ��� ������� �����������, ������ ��� ��������� �� ����������, ��� ��������� ������������� �������� � ����� ������� �� ������������ �� I������� � �� ������ ���������� �� ������ � ����� �� ����.
����� �� ����������� • ���������� P������� ��� ��������� �� ������� �� �������� �� ������������ � �� ��������������� �� �������� ������. ������ �� �������� �� �� ���� ���������� �� ���������.
• ����������� P������� ��� ��������� �� �������� ��������� � �������� �������, ��������� �� ������� ��� �� ������ ������ ����������� �� ������ ������ ��������, ����� ��� ����������� ��������� ���� �� �������.
•
���������� �� ����� ����� ���� ������� ��� ������ �� ���������� ��� ������� �� ����� � �������� � ������� (�AG��) ���� ������� ���������, ���������, ��������, �������������, �������, ��������, ������, ���. (L����, H���).
• ����������� E������� ��� ������������� ��� �������� ����� �� ������
�����������. N�������� ����� �������, ���� ��� ��� ������ ��� ��� ������������ (LI�P, P�����). H�������������, �� �������� �� ���� �� ��� �������� ���� ������ ��� �������� �� ������� ���� �������. P������� ������ ������ ������������� ������� �� ���������.
����� �� ����������� •
��������� �� ������������ ������������� E���� ��������� ���� ��� ���������� ��� ����� �� ���������� � ������ �� �� ������ �������������.
•
P�� ������� J��� �� ��������� ���� �������������� ��� ��������� ��� �� ��������� ��� �������� ������ ���������� J��� ������� M������.
•
M������ ��� ��� ��������� �� �� ���������� .NE� �������� �� ��� ����� ���������� (CIL), ��� �������������� ����� ��� ����������� � ������ �� ������� ������ � ������������ ��� ��� ������� �������.
•
L�������� ���� P����� � J��� ������� ���������������� ����������� �� ������ ���� ��� ����������, �������� ��� ��������� ���� ���� ������� �� ����� �� �������� ��������� ���� �������������� ����������.
����� �� ����������� �������� ��� ����������
• •
�� ������� ��� ���, �� ������� �������
•
E� ���������� ����� ��� ������ ������ ��� ��������, ��� �� ��� �� ����������� �� �������� �� ������� �� ��� ���������.
E� ������, �� ����������� ������ ������ ����������� �� ����� ���� �� ���������� �� ������� ������ ����� ��� ����� ���� ����� �� ������ �� �����
�������� ��� ����������
• •
�� ���������� �������� ����� ������� ��� �� ���������� P������ ��� ����� �������������� ��� �� ������ �� ������ �� ����������.
����� �� ����������� �������� ��� ���������� � ����������
•
P����������� ���� �� ������������ �����
•
��� �������������� �� �� ���������� �� �� ��� �� ��������
•
P������� �� ��������� �� ���������
•
����� �� ����� ��������� ���������
•
G������ �� ������� ��������
•
F��������� ���������� � ��������� �� ������
F���� �� �� C��������� •
�� ���������� �� ������� ������������ �� ������ ������, � �����, ��� �������� ����������� �������.
•
E� ���� ������ �� ����� ����� ���� ������ ��������� ������ ��� ����������, � ������ �� �������� ���������� ���� ����������� ����������� ������������� ������ �� �� �������� � ������ �� ��������.
•
A ������������ ������������� ���������� ���� �� �� �����:
– �������� ������ – �������� ���������� – �������� ��������� – ���������� � ������������ �� ������ ���������� – ���������� �� ������ ������
F���� �� C���������� Código fuente Análisis Léxico
Fase de análisis
Componentes léxicos / Tokens Análisis Sintáctico
Tabla de símbolos
Árbol sintáctico Análisis Semántico Árbol sintáctico con anotaciones Generación / Optimización de código intermedio
Gestor de errores
Código intermedio Generación / Optimización de código objeto Fase de síntesis Código objeto
F���� �� C���������� •
���������� ������� ��� �� ��������� �� ���������� �� ��������� � ������� ��� �������� ������ � ������ ��� ���������� �� ���������� �� �������� ��� ����������� ������ (����������� ������� � � ������� �� ������).
•
L�� �������� �����, ���������������, ����������, ���������� ���������, ������ �� ���������� ���� ����������� �� ����������, ������, ����������, ���. , ��� �������� ��������������� �� ����������� �������. .
•
P�� ������� �� ��������� ����������� �� ������ C: a
Genera los siguientes componentes léxicos:
[ indice ] = 4 + 2
��������� = 4 + 2;
identificador corchete de apertura Identificador corchete de cierre operador de asignación numero operador suma numero
F���� �� C���������� •
�������� ����������� ��������� �� �� ��������� �� ����������� ������� ����� �� �������� ��� �������� � ������� �� ���������� ���������� ��� �������� �� ����� �� ����� , ����� ��� ����� ��� ��� �������������� �� ���� ����� ��� ��������.
•
�� ���������� ��� ���������� ������������� ����� ��� ����������� �������, �������� �������. L� ���������� ���������� �� ����������� �������� ��� ���������� �������������� ��� ��������.
•
C��� ������� ������������ �� ����� �� ������ C ��������. ���������� �� �������� ����������� ���������� ���������, �� ���� �� ��� ��������� �� ���������� ��������� �� ��� ��������� �� ��������� � �� ��������� � ��� ��������� ���������� � �� ������� (����� �� �������� ���������� ).
F���� �� C���������� expresión expresión asignación expresión
expresión
=
expresión subíndice expresión identificador a
[
expresión identificador indice
expresión aditiva
]
expresión numero 4
+
expresión numero 2
F���� �� C���������� •
L�� ����� �������� ��� ����� �� �������� ���������� ����� ����������� ��� ��� ������� �� ��� ����������� ��� ����������� � ��� ����� ��� ����� ����������� �� ��������� �� ������.
•
L�� ������� �� �������� ���������� ��� ������ ���� ���������� �� �������� �� �� �������� ���� �� �� ������ �� �� �������������� �� ��� ����������. L�� ������������ ����������� ������� � ������� �� ����� ���������� (��� �������������� �� �� ����������� ��������� �� �� ����� �� �������� ����������).
•
P��� ������� ������� ���������� ��� �� �� ����� ���������� �� ��� ��������� �����, ���� ������ � ��� �������� �� ���������� �� �� ���������, �� �� �� ��������� ������ ��� ������� ������. = []
+
identificador
identificador
numero
numero
a
indice
4
2
F���� �� C���������� •
�������� ���������� ������� ��� �������������� ���������� ����� �� ����� ���������� ���� ���������� �� �������� ����������� ��� ��������.
•
L�� ������ ������� � �������� ���: L� ������������ � ���������� �� ����� �� ������������ � �����������, �� ����������� ��� ���� �� ��������� � ��������� ����� �� �� ���, �� �������� ��� �� ����������, �� ������ �� ��� ��������� � .
•
N�� ����������� �� �������� ��������� �������� (�� ������ �� �����������), ����� �� ��������� ����� ��� �� �� ����� �� ��������, ���� ���������� �� ����� ���� ��������� ����������� ����� ��� ��������������� ��� ��� ��������� � �� ����� ��� ��������. E� �������� ��������� ����� ������� ��������� (���� ����� �� �����) � �� ���������� ��� ����� ���������.
F���� �� C���������� •
E� ���������� ��������� ���������� �� ����� ���������� ��� ��� ����� �� ����� �� ��� ��������������� � ���������� ��� �� ���������� ����� ������� ���� ��� �����, �� ���� ��������� ������� �� ������� �� ����� �� ��������������� �� �����. D� ���� ����� �� ������� �� ����� ���������� ��� �����������.
•
��������� ��� �� ������� �� �� ��������� �� C, �� ���������� ��������� ������ �� ����������� �� ��� � �� ��� ������� �� ������� ������� � ��� . = [] Tipo : entero
+ Tipo : entero
a
indice
4
2
puntero a enteros Tipo: entero
Tipo : entero
constante Tipo : entero
constante Tipo : entero
F���� �� C���������� •
���������� � ������������ �� ������ ����������� �� ������������ �������� �� �� ����������� ��� ����� ���������� ����� �� �� �������� �������������� �� ���� �����. G�������� �� ������ ��������, �� �� ������������, ��� ����� �� �������� ������������ � ������ ����������� � �������, ��������� �� �� ������ �� ���� ����������� (���� ����������� ����� �� ��������, � �� ��������� �� ��� ���������� � �� ����� ����� ������� �� ���������), ������� �������� ���� ������ ����������.
•
L� ����� �� ������������ ���� �������� ��� �������� ������ (� �� �� �� �������), �� ����� ��������������: �������� ��������������� �������, ����������� ������ ������, ��������� ����������� �����������, ������� ������ �� ����������, ��������� �� ���������, ����������� �� ������ � ������ ������������. ����� ��� ��� ���� ����� � ��������.
F���� �� C���������� •
��������� ��� �� ������� �� �� ��������� �� ����������, �� ���������/�����������, ��������� �� ��������� ������� ��������� ��� ��������� 6.
•
E� ��������� ����� ������������ ������ ���������� �� �� ����� ������������, ���� ������������ ������� ��� ����� ������� �� ������
código optimizado
código intermedio
a[indice] = 6
t1 = indice * elem_size(a) t2 = &a + t1 *t3 = 6
F���� �� C���������� •
���������� �� ������ ������� ���� ���� ������� �� �������������� ���������� � ������ �� ������ ������. L� ������������ ������� �� �� �������, �� ��������� ������� �� �������� �� �������������, �� �������������� �� ��� ����� (������ �� �����), ����� �� ����������������, ������ � ��������� �� ���������, ��������� �� �������, ��������������, ���.
•
������ �� ���������� � ����, ��� ��� �� �� �� �� �� ��������� �� �� ���� ������ ������ �������� �� ������������� �� ������ ����� ������������.
•
������� �� ���� ������������ �� �������� �� ����������� �� ������ �����������. L� ���� �� ��������������� ����� ������������ ��� �������������� ���������� � ���������� �� ������������� ������. P���������� ������� ���������� �� ������ ������ ���� ��� ����� ������� ������, ��������� �� �������� �� ����������. P�� ������� GN� GCC ����� ���������� ���� ��� �� 10 ������������� ��� ���������� �� �����������.
F���� �� C���������� •
F��������� ���� ������� ������� ������� ������� ����� ������� ������� �� ����������� ���� ������� �� ������ ��� �������, ���� ���� ������� ����������� ����� �� ���������������� ������� �� C, ��������� �� ������ ������ �� �� �������� ����������� ����������.
,
;; va or
e
n ex ->
MOV
R1, &a
;; dirección de a -> R1
ADD
R1, R0
;; sumar R0 a R1
MOV
*R1, 6
;; constante 6 -> dirección en R1
F���� �� C���������� •
����� �� ��������� �� ��� ���������� ���� ����������� ��� ����������� �� ���������, ������� � ��������, ��� �������� ����������� ����� ��� �������� ��� ��� ����������� � �� ����� ��� �������� ���� ���: – ��� ��������������� (��������� � ���������) – E�������� � � � � � � � , –
•
� ,
.
A����� �������� �� ���� �� ����, ������ �� ���� �� ����������, ���� �� ������� � �� ���������� �� ��� �������, �� ������ �� ���������� �� ��������������� � �� ��������� �� �������. I����������� ����� ��� �� ���������� ������, ���������� � ��������� ��� ���������� ����������� �������� �� ������� �� �������. L� ���� �� ���������� �� ������ � ������������ ������� �� ����.
F���� �� C���������� •
����� �� ��������� �� ��� ���������� ���� ����������� ��� ����������� �� ���������, ������� � ��������, ��� �������� ����������� ����� ��� �������� ��� ��� ����������� � �� ����� ��� �������� ���� ���: – ��� ��������������� (��������� � ���������) – E�������� � � � � � � � , –
•
� ,
.
A����� �������� �� ���� �� ����, ������ �� ���� �� ����������, ���� �� ������� � �� ���������� �� ��� �������, �� ������ �� ���������� �� ��������������� � �� ��������� �� �������. I����������� ����� ��� �� ���������� ������, ���������� � ��������� ��� ���������� ����������� �������� �� ������� �� �������. L� ���� �� ���������� �� ������ � ������������ ������� �� ����.
F���� �� C���������� •
������ �� �������� ������� � ������� �� ������� ��� �� ��������� ������� �� ���� �� ��������. D��� ������� �������� �������������� � �������� �� ����������.
•
E�������� �������: – E� ������ �� �����������: ������� ������� (������������), ����������� (�������������� �����������) � ���������� (�.��. ������� �� ����) – E� ������ �� ���������: ���������������� �� �������� ����� �� �����, ���������� , . – D� ��������������/������: �������� ������������� ���� �� �������� �� ��� �� ����������� �����.
•
�� �������� ���� ������� ��������� (�� ������ �� �����������). �������� � ��� ������� �� ������ �� ���������, �� ��������� ��� �� ��������� ������ ������ ���� �� ������������ �� ������� �����������, �� �������� ����������� � ��� ���������� �� ����������� �� ����������� ���� ��� �� �������� �� �������� ����������.
F���� �� C���������� •
L� ������� �� ��� ������������ ��� ��������� ��� �� ��������, �� �����, �� ������� �� ���������� �� �������� ��� �� ���������� ����������. E� �������� ���������� ������ �� ���������� ��� �������� ������ � ������ �� ������. E� �������� ��������� ������������ �� ����������� ��� �������� ��������� �� �� ���������� ��� ����� �� �������� ����������.
•
L�� ����� �� �������� ������ � �������� ���������� �� ������ ����������� �� , ������������ ��� �� �������� ���������, �� ���������� � �� ������������ �� ������.
•
E� ������ �� �������, �� �����, �� ������ �� ����� ��� ��� ��� �������� �� ������ ������, ���� �� ������� ��� ����� �� ������������. ����������� �� ������� ��� ������ ���� �������� �� �������� ������ � ����������, ���� ������ ���� �� �������� ��������� � ������������ ��� �������� ���������� � ��� ������� ������ ���� ���������� �� ������ � �������������� ������������ �� �� �������.
E���������� �� ����� E�������� •
����������� �������� ���������� ���� �������� ��� ��� ������, ���������� ������ ������������ ��� ��� ����������� � �� ������ ��� ��� ������ �� ����������.
•
����� ����������� �� ��� �������������� �� ����� �� �� ���������� ���������� ��������� ��� ������ ������ ������� �� ������ �������� �� ������������. C��� ���� ��� ����� ������ ��� ������������ ��� ������ �� �� ������ ������.
•
����� �� ��������� �������� ����������� ����� ��� ���������������, ���������, ���������, ������ �� ���������� �� ���������������, ���������� ��������� � ���������, ����� �� �����, � ������� �� ��������� �� ������� (����� ����).
•
������ ����������� �� ���������� ���� ��� ����� �� ���������, ����� ���� �������� ����� ������ ������ (��������, �� ��������� �� ��� ���������� � ��� ���������). E� ��������� ���� ����� ������ ���� �� ������� �� ������������ ���������.
A����������� �� ����� •
E� �� ������ �� �������� � �������� ��� ����������� ��� ���������� ��� �������� �� �������� ������ � �������� ��� ����������� �� ���������� ���� �������� ��� ����������, �������� ��� ��� ����������� ������������ ��� �� ���������� � ������ ������ �� ������ ���� �������� ��� ����������. ����� �� ��������� A������� ������ A������� ���������� A������� ��������� ����� �� ��������� O����������� � ���������� �� ������ ���������� G��������� �� ������ ������
•
L� ��������� �� ������ ��� ������ �� �������� � ��������, �� �������������� ���� �������� �������������� � ��������������� ����������.
C��������� C������ •
E� �� ���������� ��� ������ ������ ���������� ���� ��� ���������� �������� � ������� �� �� ��� �� �������
•
E� ��� ����� ��������� �� ���������� �� ��� ���������� L����, ��������� �� �������� AN�I C++ ���� ��� �������� ���� B���� ��� ������ ������ ������ ���� �������
AN�I C++
B���� AN�I C++ L����
L����
������� ������� �������
B����
C��������� C������ •
E����� ������� �� �������� ��� ������� �� ���������� ���� ������� ���������, ��� �������� �� ����������������� �� ������������ �� �� �������� ������ � ������ ������� ������. L� ������������ �� ���� ���� �� ������������ �� ������� �� ��� ������:
– ��������� � ����� �������� L�� ����������� �������� ���� ��� �������� ������. I���� �: �������� ������, ���������� ���������, �� �������� �� �� ����� �� ��������, ���������� �� ������ ���������� � ������� ��������������. A�����, ��� ������ �� ������� �� ���� ����.
– �������� � ����� ������ L�� ����������� �������� ���� �� �� ������� ������. I������: ���������� �� ������ ������ � �������������� ������������ �� �� �������. D������ �� ��� ����� �� ����������������, �������� �� ������������� �� �� �������, ������ �� ���������, ������������ �� �� �������, ������� ���������, ���.
C��������� C������ P�������� ������� �� ���� ������:
•
�� �� ������ �� �������� ������, �������� �� ��������� �� ��������� . �� �� ������ �� ������� ������, �������� �� ��������� �� �������� . �� ������� ��� ����� ������������, ����� ��� ����������� �� ��������� ��� �������� ���������� � ��� ����� �������.
Código fuente
Front-End
Código intermedio
Back-End
Código objeto
C��������� C������
H����������� A���������� •
��� ��������� �� ����� �� �� ������� �� ��������� �� ������������: �������� ����������� �� �����������. ������� �� ��� ������ ���� �������� ������� �����, �������� ����������, ������������������. A ������������ ������������� ��� ��� ���������.
•
����������� �� ������������ �������� � ������ �� ��� �������������� ������ �� ����������� ���������. ��� / ���� .
•
����������� �� ������������ ������������ � ������ �� ��� ������� ��� �� �� ��������� ������������� ��� �������� ��� ���������� �� ���������� ���������� ��� ��������. ���� / �����.
•
����������� �� ������� ��� ������� ���� �� ���������� ��� ����� �� �������� ���������� � ���� �� ���������. E� ���� ���� �� ����������� ��� �������� ���� �� ���������� � ������ ������ ���������������.