What does it mean for a language to be statically typed?

My understanding is that it means that one can potentially write a program to formally prove that a program written in a statically typed language will be free of a certain (small) subset of defects.

My problem with this is as follows:

Assume that we have two turing complete languages, A and B. A is presumed to be 'type safe' and 'B' is presumed not to be. Suppose I am given a program L to check the correctness of any program written in A. What is to stop me from translating any program written in B to A, applying L. If P translates from A to B then why isn't PL a valid type checker for any program written in B?

I'm trained in Algebra and am only just starting to study CS so there might be some obvious reason that this doesn't work but I would very much like to know. This whole 'type safety' thing has smelt fishy to me for a while.

14
задан aaronasterling 6 October 2010 в 12:07
поделиться

2 ответа

Насколько я понимаю, это связано со временем компиляции и временем выполнения. В статически типизированном языке большая часть проверки типов выполняется во время компиляции. В динамически типизированном языке большая часть проверки типов выполняется во время выполнения.

0
ответ дан 1 December 2019 в 14:31
поделиться

Позвольте мне ответить на это наоборот:

Есть два различных типа "динамического" программирования.

Один из них "динамически типизированный", что означает, что у вас есть своего рода оболочка, в которой вы можете программировать, вводя определения в эту оболочку, думайте об этом как об оболочке IDLE в Python.

Другой тип динамического программирования является более теоретическим. Динамическая программа — это программа, которая может изменять свой собственный источник. Он требует некоторого уровня интроекции и часто используется для изменения памяти программ на микроконтроллерах. Иногда создание интерполяционных таблиц для обработки чисел называют динамическим программированием.

-1
ответ дан 1 December 2019 в 14:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: