Иногда мы должны использовать язык ассемблера (низкого уровня языка, LLL), потому что там просто нет другого разумный способ рассказывать компьютер, что это должны сделать. На протяжении веков было много языков для компьютера. Различные виды языков подчеркивают различные вещи о проблеме, и поэтому лучше описания различных аспектов решения, или даже различные виды проблем и решений. Компьютерные науки постоянно меняется, так что постоянное развитие понятий, которые мы должны использовать и обозначениях для описания этих концепций.
Первые языки имели несколько ограничений, поэтому они были очень мощными, но, оказалось, очень опасно использовать. Через некоторое время, люди разработали языках, которые были гораздо безопаснее в использовании, но были жалобы об их отсутствие власти. В настоящее время, мы начинаем видеть языков, которые являются безопасными и мощный, но процесс имеет долгий путь еще. Очень ранние языки должен основываться на чем-то, и это было, вероятно, простые инструкции дать людям без особых лексики или здравого смысла, т.е. детей.
Однако, несмотря на это интуитивно понятным для простых задач, стало ясно, что это не очень хорошо масштабируется - то есть она становится непропорционально трудно использовать в качестве размера проблема увеличивается. Форма поверхности язык программирования известна как его синтаксис. Большинство языков программирования являются чисто текстовая; они используют последовательности текста в том числе слова, цифр и знаков препинания, как и письменных естественных языков.
Языки программирования свойства поделитесь с естественных языков, связанных с их назначением в качестве транспортных средств для общения, имея синтаксическая форма отделить от его семантики, и показывая языковых семей родственных языков ветвящихся друг от друга. Многие языки программирования были разработаны с нуля, изменены, чтобы удовлетворить новые потребности, и в сочетании с другими языками. Многие в конце концов вышел из употребления. Программ