Поговорим с ПК: что такое компьютерный язык? Языки программирования Язык понятный компьютеру.

Chapter 2: Что такое компьютерный язык?

Video: What is a computer language?

Что является сутью компьютерного языка? Зачем он нужен компьютерам? Почему в мире так много компьютерных языков?

Как для понимания принципов работы двигателя не нужно водить машину, так и для понимания ответа на эти вопросы не нужно программировать. Но для того, чтобы улучшить своё знание темы, необходимо понять как работает компьютер. Здесь даётся краткое объяснение.

2.1 Краткая история программирования

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

Раньше, особые переключатели использовались для загрузки единиц и нулей в компьютерную память. На этой картинке, принадлежащей Wikimedia Commons , изображён Altair 8800. Переключатели на передней панели использовались для загрузки программы. Огни показывали результат. Монитора не было. Figure 2.1: Altair 8800

Каждый набор из переключателей представляет из себя номер. Каждый номер представляет данные или инструкцию, которую с ними должен сделать компьютер. Эта система, использующая только нули и единицы для репрезентации чисел называется бинарной(двоичной) системой исчисления. Этот тип компьютерного языка называется 1GL, или язык программирования первого поколения.

Числа в двоичной системе исчисления чаще всего представлены в комбинациях из четырёх цифр. Например:

1010 0010 0011

Усовершенствованием ввода через переключатели было начало использования шестнадцатеричных кодов. Десятичные числа, используемые в посведневной жизни, состоят из цифр 0-9. Шестнадцатеричная система исчисления состоит из цифр 0-9, а также из символов от A до F для репрезентации набора четырёх переключателей, с возможными значениями 0-15.

Двоичная Десятичная Шестнадцатиричная
0 0 0
1 1 1
10 2 2
11 3 3
100 4 4
101 5 5
110 6 6
111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F
1 0000 16 10
1 0001 17 11

Следующее видео немного подробнее объясняет, как работает система исчисления: Video: Decimal, binary, and hexadecimal systems

Для облегчения ввода программ, более поздние компьютеры позволяли вводить программы с помощью языка assembly. Каждая команда использовала мнемонику, а программа, называемая компилятором, превращала мнемоники в числа, обозначающие команды. Такой тип языка называется 2GL, или язык второго поколения.

Ниже преведена часть программы на языке assembly, предоставлено Wikimedia Commons .
Figure 2.2: Пример языка assembly

Хотя это было улучшением, этого всё ещё было недостаточно для того, чтобы сделать процесс программирования лёгким. Следующее поколение языков предоставило абстракции более высокого уровня. Первые языки третьего поколения: (COBOL , FORTRAN и LISP) были намного проще для понимания и программирования.

Языки второго и третьего поколения использовали программу, называемую компилятор . Компилятор берёт программу, введённую пользователем (так называемый исходный код ) и превращает её в машинный код. Программист запускает машинный код. Оригинальный исходный код не запускается.

Если программа использует исходный код из разных источников, они могут быть связаны вместе в один с помощью программы, называемой linker (линкер, редактор связей, компоновщик) . Редактор связей работает с машинным кодом, сгенерированным компилятором, для создания финальной версии программы. Эта финальная версия - то, что запускает пользователь. Исходный код для этого не нужен. Figure 2.3: Компиляторы и редакторы связей

Недостатком машинного языка является то, что программа будет работать только на определённых типах компьютера. Программы, скомпилированные для компьютеров с Windows скорее всего не будут работать на компьютерах Apple Macintosh и наоборот.

Потому что весь процесс компиляции и связи может быть сложным для начинающих программистов, некоторые языки стали использовать интерпретаторы . Эти программы спотрят на исходный код и преобразуют его в машинный код на ходу. Это также позволяет одним и тем же программам запускаться на Windows, Mac, Unix компьютерах, в случае, если на каждой из этих платформ есть доступ к интерпретатору.

Недостатком использования интерпретатора является то, что он медленнее, чем оригинальный, машинный язык. Figure 2.4: Интерпретатор

Python является примером интерпретируемого языка. Легче писать на Python"е, чем на C, но Python работает медленнее и требует интерпретатора для успешной работы.

  1. Приведите пример числа в двоичной системе исчисления. (Хотя число "1" может быть двоичным, десятичным или шестнадцатиричным, попытайтесь придумать пример, который показывает разницу между системами исчислений.)
  2. Дайте пример числа в десятичной системе исчисления.
  3. Дайте пример числа в шестнадцатиричной системе исчисления.
  4. Переведите числа 1, 10, 100, 1000 и 10000 из двоичной в десятичную систему исчисления.
  5. Что такое компилятор?
  6. Что такое исходный код?
  7. Что такое машинный язык?
  8. Что является языком программирования первого поколения?
  9. Что является языком программирования второго поколения?
  10. Что является языком программирования третьего поколения?
  11. Что такое интерпретатор?

You are not logged in. Log in and track your progress.

Ещё вчера информатику считали в Советском Союзе лженаукой. А сегодня правительства некоторых стран жалуются на атаки российских хакеров.

И хоть в России пока что производится мало высокотехнологичных устройств и девайсов, умных программистов хватает и у нас.

Сегодня мы расскажем про компьютерные языки, их классификацию, суть, возможности и перспективы использования в будущем.

Начнем рассматривать тему с теории. Первым делом разберёмся с понятием.

Что такое компьютерные языки?

Это система знаков, символов, которая создана для "общения" человека с компьютером. Ведь мы не можем просто так взять, подойти к компьютеру и начать ему что-то объяснять. Для этого существуют специальные слова-коды и лексика, из которых состоят компьютерные языки. А они уже доносятся до компьютера в понятной ему форме.

На сегодняшний день существует более 8 тысяч различных языков для общения человека с компьютером. Конечно же, все их знать нельзя. Кто-то создаёт язык для себя, а кто-то занимается этим на коммерческой основе.

Но хороший программист должен знать в совершенстве хотя бы несколько базовых из них.

Какие языки программирования самые популярные?

Мир компьютерных технологий постоянно совершенствуется: появляются новые разработки, доводятся до ума прошлые. Вместе с этим появляются или упорядочиваются компьютерные языки программирования. Самыми популярными из них, которые используются глобально, можно отнести следующие:

Конечно же, языков на самом деле ещё больше, но мы выбрали самые основные, на которых написано более 90% всех компьютерных приложений. Далее рассмотрим подробнее каждый из них.

Процедурный С/С++

Языки С и C++ можно назвать двумя братьями. Есть утверждения о том, что это два абсолютно разных языка программирования, что неверно. С++ является некоторым усовершенствованием предыдущего языка, облегчающим написание программ и сохранившим прежний синтаксис.

С разрабатывали начиная с семидесятых годов прошлого века, в восьмидесятых приступили к созданию С++. На сегодняшний день последний можно назвать одним из самых популярных. Он настолько многофункционален, что с его помощью можно создать операционную систему, драйверы для устройств, игры и многое другое.

Говоря о достоинствах и недостатках этого языка, нельзя делать однозначные выводы. Есть его сторонники, а есть и беспощадные критики. Основой для споров является то, что в этом языке программирования нет ничего своего.

Его создатели, можно так сказать, объединили функции и возможности нескольких языков программирования в один. В итоге получился комплексный и масштабный инструмент программирования. Но если разбирать его по отдельно взятым функциям, то он уступает узкоспециализированным языкам.

Независимый и безопасный Java

Этот английский компьютерный язык разработали в компании Sun Microsystems. Благодаря тому, что написанная программа транслируется в особенный байт-код, она способна работать независимо от типа операционной системы или компьютерной архитектуры.

Это сделало язык Java самым популярным. Его можно встретить абсолютно во всей бытовой технике, банкоматах, городских автоматах и практически во всём, что связано с компьютерными технологиями. Именно на Java пишется большинство популярных приложений для смартфонов и телефонов.

Также у этого языка программирования достаточно высокий уровень безопасности. Выполнение программой действий в рамках своих полномочий контролируется которая передаёт команды на устройства. Поэтому при попытке выполнить какую-либо другую задачу работа программы тут же прекращается.

Если говорить о простоте языка, то стоит отметить исследования, которые показали, что аналогичные операции пишутся в 1,2-2 раза дольше, чем на языке C++. Также в несколько раз больше ресурсов требуется на выполнение команд. Но команда производителя постоянно выпускает множество обновлений, которые сводят к минимуму все недостатки этого языка программирования.

Покоривший Интернет PHP

Вы хотите создать свой сайт или заняться веб-программированием? В этом вам поможет отличный язык PHP, который способен создавать динамические страницы. Он является, пожалуй, самым популярным при создании сайтов и написании веб-приложений.

Благодаря тому, что этот язык программирования создавался разработчиками с открытым кодом, его удалось довести до совершенства, и он набрал бешеную популярность. PHP легко взаимодействует с самыми разными базами данных - от MySQL до Access.

Самые популярные сайты Интернета, такие как Facebook или Wikipedia, написаны именно на этом языке.

Писать на нём достаточно просто. Существует даже статистика, что более 60% программистов мира, которые работают на коде PHP, достаточно ограниченно знают (на базовом уровне) английский язык. Компьютерная грамотность в этом случае ограничивается лишь знанием необходимых функций и процедур.

Нельзя обойти стороной и критику языка. Несмотря на то что в рейтингах самых популярных языков 2015 года PHP занял 6-е место, в его адрес нередко высказывается недовольство.

Прежде всего, этот язык создавался не одной группой программистов, а несколькими. Из-за этого синтаксис языка не унифицирован и не имеет единой архитектуры. Встречаются разные процедуры, которые необходимо описывать по-особенному, а не по стандартизированному шаблону.

Также одной из главных проблем можно назвать отсутствие совместимости между разными версиями языков. Более ранние версии абсолютно отказываются работать с обновлениями, что часто создаёт проблемы по переносу кода из одной версии в другую.

Актуальность знания и понимания языков программирования

Тема умения "разговаривать" с компьютером в последнее десятилетие набирает все больше оборотов.

И это не удивительно, ведь информационные технологии неугомонно внедряются в нашу жизнь и уже даже зубная щетка не обходится без "мозгов". Программировать код и обслуживать устройства должен специалист. Поэтому спрос на грамотных программистов всегда есть.

Ещё одной причиной того, почему многие изучают компьютерные языки, можно назвать спад экономики страны. Человек, умеющий профессионально писать на Java, может удалённо работать на иностранную компанию по созданию приложений и зарабатывать за месяц такие деньги, которые в своей стране придётся копить в течение десятков лет.

Но если задуматься, то достаточно сложно начать успешно заниматься программированием и писать компьютерные программы. Английский язык - это главная преграда для начинающих. Ведь большинство программ и языков написаны именно с учётом лексики этого международного языка.

Изучить языки можно онлайн

Так что придётся изучить иностранный язык хотя бы на базовом уровне, пока русский компьютерный язык не придумали.

Но не переживайте, мир не стоит на месте. Сегодня можно обучаться, не выходя из дома. Главное - иметь компьютер и Интернет. Есть множество сайтов, которые проводят компьютерное обучение языкам. Самые популярные из них - это Codecademy, Code School и Udacity.

Под термином «компьютерный язык» понимают все языки, позволяющие взаимодействовать человеку и компьютеру. При этом различают языки, которые могут читать машины, и те, которые способны понимать люди.

Языки, понятные машинам, умеет читать процессор и, следовательно, выполняет отправленные с их помощью команды. В этом случае речь идет о так называемых машинных языках. Но есть еще и компьютерные языки, которые могут читать люди. К ним относятся, например, языки программирования. Они используют слова и символы человеческого языка - компьютер не может их ни прочесть, ни интерпретировать.

Чтобы сделать эти языки читаемыми для «железа», их необходимо перевести на машинный язык. Это может произойти в режиме реального времени с помощью интерпретатора или заранее с помощью ассемблера или компилятора.

Какие языки понимает компьютер?

Единого для всех компьютерного языка, как вы уже поняли из начала нашей статью, не существует. Есть очень длинный список разнообразных компьютерных языков, а наиболее известными среди них, вероятно, являются уже упомянутые языки программирования.

Скриптовые языки не переводятся предварительно компилятором в машинный код. Интерпретаторы делают их доступными для чтения компьютером, и это позволяет выполнять определенные действия. К скриптовым языкам относятся Python и Javascript.

Еще одной формой языков программирования являются так называемые высокоуровневые языки. Здесь информация программируется с помощью кода, который может прочитать человек, а компилятор преобразует этот в машинный. Примерами высокоуровневых языка являются C и C++.

В отличие от выше перечисленных языки разметки не используют программы, поэтому они не преобразуются в машинный код. Они применяются для создания таких документов, с которыми сможет работать какая-либо . Классическими примерами языков разметки являются HTML, XML или CSS.

Есть еще языки баз данных, такие как SQL. Они не относятся непосредственно к языкам программирования, но управляют компьютером при выполнении запросов в базе данных.

Если вы хотите научиться программировать самостоятельно, то в вы найдете ценные советы для начинающих программистов.

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

Возможно, вы никогда не задумывались, что программы эти тоже создаются людьми — программистами, и пишутся они на специальном языке. Причем важно отметить, что языков программирования сегодня существует великое множество. Это то же самое, как в каждой стране говорят на своем языке, так и в компьютерных технологиях в разных местах используется свой язык — для мобильных приложений под Андроид один язык, а для Айфона уже другой, для создания веб-сайтов третий язык, а для компьютерных игр четвертый и так далее.

«Зачем они нужны?» — спросите вы. Все очень просто. Языки программирования содержат в себе команды, отдаваемые компьютеру, чтобы он выполнял те или иные функции. Видите ли, у вычислительных машин тоже есть свой особый язык, или по-другому код, на котором с ними приходится общаться. Чтобы попросить компьютер что-либо сделать, ему надо написать соответствующую команду, после чего он ее обработает и выдаст результат. Вот так вот все одновременно просто и сложно.

Один из самых базовых языков называется С++, свою историю он ведет еще с 80-х годов. На заре создания компьютеров каждый разработчик создавал свою собственную операционную систему и язык программирования под нее. С ростом различных компаний и их разработок стало ясно, что пора ввести какие-то единые стандарты, т.к. все больше стало возникать проблем совместимости оборудования и программного обеспечения. Так первой общей операционной системой стала Unix, и к ней первый язык программирования C++.

С тех пор прошло много времени, новые языки появлялись и исчезали (совсем не все широко использовались), и другим популярным языком стал Java, имеющий некие общие черты с C++, но по сути являющийся совершенно иным. Язык Ява (или Джава) сегодня особенно используется в разработке самых различных веб-приложений, начиная от простых функций сайтов, заканчивая сложными веб-интерфейсами. Несмотря на то, что в последние годы появилось огромное количество пособий о том, как научиться программировать, все-таки специалисты рекомендуют заканчивать профильные ВУЗы. Или хотя бы посетить специализированные курсы.

Но «пожилые» языки программирования все чаще и чаще критикуются за сложность и громоздкость. Опыт последнего десятилетия и бум новых устройств показал, что команды для компьютеров могут быть гораздо проще и короче. Поэтому процесс развития новых языков не стоит на месте. В последние несколько лет появились такие языки программирования как Скратч (Scratch) и Питон (Python), на которых учатся «кодить» даже дети. Например, Скратч в зарубежных школах начинают изучать с начальных классов. А Питон позволяет ученикам средней школы самостоятельно создавать различные новые функции для известной игры Майн Крафт. Простота новых языков и увлекательный формат подачи привлекают все больше и больше школьников к такой сложной науке как программирование.

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

После проверки можно смело размещать свои программы в сети Интернет. Причем как для бесплатного скачивания, так и для получения дохода. Хотя на начальном этапе, конечно, не стоит грезить о большой прибыли, а вот со временем накопленный опыт позволит создавать действительно крупные уникальные программные продукты, которые будут пользоваться спросом и покупаться заинтересованными людьми. Но все-таки главное в программистах — это энтузиазм. Ведь именно благодаря ему рождаются необычайные идеи, обретающие новую жизнь в виртуальном мире, оказывая влияние и на реальный. А потому программированием стоит заниматься только тем людям, которые действительно любят созидать и мечтают сделать мир будущего лучше и интереснее.

Программирование - процесс и искусство создания компьютерных программ с помощью языков программирования.

Программирование сочетает в себе элементы искусства, науки, математики и инженерии.

В узком смысле слова, программирование рассматривается как кодирование - реализация одного или нескольких взаимосвязанных алгоритмов на некотором языке программирования.

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

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

Различные языки программирования поддерживают различные стили программирования (так называемые парадигмы программирования).

Отчасти искусство программирования состоит в том, чтобы выбрать один из языков, наиболее полно подходящий для решения имеющейся задачи.

Язык программирования - формальная знаковая система, предназначенная для записи программ.

Программа обычно представляет собой некоторый алгоритм в форме, понятной для исполнителя (например, компьютера).

Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы.

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

Со времени создания первых программируемых машин человечество придумало уже более восьми с половиной тысяч языков программирования.

Языки программирования могут быть разделены на компилируемые и интерпретируемые.

Программа на компилируемом языке при помощи специальной программы компилятора преобразуется (компилируется) в набор инструкций для данного типа процессора (машинный код) и далее записывается в исполняемый файл, который может быть запущен на выполнение как отдельная программа. Другими словами, компилятор переводит программу с языка высокого уровня на низкоуровневый язык, понятный процессору.

Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) ее текст без предварительного перевода. При этом программа остается на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера - это интерпретатор машинного кода.

Кратко говоря, компилятор переводит программу на машинный язык сразу и целиком, создавая при этом отдельную программу, а интерпретатор переводит на машинный язык прямо во время исполнения программы.

Низкоуровневый язык программирования - язык программирования, близкий к программированию непосредственно в машинных кодах. Как правило, использует особенности конкретного семейства процессоров.

Общеизвестный пример низкоуровнего языка - язык ассемблера.

Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом.

Основная черта высокоуровневых языков - это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.

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

Такого рода оторванность высокоуровневых языков от аппаратной реализации компьютера помимо множества плюсов имеет и минусы.

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

Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков.

Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня (язык ассемблера) в ряд современных профессиональных высокоуровневых языков программирования.

Наиболее распространенными высокоуровневыми языками являются C++, Visual Basic, Java, Python, Ruby, Perl, Delphi (Pascal), .

Первым языком программирования высокого уровня считается компьютерный язык Plankalkül разработанный немецким инженером Конрадом Цузе еще в период 1942 - 1946 гг.

Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957 год).

Классы языков программирования

Функциональные (Лисп, Haskell, Nemerle, Clean, ML, Flang, Erlang, Miranda, Curry);

Стековые (PostScript, Forth);

Структурные (Алгол, Basic, QBASIC, Фортран, Фокал, Cg);

Процедурные (Ада, Бейсик (версии начиная с Quick Basic до появления Visual Basic), Си, КОБОЛ, Фортран, Модула-2, Глагол (русский аналог Оберона), Паскаль, ПЛ/1, Рапира, REXX);

Языки динамического программирования (Python, PHP, Ruby, JavaScript);

Учебные (Алгоритмический язык, КуМир, Лого, Робик, Рапира, Форт, Postscript);

Описания интерфейсов (CORBA IDL, COM IDL);

Прототипные (Actor-Based Concurrent Language, ABCL: ABCL/1, ABCL/R, ABCL/R2, ABCL/c+, Agora, Cecil, Cel, ECMAScript, ActionScript, DMDScript, JavaScript, JScript, Factor, NewtonScript, Obliq, OpenLaszlo, REBOL, Self, Slate, TADS);

Объектно-ориентированные (Eiffel, Simula, Java, C#, C++, Object Pascal (Delphi), VB.NET, Visual, DataFlex, Perl, PHP, Python, Scala, ActionScript, JavaScript, JScript.NET, Ruby, Ada, Xbase++);

Языки логического программирования (Prolog);

Языки параллельного программирования (MC#);

Сценарные, или скриптовые (Perl, Python, PHP, Tcl (Tool command language), Ruby, ERM, Lua);

Эзотерические (Byter, Brainfuck, Befunge, INTERCAL, Whitespace).



В продолжение темы:
Android

Популярная социальная сеть ВКонтакте позволяет находить новых друзей и держать контакт со всеми близкими. Помимо этого, каждый пользователь может делиться собственными...