Царапины на поверхности программирования (часть 1)

Здесь мы изучаем основные идеи и навыки, которые вам всегда понадобятся при программировании на любой платформе с любым языком. Теперь есть десятки языков программирования, из которых вы можете выбирать, такие как JavaScript, C, Ruby и python.

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

что такое программирование?

Возможно, вы слышали такую ​​фразу раньше

«Компьютерная программа - это набор инструкций»

Похоже, одна из этих фраз может быть технически верной и бесполезной, как будто человеческий мозг на 80% состоит из воды. Потому что сначала вы слышите эту фразу и думаете, что в жизни все хорошо, а потом видите сложную программу вроде Photoshop или 3D-игры , и вы думаете «Да, но это не может быть просто набором инструкций», но это именно то, что есть, все они.

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

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

«Вам нужно повернуть направо, затем проехать одну милю, затем повернуть налево и т. Д.»

Конкретный, Индивидуальный, Простой, Четкие, автономные инструкции, если вы перепутаете их, вы получите совершенно разные результаты. «повернуть направо, затем проехать одну милю» - это не то же самое, что «проехать одну милю, затем повернуть направо».

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

Но на каком языке?

иногда вы выбираете язык, а иногда он выбирается за вас. С момента появления вычислений существовали сотни языков программирования, но есть десятки популярных языков, которыми пользуется большое количество людей, и есть активное сообщество, такое как C, C ++ , C #, Java, JavaScript, Perl , PHP, Python, Objective-C , Ruby и Visual Basic. После того, как вы освоите основы одного из них, вам будет легче освоить дополнительные языки. В этой статье я немного углублюсь в JavaScript.

Но почему нет только одного компьютерного языка? Почему существует так много языков, если все, что мы делаем, - это пишем простые инструкции для компьютера?

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

Таким образом, все эти языки на самом деле являются компромиссом. Они изобрели языки. Они просто пытаются установить мост между нами и компьютерным оборудованием. Некоторые из этих языков действительно близки к машинному коду. Ближайшее из них известно как язык ассемблера, это язык C и обе темы под названием Языки низкого уровня, а также Языки высокого уровня, такие как C ++ , JavaScript и т. д. Но какой бы исходный код мы ни писали на языках высокого уровня, перед запуском он должен преобразоваться в машинный код.

Итак, чтобы начать писать исходный код, нам нужно понять три вещи:

1- Как это написать?

2- Как этот исходный код преобразован в машинный код?

3- Как на самом деле процессор запускает его или выполняет нашу программу?

Написание исходного кода

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

Часто используются разные расширения файлов, такие как «.js» для JavaScript или «. cpp» для C ++, но они не отличаются от обычных текстовых файлов «.txt». Вы видите, что вы можете работать в обычном текстовом редакторе, и время от времени это полезно, не означает, что вам нужно писать каждое отдельное утверждение самостоятельно, и вы, вероятно, не будете этого делать, потому что есть другие приложения, которые действительно могут вам помочь. напишите этот код и сделайте себе жизнь проще.

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

Кроме того, у нас есть IDE Интегрированные среды разработки. Это большие программы, включающие текстовый редактор хорошего программиста, но обычно добавляющие целый набор функций для профессионалов. разработка. некоторыми примерами IDE являются Xcode от Apple на Mac или Visual Studio от Microsoft на Windows.

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

Скомпилированные и истолкованные языки

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

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

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

Итак, какой из них лучше? Скомпилированные или интерпретируемые языки?

У них обоих есть свои плюсы и минусы. Преимущества скомпилированного кода. Как только он скомпилирован, он сразу готов к запуску, и вы можете отправить его 100 или 1000 разным людям. Готово к работе. Его можно оптимизировать для ЦП, поэтому он действительно может быть быстрее, и вам не нужно отправлять исходный код всем, что может быть хорошо. Однако недостатком является то, что если я скомпилирую его на ПК, этот исполняемый файл не будет работать на Mac. его часто необходимо компилировать отдельно для ЦП другого типа.

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

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

ЯЗЫКОВЫЕ ПРИМЕРЫ

Скомпилировано: C, C ++, Objective-C

Интерпретация: PHP, JavaScript

Гибрид: Java, C #, VB.NET, Python.

Пожалуйста ❤ и поделитесь

Спасибо, что прочитали это! Надеюсь, эти несколько моментов сделают программирование менее запутанным. Если нет, я буду рад прояснить любые вопросы (или исправить любые ошибки, которые вы найдете здесь)

Я хочу помочь как можно большему количеству людей. Вы можете помочь мне, нажав на зеленый значок ❤, а также поделившись этой статьей в социальных сетях.