Skip to content

Commit c5d8d88

Browse files
committed
docs(readme): terminar sprint 4
1 parent 2aa498f commit c5d8d88

File tree

1 file changed

+168
-0
lines changed

1 file changed

+168
-0
lines changed

docs/sprints/4.md

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
## Sprint 4 (D51–D60) — Polimento, empacote e entrega
2+
3+
### Otimizações simples (constant folding, dead‑code leve)
4+
5+
#### Eliminação de subexpressão comum
6+
7+
- [ ] responsável: @beyondmagic
8+
9+
```c
10+
int main() {
11+
int a = 1 + 2;
12+
int b = 1 + 2;
13+
printf("%d\n", a + b);
14+
}
15+
```
16+
17+
```lua
18+
os.exit((function(args)
19+
local tmp = 1 + 2;
20+
local a = tmp;
21+
local b = tmp;
22+
printf("%d\n", a + b);
23+
return 0
24+
end)(arg))
25+
```
26+
27+
#### Copy Propagation
28+
29+
- [ ] responsável: @Sophiassilva
30+
31+
```c
32+
int main() {
33+
int a = 1;
34+
int b = a;
35+
printf("%d\n", b);
36+
}
37+
```
38+
39+
```lua
40+
os.exit((function(args)
41+
local a = 1;
42+
printf("%d\n", a);
43+
return 0
44+
end)(arg))
45+
```
46+
47+
#### Strength reduction (multiplicação por 2 vira soma)
48+
49+
- [ ] responsável: @Liviarodrigues1
50+
51+
```c
52+
for (int i = 0; i < 10; i = i + 2) {
53+
printf("%d\n", i * 2);
54+
}
55+
```
56+
57+
```lua
58+
for i = 0, 9, 2 do
59+
printf("%d\n", i + i)
60+
end
61+
```
62+
63+
#### Eliminar variável não usada
64+
65+
- [ ] responsável: @marcomarquesdc
66+
67+
```c
68+
int main() {
69+
int a = 1;
70+
}
71+
```
72+
73+
```lua
74+
os.exit((function(args)
75+
local a = 1;
76+
return 0
77+
end)(arg))
78+
```
79+
80+
#### Eliminar código não alcançável
81+
82+
- [ ] responsável: @andrelopesdesousa
83+
84+
```c
85+
int F() {
86+
printf("1\n");
87+
return 1;
88+
printf("2\n");
89+
}
90+
```
91+
92+
```lua
93+
function F()
94+
printf("1\n")
95+
return 1
96+
end
97+
```
98+
99+
100+
#### Condição falsa em tempo de compilação
101+
102+
- [ ] responsável: @andrelopesdesousa
103+
104+
```c
105+
printf("1\n");
106+
if (0) {
107+
printf("2\n");
108+
}
109+
printf("3\n");
110+
```
111+
112+
```lua
113+
printf("1\n");
114+
printf("3\n");
115+
```
116+
117+
#### Condição verdadeira em tempo de compilação
118+
119+
- [ ] responsável: @andrelopesdesousa
120+
121+
```c
122+
printf("1\n");
123+
if (1) {
124+
printf("2\n");
125+
}
126+
printf("3\n");
127+
```
128+
129+
```lua
130+
printf("1\n");
131+
printf("2\n");
132+
printf("3\n");
133+
```
134+
135+
### Testes adicionais de integração e cobertura de todas as funcionalidades implementadas e funcionalidades que não serão implementadas
136+
137+
- [ ] responsável: @marcomarquesdc
138+
139+
### Documentação final (uso, limites, exemplos)
140+
141+
- [ ] responsável: @Liviarodrigues1
142+
143+
### Release binária
144+
145+
- [ ] responsável: @BeyondMagic
146+
147+
### Estudar e preparar apresentação/entrevista e roteiro de demo
148+
149+
- [ ] responsável: @andrelopesdesousa
150+
- [ ] responsável: @BeyondMagic
151+
- [ ] responsável: @Liviarodrigues1
152+
- [ ] responsável: @marcomarquesdc
153+
- [ ] responsável: @Sophiassilva
154+
155+
## Critérios de pronto por fase
156+
- Léxico: todos tokens do MVP reconhecidos; sem vazamentos de memória.
157+
- Sintático: AST correta para expressões e comandos principais.
158+
- Semântico: checagens básicas de tipos/escopos; mensagens com linha/coluna.
159+
- Geração Lua: programas do MVP executam em Lua com mesmo resultado.
160+
- Qualidade: testes cobrindo happy path + erros; build reprodutível.
161+
- Documentação: instruções claras de uso, exemplos, limitações.
162+
163+
## Referências rápidas
164+
- Flex: padrões, yytext, yylex, yylval.
165+
- Bison: gramática, precedência, $$/$1, yyparse, yyerror.
166+
- Lua 5.x: escopo local, funções, tabelas, operadores, print.
167+
168+
Observação: atualize os checkboxes conforme avança e preencha os responsáveis inline.

0 commit comments

Comments
 (0)