Поговорим с ПК: что такое компьютерный язык? Программирование аркадных игри обучение информатике Уровни языков программирования

1. Введение

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

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

2. Что такое язык программирования

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

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

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

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

· Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время как естественные языки используются лишь для общения людей между собой. В принципе, можно обобщить определение "языков программирования" - это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат также для обмена информацией.

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

3. Этапы решения задачи на ЭВМ.

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

Постановка задачи. Этот этап заключается в содержательной (физической) постановке задачи и определении конечных решений.

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

Разработка ЧМ. Поскольку ЭВМ может выполнять лишь простейшие операции, она «не понимает» постановки задачи, даже в математической формулировке. Для ее решения должен быть найден численный метод, позволяющий свести задачу к некоторому вычислительному алгоритму. В каждом конкретном случае необходимо выбрать подходящее решение из уже разработанных стандартных.

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

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

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

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

Анализ результатов. Результаты расчетов тщательно анализируются, оформляется научно-техническая документация.

4. Для чего нужны языки программирования

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

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

Всё множество языков программирования можно разделить на две группы: языки низкого уровня и языки высокого уровня.

К языкам низкого уровня относятся языки ассемблера (от англ. toassemble – собирать, компоновать). В языке ассемблера используются символьные обозначения команд, которые легко понятны и быстро запоминаются. Вместо последовательности двоичных кодов команд записываются их символьные обозначения, а вместо двоичных адресов данных, используемых при выполнении команды, - символьные имена этих данных, выбранные программистом. Иногда язык ассемблера называют мнемокодом или автокодом.

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

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

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

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

Однако основные принципы работы компьютера, заложенные во времена их рождения, действуют до сих пор. Данные пере даются с помощью сигнала методом "имеется сигнал или нет". Так появился "бит" . Бит - это единица информации, которая может принимать значение 0 или 1. Восемь бит объединяются в байт, один байт равен 8 битам. Число 8 появилось из-за того что первые компьютеры были восьмиразрядными и могли работать одновременно только с 8 разрядами, например, 01011001. Первые нули можно убирать.

В один байт можно записать любое число от 0 до 255. Указанный диапазон чисел очень мал, поэтому чаще используют более крупные диапазоны: два байта = слово, два слова = двойное слово.

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

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

Шестнадцатеричная система выглядит по-другому. Каждый разряд со­держит шестнадцать состояний. Поэтому один разряд может принимать значения: 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D , Е, F . Буква "А" соответствует цифре 10 в десятичной системе, "В" - 11 и т. д.

Например, число 1 B в шестнадцатеричной системе равно 27 в десятичной.

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

С числами с плавающей точкой работа идёт совершенно не так, рассматривать это мы не будем.

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

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

1.2. Машинный язык

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

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

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

Например, команда сложения двух регистров в шестнадцатеричной системе выглядит так: $03С3. Это мало о чем го­ворит, и запомнить такую команду очень тяжело. Намного проще написать "сло­жить число 1 и число 2".

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

1.3. История языков программирования

Язык, на котором пишется программа, называется языком программирования.

Первым компилятором был Assembler (переводится как "сборщик"). Писать на нем почти так же сложно, как и в ма­шинных кодах, но теперь уже использовались не числа, а понятные человеку слова .

Текст на рисунке можно разделить на три колонки:

· адрес инструкции;

· машинный код инструкции;

· код на языке Ассемблера.

Например, команда копирования регистров выглядела так: mov еах, ebx . В данном случае mov - это команда языка программирования, еах и ebx - имена регистров.

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

После создания ассемблера языки программирования стали появляться один за другим. Так появились С, ADA , FoxPro , Fortran , Basic , Pascal и др. Некоторые из них были предназначены только для обучения, другие были ориентиро­ваны на профессиональных программистов.

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

Затем получило развитие объектно-ориентированное программирование. Язык С превратился в C++, Pascal в Object Pascal и т. д.

Последней крупной революцией, происходящей в программировании, считается переход на визуальное программирование. Этот переход происходит в настоящее время. Визуальность дает еще более удобные средства разработки для бы­строго написания кода, но проигрывает ООП по быстроте работы. Одни из часто используемых языков, поддерживающих визуальное программирование, являются Delphi и C #, хотя прогресс не стоит на месте и визуальные компоненты появляются для многих других языков.

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

1.4. Исполнение машинных команд

Кроме байта существуют и другие размерности:

· 1 килобайт = 1024 байт;

· 1 мегабайт = 1024 килобайт;

· 1 гигабайт = 1024 мегабайт.

· 1 терабайт = 1024 гигабайт.

· и т.д.

В компьютере большинство значений являются степенью числа 2, потому что компьютер оперирует двоичной системой, и таким образом можно максимально эффективно использовать его воз­можности. Именно из-за этого при расчёте размерностей используется 1024 (2 в степени 10).

Рассмотрим некоторые понятия.

Сегмент - это область внутренней памяти компьютера.

Когда операционные системы были 16-битными, процессор не мог работать с памя­тью размером более 64 килобайт, потому что это максимальный размер области памяти, который можно адресовать, используя в этих целях адрес длиной в два байта. Поэтому память делилась на сегменты по размеру и по назначению. В дан­ный момент используются 32-разрядныю ОС, которая может адресовать до 4 Гбайт оперативной памяти и 64-разрядные ОС. Поэтому можно сказать, что память стала сплошной. Однако деление ее по назначению все-таки осталось.

Существуют следующие сегмент s ы памяти:

· сегмент кода - область памяти, в которую загружается машинный код, который бу­дет потом выполняться процессором;

· сегмент данных - область памяти для хранения данных;

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

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

Регистр - ячейка памяти в процессоре. Её размер зависит от разрядно­сти. В 32-разрядных процессорах ячейки 32-битные, но есть и 64-битные. Таких регистров у процессора несколько, и каждый из них предназначен для определен­ных целей. Существуют также регистры общего значения, которые программа мо­жет использовать на свое усмотрение.

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

Здесь я предоставлю вам советы о том, как научиться писать компьютерные программы по своему усмотрению.

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

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

Как научиться программировать?

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

Изучите языки программирования

Во-первых, вам нужен настольный или портативный компьютер, что позволяет вам читать и выполнять свои программы. Программирование это умение общаться с аппаратной конфигурацией компьютера для выполнения различных вычислительных задач. Компьютер понимает только машинный язык, написанный на 1 и 0. Для нас, людей, для общения с компьютерами, были созданы языки программирования, чей код может быть преобразован в машиночитаемой форме составителями. Есть целый ряд языков программирования, которые изменяются в своих приложениях. Вам придется изучить по крайней мере дюжину основных языков программирования, который включает в себя C, C + +, Java, Perl, Lisp и Python.

Чтобы научиться основам программирования, начните обучение C или Python в начале. Используйте онлайн-ресурсы и книги по программированию, чтобы получить основы. Установите программы, по написанию кода и выполняйте их на вашем компьютере. Работайте на примерах и задачах, предусмотренных в книгах и электронных учебниках, чтобы написать свой собственный код. Одна из лучших книг, чтобы начать обучение «C» является « ». Еще одна хорошая книга « ».

Получить навык «С», а затем приступить к объектно-ориентированному программированию, что стало возможным благодаря C + +. Тогда получите навыки Java, Perl и , которые широко используются для веб-разработки. Изучите HTML, если вы планируете работать в области веб-разработки. Как вы можете видеть, есть много, материалов для изучения, и это займет не менее 5 - 6 лет, чтобы получить навыки в большинстве языков.

Начните писать код

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

Научитесь запускать Linux или Unix

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

Компилятор – программа выполняющая компиляцию (трансляцию программы составленной на исходном коде).

Ученик - Эксперт - Программист

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

Читайте правила написание кода и продолжайте совершенствоваться

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

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

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

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

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

Низкоуровневый язык программирования (язык программирования низкого уровня) - язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft .NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских).

Языки программирования низкого уровня

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

Рис.1. Пример машинного кода и представления его на ассемблере

Трансляторы делятся на:

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

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

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

Преимущества

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

Недостатки

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

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

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

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

Ассемблер - язык низкого уровня, что широко применяется до сих пор.

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.

Программы и игры