8

Está a decorrer uma discussão no SOpt para saber qual a melhor tradução de stack overflow tendo em conta a sua definição na área da informática.

de Wikipedia:

In software, a stack overflow occurs if the call stack pointer exceeds the stack bound. The call stack may consist of a limited amount of address space, often determined at the start of the program. The size of the call stack depends on many factors, including the programming language, machine architecture, multi-threading, and amount of available memory. When a program attempts to use more space than is available on the call stack (that is, when it attempts to access memory beyond the call stack's bounds, which is essentially a buffer overflow), the stack is said to overflow, typically resulting in a program crash.

Qual seria então a tradução de stack overflow?

Jorge B.
  • 6,900
  • 11
  • 42
  • 84
  • 3
    Sendo preciosista, o próprio termo stack overflow não é muito exato porque quando o buffer overflow está prestes a ocorrer o sistema dispara uma segmentation fault e não deixa a memória ser invadida. Estaria mais para um stack overflow attempt ou stack limit reached. Mas isto é só um parêntese, pois acredito que devemos nos ater ao termo em inglês que todos conhecem e adotam. A meu ver, a tradução mais exata seria "transbordo de pilha", a não ser que seja constatado que existe um conjunto significativo de referências em português (inclusive livros) usando o termo "estouro". – Piovezan Jun 13 '16 at 12:58
  • 2
    em pt-BR é estouro de pilha, que significa que o ponteiro estourou o limite da pilha (de empilhamento); transbordo de pilha, se fosse usado, seria transbordamento da pilha para não ser confundido com baldeação. – André Lyra Jun 13 '16 at 18:47

2 Answers2

5

Transbordo de pilha

Isto seria talvez uma tradução mais literal e específica do que estouro de pilha.

Poderia haver um "estouro" relacionado com a pilha que tivesse outras razões que não o transbordar por adicionar coisas quando ela já está cheia.

Mas «estouro de pilha» parece ser mais idiomático, na comunidade brasileira.

ANeves
  • 7,117
  • 6
  • 29
  • 54
  • Quais outras razões poderiam ser? – Piovezan Jun 13 '16 at 12:50
  • @Piovezan poderia uma stack buffer overflow ser também um estouro de pilha? – ANeves Jun 13 '16 at 13:14
  • 2
    Pela tradução literal do termo em inglês, sim. Realmente é uma outra razão possível. Nesse caso o overflow realmente chega a ocorrer e não é apenas uma tentativa. Se eu não tivesse que me ater ao uso corrente do termo, eu pessoalmente traduziria "stack buffer overflow" como "invasão de pilha", porque é isso que realmente está ocorrendo. – Piovezan Jun 13 '16 at 13:23
  • e buffer overflow, signed integer overflow? Usarias também transbordo? Faz sentido fazer transbordar um inteiro? – Artefacto Jun 14 '16 at 08:46
  • Sim, @Artefacto , se tivesse de traduzir isso (em Portugal não traduzimos esses termos técnicos) então acho que usaria transbordo na mesma. O meu maior problema é com a palavra relacionada underflow - não tenho tradução para essa. – ANeves Jun 14 '16 at 09:44
4

Eu acho que a tradução direta é a melhor opção neste caso. A razão é: o termo em Inglês foi usado na computação por causa da imagem que cria. Para os que falam Inglês bem, se alguém falar "stack overflow" você pode ver uma pilha ficando muito grande e transbordando. E também as palavras stack e overflow foram "criadas" no Inglês sem o propósito de serem usadas para computação, então eu acho que a tradução tem que pegar a mesma rota. Até em Inglês você teria que explicar o significado da frase, se estivesse falando com alguém que não é familiar com linguagem de programador.

ANeves
  • 7,117
  • 6
  • 29
  • 54
M Barbosa
  • 169
  • 1
  • 4
  • Uma pilha [real] de coisas não transborda. Numa pilha empilham-se coisas, e quando se empilham demasiadas ela tomba (it topples). Mas com o resto concordo. – ANeves Jun 14 '16 at 09:47
  • Quando algo ultrapassa um limite, ela estoura o limite, Assim o termo usado é o estouro de pilha. E a pilha é um modelo que não é realmente físico. Pode-se então dar vários formatos a este modelo em computação, incluindo as matrizes e vetores que não são representações de empilhamento. – André Lyra Jun 14 '16 at 15:40