Выучите базовые принципы ЯП. Тут, конечно, все зависит от выбранного вами языка, однако есть у ЯП и общие моменты, исключительно для написания полезных программ важные. Чем раньше вы овладеете всеми этими понятиями и научитесь применять их на практике, тем лучше для вас и ваших навыков программиста. Итак, вот лишь некоторые из вышеупомянутых «моментов»:
Установите все необходимое ПО. Многим ЯП нужны компиляторы - программы, переводящие программный код в понятные для компьютера инструкции. Впрочем, есть и ЯП другого типа (вроде 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).
Что является сутью компьютерного языка? Зачем он нужен компьютерам? Почему в мире так много компьютерных языков?
Как для понимания принципов работы двигателя не нужно водить машину, так и для понимания ответа на эти вопросы не нужно программировать. Но для того, чтобы улучшить своё знание темы, необходимо понять как работает компьютер. Здесь даётся краткое объяснение.
Компьютеры являются цифровой электроникой. Их восприятие данных заключается в наличии или отсутствии напряжения в проводах. Отсутствие напряжение выглядит для компьютера как ноль, наличие - как единица. На самом деле, компьютеры не знают других цифр, так что в итоге ему приходится комбинировать 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 работает медленнее и требует интерпретатора для успешной работы.
You are not logged in. Log in and track your progress.
Под термином «компьютерный язык» понимают все языки, позволяющие взаимодействовать человеку и компьютеру. При этом различают языки, которые могут читать машины, и те, которые способны понимать люди.
Языки, понятные машинам, умеет читать процессор и, следовательно, выполняет отправленные с их помощью команды. В этом случае речь идет о так называемых машинных языках. Но есть еще и компьютерные языки, которые могут читать люди. К ним относятся, например, языки программирования. Они используют слова и символы человеческого языка - компьютер не может их ни прочесть, ни интерпретировать.
Чтобы сделать эти языки читаемыми для «железа», их необходимо перевести на машинный язык. Это может произойти в режиме реального времени с помощью интерпретатора или заранее с помощью ассемблера или компилятора.
Единого для всех компьютерного языка, как вы уже поняли из начала нашей статью, не существует. Есть очень длинный список разнообразных компьютерных языков, а наиболее известными среди них, вероятно, являются уже упомянутые языки программирования.
Скриптовые языки не переводятся предварительно компилятором в машинный код. Интерпретаторы делают их доступными для чтения компьютером, и это позволяет выполнять определенные действия. К скриптовым языкам относятся Python и Javascript.
Еще одной формой языков программирования являются так называемые высокоуровневые языки. Здесь информация программируется с помощью кода, который может прочитать человек, а компилятор преобразует этот в машинный. Примерами высокоуровневых языка являются C и C++.
В отличие от выше перечисленных языки разметки не используют программы, поэтому они не преобразуются в машинный код. Они применяются для создания таких документов, с которыми сможет работать какая-либо . Классическими примерами языков разметки являются HTML, XML или CSS.
Есть еще языки баз данных, такие как SQL. Они не относятся непосредственно к языкам программирования, но управляют компьютером при выполнении запросов в базе данных.
Если вы хотите научиться программировать самостоятельно, то в вы найдете ценные советы для начинающих программистов.
1. ВведениеВнедрение ЭВМ во все сферы человеческой деятельности требует от специалистов разного профиля овладения навыками использования вычислительной техники. Повышается уровень подготовки студентов вузов, которые уже с первых курсов приобщаются к использованию ЭВМ и простейших численных методов, не говоря уже о том, что при выполнении курсовых и дипломных проектов применение вычислительной техники становится нормой в подавляющем большинстве вузов.
Вычислительная техника используется сейчас не только в инженерных расчетах и экономических науках, но и таких традиционно нематематических специальностях, как медицина, лингвистика, психология. В связи с этим можно констатировать, что применение ЭВМ приобрело массовый характер. Возникла многочисленная категория специалистов - пользователей ЭВМ, которым необходимы знания по применению ЭВМ в своей отрасли - навыки работы с уже имеющимся программным обеспечением, а так же создания своего собственного ПО, приспособленного для решения конкретной задачи. И здесь на помощь пользователю приходят описания языков программирования.
Язык программирования - формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя (например, компьютера). Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими при различных обстоятельствах.
Со времени создания первых программируемых машин человечество придумало уже более двух с половиной тысяч языков программирования. Каждый год их число пополняется новыми. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
Создатели языков по-разному толкуют понятие язык программирования . Среди общиx мест, признаваемых большинством разработчиков, находятся следующие:
· Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.
· Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время как естественные языки используются лишь для общения людей между собой. В принципе, можно обобщить определение "языков программирования" - это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат также для обмена информацией.
· Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.
Наиболее эффективное применение ВТ нашла при проведении трудоемких расчетов в научных исследованиях и инженерных расчетах. При решении задачи на ЭВМ основная роль все-таки принадлежит человеку. Машина лишь выполняет его задания по разработанной программе. роль человека и машины легко уяснить, если процесс решения задачи разбить на перечисленные ниже этапы.
Постановка задачи. Этот этап заключается в содержательной (физической) постановке задачи и определении конечных решений.
Построение математической модели. Модель должна правильно (адекватно) описывать основные законы физического процесса. Построение или выбор математической модели из существующих требует глубокого понимания проблемы и знания соответствующих разделов математики.
Разработка ЧМ. Поскольку ЭВМ может выполнять лишь простейшие операции, она «не понимает» постановки задачи, даже в математической формулировке. Для ее решения должен быть найден численный метод, позволяющий свести задачу к некоторому вычислительному алгоритму. В каждом конкретном случае необходимо выбрать подходящее решение из уже разработанных стандартных.
Разработка алгоритма. Процесс решения задачи(вычислительный процесс) записывается в виде последовательности элементарных арифметических и логических операций, приводящей к конечному результату и называемой алгоритмом решения задачи.
Программирование. Алгоритм решения задачи записывается на понятном машине языке в виде точно определенной последовательности операций - программы. Процесс обычно производится с помощью некоторого промежуточного языка, а ее трансляция осуществляется самой машиной и ее системой.
Оладка программы. Составленная программа содержит разного рода ошибки, неточности, описки. Отладка включает контроль программы, диагностику (поиск и определение содержания) ошибок, и их устранение. Программа испытывается на решении контрольных (тестовых) задач для получения уверенности в достоверности результатов.
Проведение расчетов. На этом этапе готовятся исходные данные для расчетов и проводится расчет по отлаженной программе. при этом для уменьшения ручного труда по обработке результатов можно широко использовать удобные формы выдачи результатов в виде текстовой и графической информации, в понятном для человека виде.
Анализ результатов. Результаты расчетов тщательно анализируются, оформляется научно-техническая документация.
Процесс работы компьютера заключается в выполнении программы, то есть набора вполне определённых команд во вполне определённом порядке. Машинный вид команды, состоящий из нулей и единиц, указывает, какое именно действие должен выполнить центральный процессор. Значит, чтобы задать компьютеру последовательность действий, которые он должен выполнить, нужно задать последовательность двоичных кодов соответствующих команд. Программы в машинных кодах состоят из тысячи команд. Писать такие программы – занятие сложное и утомительное. Программист должен помнить комбинацию нулей и единиц двоичного кода каждой программы, а также двоичные коды адресов данных, используемых при её выполнении. Гораздо проще написать программу на каком-нибудь языке, более близком к естественному человеческому языку, а работу по переводу этой программы в машинные коды поручить компьютеру. Так возникли языки, предназначенные специально для написания программ, - языки программирования.
Имеется много различных языков программирования. Вообще-то для решения большинства задач можно использовать любой из них. Опытные программисты знают, какой язык лучше использовать для решения каждой конкретной задачи, так как каждый из языков имеет свои возможности, ориентацию на определённые типы задач, свой способ описания понятий и объектов, используемых при решении задач.
Всё множество языков программирования можно разделить на две группы: языки низкого уровня и языки высокого уровня.
К языкам низкого уровня относятся языки ассемблера (от англ. toassemble – собирать, компоновать). В языке ассемблера используются символьные обозначения команд, которые легко понятны и быстро запоминаются. Вместо последовательности двоичных кодов команд записываются их символьные обозначения, а вместо двоичных адресов данных, используемых при выполнении команды, - символьные имена этих данных, выбранные программистом. Иногда язык ассемблера называют мнемокодом или автокодом.
Большинство программистов пользуются для составления программ языками высокого уровня. Как и обычный человеческий язык, такой язык имеет свой алфавит – множество символов, используемых в языке. Из этих символов составляются так называемые ключевые слова языка. Каждое из ключевых слов выполняет свою функцию, так же как в привычном нам языке нам языке слова, составленные из букв алфавита данного языка, могут выполнять функции разных частей речи. Ключевые слова связываются друг с другом в предложения по определённым синтаксическим правилам языка. Каждое предложение определяет некоторую последовательность действий, которые должен выполнить компьютер.
Язык высокого уровня выполняет роль посредника между человеком и компьютером, позволяя человеку общаться с компьютером более привычным для человека способом. Часто такой язык помогает выбрать правильный метод решения задачи.
Перед тем как писать программу на языке высокого уровня, программист должен составить алгоритм решения задачи, то есть пошаговый план действий, который нужно выполнить для решения этой задачи. Поэтому языки, требующие предварительного составления алгоритма, часто называют алгоритмическими языками.