[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Ainda o EP2
- Subject: Ainda o EP2
- From: "Rubens Altimari" <rubens@bcc2000.net>
- Date: Thu, 10 May 2001 01:09:28 -0300
Embora o terceiro já esteja anunciado, gostaria de fazer alguns
comentários sobre o EP2.
Em primeiro lugar, só para contrariar, gostei bastante do CWEB.
Realmente, é muito interessante ter um ambiente que ajude a criar toda uma
documentação, com índices e referências cruzadas, automaticamente. É ótimo
ler coisas como "isto é usado no item 17". Só não acho, como o próprio Knuth
(sem modéstia) disse em citação na página do prof. Feofiloff, que quem não
usar será ultrapassado pelo concorrente, caso este use. Há outros sistemas
até mais interessantes, como o CVS, para trabalho em equipe (o próprio Linux
é feito com ele). E outros que documentam também, de lambuja, bancos de
dados e outros recursos.
Agora, o que chamou minha atenção foi o seguinte: ele não libera
*nenhuma* memória alocada! Não há um free() sequer no programa
"intermediário" .c, gerado pelo ctangle, para os vários calloc()'s e
malloc()'s. Assim fica fácil! Ele, por exemplo, aloca memória em blocos,
como vetores, o que é ótimo e eficiente, mas seria um pesadelo gerenciar.
Assim, correndo o risco de ser tachado de herege pelo Carlinhos, e
levando em conta meu pouco conhecimento do mundo Unix, gostaria de saber se
ele se apoia em algum tipo de garbage collection, ou se está apenas
exercendo o papel de ACM da Ciência da Computação, a quem tudo se perdoa...
;-]
Brincadeiras à parte, ainda que exista uma explicação no Unix, a
portabilidade fica comprometida. No Windows não há fork, e processos como
este acabam bloqueando memória do sistema todo (não vale dar risada,
Fernando, outros sistemas também são assim). Se este wordtest fosse um
programa CGI, um hacker amador nem precisaria saber os perigos da função
gets() para derrubar o servidor do Knuth...
Isto tudo, claro, se eu não estiver comendo bola, enormemente, em algum
lugar. Pelo que vi nas minhas referências, porém, esta questão é
implementation-dependent, o que sempre me lembra que signfica que o
compilador é livre para fazer o que quiser, inclusive formatar o HD...
Rubens