Я не пойму, почему во многих языках нужно указывать тип переменным?
вот люблю php и JS в них не обязательно этого, а в том же паскале нужно указывать тип переменных перед тем как записать в нее какие то данные
Дополненв языках программирования
оговорочка! в php и JS не обязательно указывать, но возможно
неа, машинный код не для меня)
Потому что от типа переменной зависит количество выделяемой для нее памяти.
Для лентяев есть тип variant.
Но скорость работы с этим типом будет вроде твоих любимых ПХП и жабоскрипта.
компилятор:
при указании типа переменных становится известно, как будет по ресурсам использоваться оперативная память, т. о. при запуске программы, система производит подготовку её для этих типов переменных и далее уже выполняется сам алгоритм
это позволяет при эффективном написании кода повысить производительность программы по сравнению с интерпретатором
среды использующие компилятор: Delphi, C++ ,pascal...
интерпретатор
а вот там где описывать типы не нужно обычно распределение памяти делается на момент выполнения каждой строчки алгоритма, на основании чего определяется сколько памяти для чего использовать
с одной стороны ненужно заботиться о типах переменных, но с другой стороны это не позволяет достигнуть производительности и эффективности программы на более высоком уровне по сравнению в компилятором
т. о. интерпретатор возможно окажется удобным для весьма простых программок, но не более того
среды использующие интерпретатор: basic...
На самом деле в 32-битной среде реально только 3 типа переменных - 1,2 и 4 байта, все остальное - синонимы, призванные понять компилятору как с ними производить операции, защитить программиста от ошибок и дать понять программисту для чего служит переменная.
А php, js - это байт-код (поэтому такая абстракция) , а Паскаль - машинный код (т. е. прямая работа с процессором).
php и JS легкие т. к. все эти задачи решают за программсита, но вы сами подумайте сколько ресурсов занимают эти задачи. Программы написанные на С++ в 5-10 раз быстрее и надежнее
потому что языкам нужно знать как именно интерпретировать данные. . как символ\значение\указатель на чтолибо и т д... .