Переменная в программировании полностью характеризуется чем?
В программировании, хорошо описать задачу не всегда означает решить ее. Но любое описание задачи всегда приближает к ее решению. Алгоритмизация и программирование в последнее время уже с большой натяжкой считаются словами-синонимами.
Программистов все чаще называют разработчиками. Результатом программирования всегда является описание (переменные + алгоритм) решения задачи.
На каком языке что и как сделано - неважно.
Немного трогательной истории
Алгоритмизация и программирование поначалу шли рука об руку, но потом их дороги разошлись. На сей момент многое вспоминать не стоит - это касается первого. О переменных и алгоритмах всегда нужно иметь отчетливое представление - это касается второго.
Благоденствие современного программирования во многом обязано тернистому пути, по которому шло понимание информации, описание данных и алгоритмов их обработки в программах.
Первые языки были просты как перфокарты, но они работали. Переменные, типы переменных, объявление переменных и порядок описания был самым жестким образом регламентирован.
Как правило, переменные делились на динамические (те, что можно менять) и статические (константы, их менять нельзя).
Самой первой была переменная типа указатель (это заслуга лучшего и "вечного" языка - "Ассемблера"). Не во всех языках она сохранялась в разные времена, но в современном программировании использование указателей - верх совершенства кода.
Основные правила: с чего все начиналось
Переменная должна быть описана до первого использования, а чаще всего в самом начале программы, а еще чаще - в конкретной секции программы. Переменная должна быть написана латиницей, с цифрами или без. Некоторые языки допускали символ "_". Первым должен быть символ.
Переменная имела характерную особенность: она должна была знать, сколько занимает байт в памяти и как ей выровняться на границу слова, а то и двойного слова.
Последнее было очень важно для математических программ. Особенности организации оперативной памяти и работа математического сопроцессора обязывали программиста не только правильно и вовремя описать переменную, но и подумать, как она расположится в оперативной памяти.
Прим. "Недра" оперативной памяти недоступны современному программированию в подавляющем большинстве случаев. Раньше с организацией памяти приходилось строго считаться.
Первые структуры данных - совокупности переменных - функционировали как переменные с определенной семантикой, но для доступа к ним требовалось не только знать, сколько байт что занимает, но и учитывать, что некоторые типы данных компилятор автоматом выравнивал на границу слова.
Все это приводило к серьезным ошибкам в программах. В память о тех суровых временах следует отметить, что первые языки при всей их пунктуальности и требовательности обеспечивали переменные, типы, структуры данных в программировании и разработке безопасным синтаксическим контролем.
Если программа проходила синтаксический контроль и успешно линковалась, проблемы с выполнением начинались только при фатальной ошибке программиста или сбое аппаратуры.
Наше время, интернет-программирование
Некоторые языки программирования сохранили приверженность к строгому описанию переменных. Большинство допускает описание, но позволяет менять тип переменной как удобно программисту.
PHP: здесь переменная в программировании полностью характеризуется именем, значением, а вот тип зависит от места в коде и времени, когда она понадобилась. Некоторым не очень нравится именовать переменные со знака "$", но зато можно иметь такие имена: $1, $2, $3.
Диапазоны значений превышают требуемые пределы, и предусмотрено множество возможных типов. Для подавляющего большинства задач хватает строк, целых чисел, иногда вещественных и логических. Указателя как такового здесь нет, но возможность передать указание на место переменной есть.
JavaScript: переменная в программировании полностью характеризуется тем, что ее нужно обязательно описать, хотя в некоторых случаях язык простит отсутствие описания, шансов получить валидный код будет мало. JavaScript просто не будет работать с тем, что не укладывается в его синтаксис или он не смог исполнить.
Диапазоны значений так же зашкаливают, но наибольшей популярностью пользуются строчные переменные.
Программирование на языках, относящихся к Интернету косвенно, то есть C#, C++, Pascal, Delphi - строгое. В C# нужно не только описать, но и инициализировать.
Чем характеризуются переменные величины
Прежде всего своим именем, к которому разные языки предъявляют строгие требования. Если в PHP знак $ обязательно стоит перед именем переменной, то в Java это выходит за рамки соглашения. Вообще, по части именования переменных величин, помимо идей синтаксиса языка, есть масса идей разработчиков.
Начиная писать на конкретном языке, следует прислушаться к мнению коллег и посмотреть последние идеологические мануалы по стилю языка.
Вторая характеристика переменной - ее значение. Оно есть всегда. Даже если значение отсутствует - это тоже значение. Характерная черта: например, PHP многие функции, выдающие в качестве результата число, могут выдать результатом boolean - чем не результат?
Тип не важен, важно наличие, и многие конструкции JavaScript волне удовлетворяются наличием значения, невзирая на его тип.
Последнее, что имеет значение, так это, собственно, значение переменной.
Базовые типы данных
В общем-то мир описания, мир переменных, несмотря на диалекты и стили в именовании, не сильно развился в отношении базовых типов.
В основном программисты используют строки (string), часто целые числа (int, integer), при необходимости вещественные числа (double, real), некоторые еще сохранили понятие знака (char).
Про базы данных (от мала до велика) можно даже не говорить, там количество вариаций основных типов предусмотрено на все случаи жизни, а многие типы данных наследуются со времен Ады и Беббиджа.
В настоящее время сама лучшая переменная в программировании полностью характеризуется указанием на себя, допуская, что ее значение, тип и вообще кто она такая будет ясно только в тот момент, когда она потребуется.
Переменные и алгоритмы
Одинокая переменная в программировании полностью характеризуется стремлением оказаться в компании ей подобных. Это историческое явление, и мало что здесь зависит от воли разработчика.
Если создание программы начинается с технического задания, особенно если в разработке принимают специалисты, для которых в теме "алгоритмизация и программирование" первое слово имеет большее значение чем второе, то переменных будет великое множество. Обычно такой вариант останавливается на этапе описания переменных.
Если создание программы начинается с анализа ее основной задачи, и именно главная точка задачи берется за основу, то шансов получить работающий результат достаточно.
Описать главную точку и создать алгоритм, ее обслуживающий, - это не просто переменная в программировании, тип, имя, значения и место описания, а начало процесса. Важен процесс описания переменных и алгоритма, который с ними работает.
Важно движение:
- первое приближение к цели;
- результат, анализ и уточнение описания;
- второе приближение к цели.
Обычно после создания второго-третьего описания приходит понимание, с чего следует начинать. И задача пошла в работу.
Указательное описание переменных
Немногого стоит начать программу с основных переменных: не имена, типы и значения играют главную роль. Одинокая переменная, структура данных, массив и даже объект - это просто статистическое решение задачи.
Дерево объектов, описывающих задачу, то есть и переменные, и алгоритмы, инкапсулированные в единый код - объект, а все объекты в общий объект - систему объектов - вот это дело. Вот это реальное и современное создание переменных.
Такие переменные могут взаимодействовать с себе подобными, а благодаря наследованию каждая из них может перемещаться по своей родословной ветке, то есть указатель на то, что и где в данный момент используется, и как он это делает - актуален, а само его содержание - нет. В данном случае содержание играет свою роль, когда оно это сделает, указатель перемещается на следующее содержание.