Приоткрывая завесу над основами программирования: языки, синтаксис, операторы

Приоткрывая завесу над основами программирования: языки, синтаксис, операторы

4 ноября 2022 г.

Пролог

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

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

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

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

Предисловие

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

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

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

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

Изучение основ программирования также не зависит от языка. На самом деле, это общая концепция, которая означает, что мы можем использовать другие языки программирования при его изучении. Я предлагаю вам выбрать те языки, которые очень популярны в технической индустрии, такие как Java, Python, JavaScipt, Rust, Go и т. д.

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

Типы языков

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

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

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

Уровень

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

Уровни в контексте ЯП (или языков программирования) указывают на то, насколько синтаксис, о котором я сейчас расскажу, читается или понимается программистами-людьми. Это означает, что не все языки читаемы для нас, по крайней мере, на первый взгляд.

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

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

Высокий

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

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

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

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

PL этой категории не зависят от машины, на которой запускается код, и основное внимание уделяется только созданию исходного кода для решения проблем, без акцента на том, будет ли машина его запускать или нет. Известными примерами являются Java, C++, C#, JavaScript, Python, Rust и многие другие.

Простой оператор с использованием Java, который отображает что-то на экране

String greeting = "Hello, World.";

// Prints "Hello, World."
System.out.println(greeting);

<цитата>

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

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

Низкий

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

Фоновое выполнение этих PL также специфично и зависит от машины, на которой он выполняется, которая может быть простой или сложной.

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

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

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

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

Простой оператор с использованием сборки, который отображает что-то на экране

org 0x100  

mov dx, msg  
mov cx, len  
mov bx, 1  
mov ah, 0x40  
int 0x21  

mov ah, 0x4c  
int 0x21  

msg db 'Hello, World.', 0x0d, 0x0a  
len equ $ - msg

Введено

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

Это не означает, что статические языки строги с точки зрения синтаксиса, не означает, что они лучше динамических, и наоборот.

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

Динамический

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

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

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

Простой оператор с использованием C++, который объявляет переменные с типами данных

string myFullName = "John Rommel Octaviano";  
char myMiddleInitial = 'P';  
int myAge = 28;  
bool isHuman = true;

Статический

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

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

Это заставляет ЯП этого типа создавать надежный код с единым стандартом использования типов относительно подходящим образом.

Простой оператор с использованием JavaScript, который объявляет переменные без типов данных

let myFullName = "John Rommel Octaviano";  
let myMiddleInitial = 'P';  
let myAge = 28;  
let isHuman = true;

Синтаксис

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

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

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

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

Можно сказать, что это обучение на основе прогресса.

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

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

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

Как, например, синтаксис JavaScript и C# сильно вдохновлен синтаксисом C и C++. Концепт также может присутствовать в одном языке в других.

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

<declaration type> <name> = <value>;  

<data type> <name> = <value>;  

if (condition) {  
    <statements>  
}  

for(<initialization>; <condition>; <initialization modification>) {  
    <statements>  
}

<цитата>

Примечание

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

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

Зарезервированные ключевые слова

Большинство языков программирования имеют собственный синтаксис, представленный с помощью таких английских слов, как for, do, while, if, else, switch, break, continue и многих других. Они называются зарезервированными ключевыми словами, и в большинстве случаев их нельзя использовать в пользовательских случаях использования, таких как присвоение имени чему-либо и т. д.

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

Базовый вариант использования, показывающий, что эти зарезервированные ключевые слова имеют уникальное назначение в определенном языке, таком как JavaScript

let foo = 'Mamba';  
let bar = 'Coco';  

if (foo === bar)  
console.log('They are both equal!');  
else  
console.log('They are not equal!');  

for (let i = 0; i <= 9; i++) {  
console.log(`${foo} & ${bar}!`);  
}

<цитата>

Примечание

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

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

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

Утверждения и выражения

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

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

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

Базовая операция сложения как пример комбинации операторов и выражений с использованием Java

int numOne = 43;  
int numTwo = 45;  
int sum = 0;  

sum = numOne + numTwo;

Блоки

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

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

Базовый код, который определяет, является ли год, введенный пользователем, високосным или не использует C++

int year;  

cout << "Enter a year: ";  
cin >> year;  

if (year % 400 == 0) {  
cout << year << " is a leap year.";  
}  
else if (year % 100 == 0) {  
cout << year << " is not a leap year.";  
}  
else if (year % 4 == 0) {  
cout << year << " is a leap year.";  
}  
else {  
cout << year << " is not a leap year.";  
}  

return 0;

Условия

Реальные условия и условия в программировании работают одинаково. Это операторы, производящие выражения, которые заставляют наш компьютер решать, будут ли они возвращать только 2 типа значений — true или false. В зависимости от возвращаемого значения, последующие задачи будут выполняться в соответствии с ними.

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

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

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

Кусочки кода для демонстрации вариантов использования условий

if (foo == bar)...  

while(foo == bar)...  

for(int i = 0; foo <= bar; i++)...

Комментарии

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

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

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

Создание кода с использованием Python для решения квадратных уравнений

# Solve the quadratic equation ax**2 + bx + c = 0

# import complex math module
import cmath

a = 1
b = 5
c = 6

# calculate the discriminant
d = (b**2) - (4*a*c)

# find two solutions
sol1 = (-b-cmath.sqrt(d))/(2*a)
sol2 = (-b+cmath.sqrt(d))/(2*a)

# displays the result
print('The solution are {0} and {1}'.format(sol1,sol2))

Эпилог

И все. Это разные типы языков программирования, а также синтаксис и зарезервированные ключевые слова. Мы занимаемся типами PL в зависимости от их уровня, который в основном не ограничивается их сложностью. Мы также взялись за их строгость и лаконичность как отличительные черты. Кроме того, мы рассмотрели синтаксис и зарезервированные ключевые слова в языке.

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


Конечным результатом любого истинного обучения является изменение.

Лео Бускалья


Также опубликовано здесь


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE