Задания к урокам 1 – 4 (сентябрь). Темы: «Языки программирования» - polpoz.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Партыка Т. Л., Попов И. И. Языки программирования: учеб пособие 1 48.19kb.
Обоснование выбора средств и методов разработки Выбор языка программирования 2 424.95kb.
Сочинение издательство «Просвета» (Болгария-Германия) представляет... 1 74.61kb.
Урок на тему «языки программирования» 1 77.51kb.
Народный календарь на сентябрь 2013 Народный календарь праздников... 1 87.41kb.
Программа государственного экзамена по направлению 010500. 62 прикладная... 1 55.03kb.
Биологическая олимпиада по биологии для учащихся 10-11 классов 1 58.2kb.
Производственно-экономические показатели апк ростовской области и... 1 67.21kb.
№1 Сентябрь 2010 газета моу сош №8 1 43.5kb.
Германские языки 1 15.09kb.
Программа для магистратуры специальностей: 6М020500 Филология: тюркские... 1 97.42kb.
Литература В. Я. Коровина. Литература. 5 класс. 2 части. М. 1 72.89kb.
1. На доске выписаны n последовательных натуральных чисел 1 46.11kb.

Задания к урокам 1 – 4 (сентябрь). Темы: «Языки программирования» - страница №1/1

Задания к урокам 1 – 4 (сентябрь).
Темы: «Языки программирования», «Интерпретаторы, их виды», «Знакомство с алгоритмическим языком программировании Бейсик».
Задание состоит из нескольких частей:

  • прочитайте лекционный материал (с. 1 - 8);

  • выучите термины к теме, приведенные в словаре ( с. 10);

  • самостоятельно найдите и прочитайте дополнительную литературу по теме (см. контрольный вопрос 5);

  • письменно ответьте на контрольные вопросы (с. 12) и пришлите ответ на электронный адрес школы, в письме в разделе «Тема» укажите «Кавериной Н.Е информатика». В начале текста письма укажите свою фамилию, класс, дату выполнения задания и номера заданий (1-4). Вопросы копируйте, а затем записывайте ответы на них.


ВНИМАНИЕ! Задание должно быть сдано до 10 октября.

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

Мы уже знаем, что алгоритм, записанный на языке программирования, называется программой. А что же мы понимаем под языком программирования?



ЯЗЫК ПРОГРАММИРОВАНИЯ - это совокупность на­бора символов (алфавит) системы, правил образова­ния (синтаксис) и истолкования конструкций из символов (семантика) для задания алгоритмов с ис­пользованием символов естественного языка.

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

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

Именно такие машинные и полумашинные языки про­граммирования относят к языкам низкого уровня. Их еще называют машинно-ориентированными языками (сюда относят и автокод).

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

Именно такие языки и ориентированы на описание алгоритмов. Поэтому их еще называют алгоритмически­ми языками.

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

Интерпретаторы.

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

Существуют два способа трансляции:

1. ИНТЕРПРЕТАЦИЯ (Interpretation) - метод выпол­нения в ЭВМ программы, заданной на языке програм­мирования, при котором инструкция исходной про­граммы переводится и сразу выполняется.

2. КОМПИЛЯЦИЯ (Compile - собирать) - метод выполнения в ЭВМ программы, но не сразу, а лишь тогда, когда собран перевод всего текста программы.

Разницу между компиляцией и интерпретацией мож­но пояснить с помощью аналогии. Фармацевты в аптеке приготовляют микстуру по старинному рецепту, написан­ному на латыни. Есть два пути: можно сначала перевести (скомпилировать) рецепт на родной язык и лишь затем готовить лекарство на родном языке. А можно, по мере чтения перевода рецепта, сразу готовить лекарство, но не записывать сам текст перевода (т.е. только интерпрети­ровать). В последнем случае мы не получим текста ре­цепта на родном языке, а сразу получим микстуру, правда, если лекарство нужно готовить несколько раз, рецепт придется переводить многократно.

Интерпретация используется в простых языках, где тре­буется несложная трансляция (Бейсик), или там, где ком­пиляция слишком сложна или даже невозможна (язык ЛИСП). Часто используют оба эти способа совместно: ин­терпретатор - для отладки и компилятор для трансля­ции отлаженной программы.

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

Итак, в 1955 году увидел свет первый алгоритмичес­кий язык Фортран. Он использовался для решения науч­но-технических и инженерных задач. Слово "Фортран" образовано от начальных слогов английских слов - for­mula translator (переводчик формул). Он был разработан сотрудниками фирмы IBM под руководством Джона Бэкуса. Основным назначением этого языка является програм­мирование численных расчетов на ЭВМ.

Как и многие естественные языки (украинский, рус­ский, английский и т.д.), Фортан (и другие языки) имеет много "диалектов" (их называют версиями), различающих­ся правилами записи некоторых команд, но по сути оди­наковых.

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

Затем в 1960 г. появился Алгол (Algoritmic language -алгоритмический язык), также ориентированный на на­учное применение, в него было введено множество новых понятий, подхваченных позднейшими языками, например, понятие блочной структуры.

Также при поддержке фирмы IBM появился язык Ко­бол (Cobol - сокращенное от английских слов Comnon business oriented language - общепринятый деловой ори­ентированный язык). Он был ориентирован на решение экономических задач, а точнее - на обработку информа­ции.

Язык Бейсик (Basic - beginners all-parpouse sumbolic instraction code, что в переводе с английского означает "многоцелевой язык символических инструкций для на­чинающих") был разработан профессорами Дартмутского колледжа (США) Т.Куртцем и Дж. Кемени в 1965 году для обучения студентов, незнакомых с вычислительной техникой. Этот язык, напоминающий Фортран, но более простой, быстро стал очень популярным. Особенно его по­пулярность повысилась благодаря "взрыву микроин­форматики" - появлению персональных микрокомпьюте­ров, где Бейсик стал основным языком программирования.

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

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

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

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

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

В 1967-1968 гг. появился язык PL/1 (Programming language - уни­версальный программно-ориентиро­ванный). Он также был создан на

фирме IBM, но уже в качестве универсального языка про­граммирования. Этот язык, как языки программирова­ния СИ, Ада и Паскаль, может использоваться как для научных задач, так и для задач управления. Он очень мощный, но и очень сложный, используется лишь в выс­ших учебных заведениях и научно-исследовательских центрах.

В 1970 г. профессор Никлаус Вирт создал в Цюрих­ском политехническом университете язык Паскаль (Pa­scal). Создатель языка назвал его в честь Блеза Паскаля - первого конструктора устройства, которое теперь отно­сится к классу цифровых вычислительных машин. Он создавался как язык, который, с одной стороны, был бы хорошо приспособлен для обучения программированию, а с другой — давал бы возможность эффективно решать самые разнообразные задачи на современных ЭВМ. При создании этого языка Вирт большое внимание уделял хо­рошему стилю программирования (так называемое струк­турное программирование), благодаря которому конст­рукции Паскаля позволяют писать надежные, легко проверяемые программы с ясной и четкой структурой.

В 1980 г. появился язык Ада. Назван он в память об Аде Лавлейс - дочери английского поэта Лорда Байрона, первой программистки в истории вычислительной тех­ники. Он был создан во Франции по заказу американского министерства обороны как универсальный язык программирования. Это самый новый и самый мощ­ный из языков программирования, он унаследовал каче­ства языков Паскаль и Алгол-68 и дополнительно приоб­рел многие другие качества: системное программирование, параллельность и т.д.

Языки Лисп (List proessing language - язык обработ­ки списков), разработанный американским профессором Джоном Маккарти в 1961 г., и Пролог (Prоlog — pro-grammation en logique - логическое программирование), разработанный Колмероэ и другими учеными универси­тета Люммини во Франции в 1973 г., - это основные язы­ки для задач, связанных с искусственным интеллектом. Лисп оперирует списками (цепная последовательность элементов), а Пролог - деревьями (логическими разветв­лениями).

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

Существует огромное множество специализированных языков, позволяющих эффективно решать задачи в не­которых областях: моделирования (языки Симула, Сим-крит и GPSS), управления аппаратурой (ФОРТ), для на­писания системных программ (СИ), написания баз данных (Кодасил), обучения программированию (Лого, Робик, алгоритмический язык А.П.Ершова) и другие.

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

Почему избрали Бейсик?

Всех собеседников компьютера можно подразделить на три большие группы:



  1. Системные программисты (их меньшинство) созда­ют программы, облегчающие труд других программистов, например, трансляторы, операционные системы.

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

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

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

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

- все современные ЭВМ (в том числе и персональные)

"понимают" этот язык без дополнительных загрузок. Как говорят, язык уже "зашит в сознании", а точнее - в памя­ти всех типов машин (в ПЗУ). Большинство из них гото­вы общаться на этом языке при первом включении элект­ропитания;



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

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

  • в нем имеется широкая возможность использовать основные логические управляющие структуры: операторы ветвления и операторы цикла;

  • в него, как правило, встраиваются удобные функции для работы с экраном дисплея, клавиатурой, внешними накопителями, принтерами, коммуникационными канала­ми. Это позволяет относиться к Бейсику, как к "продол­жению" аппаратуры ПЭВМ;

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

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

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

Бейсик поставляется в придачу к PC-DOS без дополни­тельной платы (ведь он является собственностью фирмы IBM); неудивительно, что это один из самых популярных языков персональных компьютеров.



Словарь терминов к заданию

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

Различают внутреннее (системное) и внешнее (проблем­ное, прикладное) программное обеспечение ЭВМ.

- Системное ПО — главными частями являются опе­рационная система и система программирования.

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

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

- Проблемное (прикладное) программное обеспечение

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

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

- Транслирующая программа (транслятор) автомати­зирует процесс перевода текста программ с одного языка программирования на другой или с конкретного языка программирования на машинный язык.

- Компиляция - автоматическое составление машин­ной программы по исходной программе, записанной на языке программирования, выполняется транслятором-ком­пилятором.

- Компилятор - системная программа, осуществляю­щая трансляцию всей исходной программы в машинную.

- Интерпретация - метод выполнения в ЭВМ програм­мы, заданной на языке программирования, без перевода ее в машинную программу. Каждому элементарному дей­ствию, описанному на языке программирования, в ЭВМ соответствует своя машинная программа (подпрограмма).

- Системная программа-интерпретатор осуществляет последовательное выполнение команд исходной програм­мы без перевода их в машинный код (по мере ввода в ЭВМ).

- Интерпретатор - системная программа, осуществ­ляющая синтаксический контроль операторов исходной программы и последовательное выполнение ее команд (опе­раторов).

- Ассемблирование - процесс перевода исходной про­граммы, заданной на машинно-ориентированном языке (ассемблере), в машинную.

- Эмуляция — автоматическое составление машинной программы для ЭВМ другой архитектуры по исходной программе, заданной на языке программирования, посред­ством специальной системы (кросс-системы).

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

- Языки программирования ~ искусственно создан­ные языки для описания алгоритмов решения задач с по­мощью ЭВМ.

Различают языки низкого и высокого уровня.

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



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

- Набор данных (файл) - совокупность данных, со­стоящая из последовательных, логически связанных за­писей. Файлом может также считаться хранящаяся в па­мяти ЭВМ программа решения конкретной задачи.

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

Итак:


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


Контрольные вопросы.

  1. В чем состоит различие между языками высокого и низкого уровня?

  2. Перечислите достоинства и недостатки языков программирования разного уровня.

  3. Сравните (напишите что общего и чем различаются) интерпретация и компиляция.

  4. Верно ли, что интерпретаторы относятся к Hard части компьютера.

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

  6. Найдите в Интернете или литературных источниках информацию и ответьте на вопрос, какие современные модификации языка Бейсик вы знаете (напишите их названия и для каких целей они используются). Сделайте ссылки на источники.