Как понять язык на компьютере
⚠️ Минутка матчасти! Эта статья создана для расширения кругозора и повышения разрешения в мире компьютерных технологий. В ней мало практической пользы кроме развития вашего интеллекта.
Здесь мы говорим о двух типах компьютерных языков: условно говоря, языков скриптования (интерпретируемые языки) и языков программирования (компилируемые языки). Это деление — не самое верное и не самое полное с точки зрения опытных программистов, но статья рассчитана на тех, кто только начинает.
Скриптовые, или интерпретируемые, языки
Обычно примеры кода в наших статьях работают по такому принципу:
- Скопировал текст.
- Запустил в браузере.
- Получил результат.
Браузер берёт наш код, проверяет его на ошибки и, если ошибок нет, — выполняет команды по очереди в нужной последовательности. Или даже выполняет без проверки, а если в процессе появится ошибка — остановится.
Чтобы такие скрипты работали, нужна какая-то программа, которая будет выполнять команды скрипта, — их называют интерпретаторами. В нашем случае это браузер: Chrome, Safari, Firefox, Яндекс-браузер и т. д. Отсюда и название — интерпретируемые языки.
Пример скриптового языка, который вы уже знаете, — JavaScript. На скриншоте ниже он вписан внутрь веб-страницы. Сам код из одной строки прописан между тегами <script> и </script>: браузер будет рисовать страницу, в какой-то момент увидит этот скрипт, выполнит его и пойдёт дальше рисовать страницу.
Ещё один популярный пример интерпретируемого языка — Python. Он работает по тому же принципу, только вместо браузера Python использует собственный интерпретатор команд. Когда мы в среде разработки запускаем скрипт на питоне, то интерпретатор шаг за шагом выполняет команды.
👉 В интерпретируемых языках сам скрипт — это и есть готовая программа, но для её запуска и работы нужен внешний интерпретатор, который выполнит команды. Без интерпретатора скрипт не запустится.
Программные, или компилируемые, языки и машинный код
Другой подход к разработке: программные, или компилируемые, языки. Они устроены так: программист пишет исходный код программы, а потом прогоняет её через компилятор. Компилятор берёт исходный код целиком, анализирует его и создаёт машинный код.
Компиляция — это превращение программного кода в исполняемый код для процессора: на входе было то, что могли прочитать вы, а на выходе — то, что может прочитать и исполнить компьютер. Если скрипт — это сценарий для актёра на сцене, то компиляция — это отснятый фильм на киноленте.
Машинный код — последовательность байтов, которая даёт инструкции напрямую процессору. Для человека такой код выглядит как просто набор знаков, но компьютер его понимает.
А вот так выглядит фрагмент машинного кода, который получился после работы компилятора:
Примеры компилируемых языков: С, С++, Pascal, Swift и ещё десятки других. Ассемблер, кстати, тоже компилируемый язык — процессор не умеет понимать его исходный код без посторонней помощи.
👉 Результат работы компилятора — самостоятельная программа в виде машинного кода, которая потом может работать сама, без компилятора. Один раз скомпилировал — и потом можно запускать её самостоятельно, без внешних программ.
Особенности компилируемых языков
У машинного кода есть один недостаток: он работает только с определёнными процессорами и компьютерами. Если программа написана для Виндоус, запустить на макбуке без специальных ухищрений не получится. Программа для телефона на компьютере заработает только при особых условиях — например, поддержка приложений Android появилась только в Windows 11, а приложения iOS научили запускаться на MacOS только в 2020 году.
Дело в том, что у разных компьютеров разный тип процессора, а машинный код знает, как работать только со своим типом. Чтобы запустить приложение iOS на Mac OS, операционка должна «обернуть» приложение в эмулятор мобильного устройства, и только потом — запустить.
Снова про снобизм
Некоторые любители программных языков считают скриптовиков ненастоящими программистами. Мол, они пишут программы, которые сами по себе не работают и которым нужен интерпретатор. Если вы такое слышите, то знайте, что перед вами — программист-сноб.
Настоящие разработчики знают, что главное — решить задачу. Если она скриптом решается лучше, чем машинным кодом, значит, в этой ситуации лучше сработает скрипт, и наоборот.
Парадокс компьютерных наук заключается в том, что многие задачи, которые людям не под силу, легко выполняются компьютерными программами. При этом задачи, которые человек может выполнять безо всяких усилий, остаются сложны для компьютеров. Мы умеем разрабатывать шахматные программы, которые побеждают ведущих гроссмейстеров на Земле. Однако создать такую программу, которая сможет распознать объекты на фотографии или понять предложение даже на уровне, доступном ребенку, мы не можем.
Обучение компьютера пониманию языка остается одной из сложнейших задач искусственного интеллекта. Задача поисковой машины — найти именно то, что вам нужно. Важнейшую роль при этом играет понимание языка, в частности — синонимов.
Итак, что такое синоним? Приведем простейший пример. Слова «фото» и «фотография» означают одно и то же. Если вы ищете фразу [проявка фото в кофе], то Google должен понимать, что даже если на странице употребляется слово «фотография», а не «фото», эта страница все равно является результатом поиска. Хотя любой ребенок понимает, что слова «фотография» и «фото» — синонимы, научить этому компьютерную программу крайне трудно. Именно поэтому мы по праву гордимся системой подбора синонимов, разработанной в Google.
Наша система подбора синонимов является результатом более чем пятилетней работы команды качества поиска Google. Мы постоянно контролируем качество работы системы, но недавно мы отдельно проанализировали влияние подбора синонимов на результаты поиска. Возможно, вы обычно и не замечаете, что при поиске используются синонимы, — все это происходит в недрах поисковой машины. Однако, как показывают проделанные нами измерения, синонимы влияют на выполнение 70% поисковых запросов, осуществляемых на сотне языков, поддерживаемых Google. Мы выбрали такие запросы и проанализировали, насколько точно были подобраны синонимы. Результаты нас порадовали. На каждые 50 запросов, для которых использование синонимов существенно улучшало результаты поиска, только в одном случае наблюдался отрицательный эффект.
Пример плохого подбора синонима — поиск [проявка фото в кофе] вы видите, что в описании первого результата слово «фотографии» выделено жирным:
Заметим, что поскольку использование синонимов зависит от многих факторов, — в частности от наличия других слов в вашем запросе, — вы не обязательно увидите выделенное слово «фотографии» в поиске, содержащем слово «фото». Целесообразность выделения синонимов определяется нашими поисковыми алгоритмами.
Для обнаружения синонимов мы используем большое количество методик, и мы писали об этом в нашем блоге. Наши системы анализируют петабайты документов, доступных в сети, а также данные по истории поиска. На основании этой информации формируется тонкое понимание смысла слов в различных контекстах. В приведенном выше примере «фото» и «фотографии» — это очевидные синонимы. Но синонимы не всегда являются взаимозаменяемыми. Например, несмотря на то что «блюдо» это одно из синонимов слова «тарелка», поисковая система должна понимать что «летающая тарелка» является вполне осмысленным запросом, а сочетание «летающее блюдо» более напоминает о сцене в ресторане, чем об НЛО.
Еще один пример — это аббревиатура «ГТО». Любой автомобилист знает что это сокращение означает: «Государственный технический осмотр транспортных средств». В случае запроса [правила прохождения гто] Google выделит в результатах поиска фразу «Государственный технический осмотр». Это показывает, что в данном случае «Государственный технический осмотр» означает то же самое, что и ГТО. Есть ли еще значения у этой аббревиатуры? Многие вспомнят, что ГТО означает еще «Готов к труду и обороне» — программа физкультурной подготовки, существовавшая в нашей стране с 1931 по 1991 год. Это словосочетание будет выделено в результатах, содержащих виды упражнений и нормативы комплекса ГТО. Например, запрос [гто СССР] вернет документы рассказывающие об истории этой программы, а также информацию о нормативах и упражнениях входящих в комплекс ГТО. Помимо этого, ГТО может обозначать «гаражно-техническое объединение», для любого знатока аниме, ГТО это сериал Great Teacher Onizuka.
Ниже на скриншотах показаны результаты запросов с различным значением аббревиатуры ГТО:
Кстати, даже такие очевидные варианты слова, как «фотография» и «фотографии» (единственное и множественное число), обычным компьютером будут восприниматься как разные условия поиска. Поэтому мы также включаем такие вариации в нашу систему подбора синонимов. Слова «фотография» и «фотографии» — это однокоренные слова, формы одного и того же слова. Система, понимающая, что «фотография» и «фото» — это одно и то же, должна понимать также, что «фотография» и «фотографии» — формы одного и того же слова. Это совсем очевидно для человека, но компьютеру не так-то просто это понять. Еще один пример — слова «животное» и «живот», которые имеют одинаковый корень и сходную этимологию, но означают совсем разные вещи. Другой пример — это использование слов «право» и «права». «Право» — это не только регулятор общественных отношений или совокупность законодательных норм, но и антоним слова «лево». А в множественном числе слово «права» означают и желанный документ, разрешающий управление автомобилем. Соответственно, запросы [получить право] и [получить права] имеют совсем разный смысл. Поиск Google достаточно умен для того, чтобы отличить одно выражение от другого, т.е. он знает, что «право» и «права» — это опасные синонимы, и их использование может привести к искажению смысла. Именно такие тонкие различия между словами, только кажущимися родственными, и затрудняют понимание правильного употребления синонимов.
Вот еще несколько примеров использования синонимов, которые, по нашему мнению, будут для вас интересны:
[концерты в спб 2010] «Санкт Петербург» выделен жирным как синоним «спб»
[пользователи жж] жирным выделены «Живой Журнал», а также английское название ресурса «LiveJournal»
[клуб квн] «Клуб Веселых и Находчивых» выделен жирным как синоним сокращения «квн»
[институт маи] «маи» расшифровывается как «Московский авиационный институт»
[академия маи] ну, а в этом случае мы считаем что «маи» это «Международная академия информатизации»
Термин «компьютерный язык» часто интерпретируется неправильно и понимается слишком узко. Давайте разберемся, что это такое на самом деле.
Почему компьютер нас понимает?
Под термином «компьютерный язык» понимают все языки, позволяющие взаимодействовать человеку и компьютеру. При этом различают языки, которые могут читать машины, и те, которые способны понимать люди.
Языки, понятные машинам, умеет читать процессор и, следовательно, выполняет отправленные с их помощью команды. В этом случае речь идет о так называемых машинных языках. Но есть еще и компьютерные языки, которые могут читать люди. К ним относятся, например, языки программирования. Они используют слова и символы человеческого языка — компьютер не может их ни прочесть, ни интерпретировать.
Чтобы сделать эти языки читаемыми для «железа», их необходимо перевести на машинный язык. Это может произойти в режиме реального времени с помощью интерпретатора или заранее с помощью ассемблера или компилятора.
Какие языки понимает компьютер?
Единого для всех компьютерного языка, как вы уже поняли из начала нашей статью, не существует. Есть очень длинный список разнообразных компьютерных языков, а наиболее известными среди них, вероятно, являются уже упомянутые языки программирования.
Скриптовые языки не переводятся предварительно компилятором в машинный код. Интерпретаторы делают их доступными для чтения компьютером, и это позволяет выполнять определенные действия. К скриптовым языкам относятся Python и Javascript.
Еще одной формой языков программирования являются так называемые высокоуровневые языки. Здесь информация программируется с помощью кода, который может прочитать человек, а компилятор преобразует этот код в машинный. Примерами высокоуровневых языка являются C и C++.
В отличие от выше перечисленных языки разметки не используют программы, поэтому они не преобразуются в машинный код. Они применяются для создания таких документов, с которыми сможет работать какая-либо программа. Классическими примерами языков разметки являются HTML, XML или CSS.
Есть еще языки баз данных, такие как SQL. Они не относятся непосредственно к языкам программирования, но управляют компьютером при выполнении запросов в базе данных.
Если вы хотите научиться программировать самостоятельно, то в этой статье вы найдете ценные советы для начинающих программистов.
При работе с текстовыми документами на компе, может потребоваться изменить язык с русского на иностранный. Для пользователей, проводящих много времени за компьютерной техникой, это не составляет труба. Но некоторые задаются вопросом, как на компьютере поменять язык?
Традиционный метод
Переключить способ ввода языка информации можно горячими клавишами на клавиатуре. Традиционно устройства запрограммированы на кнопки «левый Alt + Shift». Допустимы и следующие комбинации: «Shift+Ctrl».
Чтобы поменять язык ввода, рекомендуется попробовать оба варианта и методом «научного тыка» определить какой подходит для данного ПК.
Программный способ
Если горячие клавиши не подходят, можно поменять способ ввода с помощью языковой панели, которая встроена в систему по умолчанию. Она находится на нижней панели рабочего поля.
При нажатии на нее, появляется список, в котором сложно выбрать желаемый вариант ввода текста. Замена выбранного варианта производится по той же схеме.
Установить язык на панели проще, когда необходимо добавить язык из большого списка предложенных вариантов.
Рассматриваемая панелька, позволяющая поставить русский язык, может быть вынесена на рабочий стол, чтобы восстановить на компьютере языковую панель на первоначальное место, необходимо нажать на кнопку сворачивания, располагающуюся в верху окна.
Настройка языка через панель управления
Включить английский язык не сложно, так как он является стандартным для всех устройств. Но может потребоваться:
- установить белорусский язык;
- убрать китайский язык;
- добавить украинский язык.
Для этого следует перейти в панель устройств, находящуюся в меню «Пуск».
Выбрать «Часы, метод ввода и регионы».
Затем зайти в раздел «Метод ввода и региональные стандарты».
Теперь переходим непосредственно в настройки клавиатуры.
Кликаем на кнопку «Добавить» и открывается окно с предложенными вариантами языка.
В предложенном списке выбираем необходимые варианты ввода текста и нажимаем на кнопку «ОК».
Обратите внимание! При создании инструкции применялся ноутбук с операционной системой виндовс 7. Переключать способы ввода на других устройствах можно идентичными способами.
Если коротко, то, чтобы поменять язык на клавиатуре, нужно:
- Нажать кнопку Пуск и выбрать пункт Панель управления.
- В разделе «Часы, язык и регион» выбрать пункт «Изменить клавиатуры или другие средства ввода».
- Выбрать Изменить клавиатуры.
- Выбрать язык из раскрывающегося списка.
Для смены языковых вариаций можно устанавливать специальные программы, которые доступны на просторах интернета. Они работают по принципу описанной выше панели и позволяют быстро сменить метод ввода, а некоторые могут изменять его автоматически.
Читайте также: