Опубликован: 11.02.2005 | Уровень: специалист | Доступ: платный
Лекция 1:

Вводная лекция

Лекция 1: 12 || Лекция 2 >
Аннотация: Появление языков программирования. Примеры простейших программ. Возможность понимать программы без изучения языка. Как текст программы превращается в исполняемый код?

Введение

Программирование на языках появилось одновременно с вычислительными машинами. Конрад фон Цузе, построивший первую в мире серию программно-управляемых вычислительных машин (Германия, 1938-1944 г.), создал язык Plankalkul для записи программ. Квалифицированные сотрудники писали программы на этом языке, а техники затем вручную переводили их в машинные коды.

Сейчас наиболее широко используются традиционные языки. В их число входят FORTRAN, Pascal, C/C++, Ada, Java и т. п.

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

Но сначала необходимо привести в порядок уже имеющиеся у Вас знания и навыки программирования.

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

Задание 0. Перепишите написанную Вами ранее программу размером от 100 до 200 строк на неизвестный Вам традиционный язык (выбрать первый доступный из списка неизвестных: Ada, Modula-2, Алгол 68, Simula, FORTRAN). При этом запрещается детально изучать язык. Просмотрите описание и примеры, пользуйтесь прежде всего системой помощи транслятора.

Сравнение программ на разных языках

Начнем с рассмотрения примера. Всем данным текстам программ при исполнении соответствует действие, состоящее в распечатке строки "Прювет Волку!".

/*Язык C.*/
#include <stdio.h>
int main(void)
    {printf("Прювет Волку!");
     return 0;}
1.1.
//Java
public class HelloWorld {
    public static void main (
     String[] args) {
        System.out.println(
         "Прювет Волку!");
}}
1.2.
(*Паскаль*)
program First (Output);
begin
    writeln('Прювет Волку!')
end.
1.3.
comment Algol 68 comment
begin
    println('Прювет Волку!')
end
коммент Русский Алгол 68 коммент
начало
    печатать('Прювет Волку!')
конец
comment Еще два представления comment
(println('Прювет Волку!'))
(печатать('Прювет Волку!'))
1.4.
Лисп (режим исполнения файла программы):
( Print "Прювет Волку!" )
1.5.
Лисп (диалоговый режим):
[1]> (progn (setq x "Прювет Волку!" ) x)
1.6.
Рефал
$ENTRY GO{=<Prout 'Прювет Волку!'>;}
1.7.
Prolog
:-Print('Прювет Волку!').
1.8.

Сравним все эти программы. Что в них общего?

  1. Все они представлены в виде текстов: последовательностей символов, размещенных на нескольких строчках.
  2. В каждом языке имеется понятие строки (последовательности символов нефиксированной длины). Строки оформляются во всех языках примерно одинаково: с использованием кавычек как обрамляющих символов. Правда, вид кавычек меняется от языка к языку.
  3. Каждая из этих программ имеет конструкцию, выполнение которой приводит к распечатке строки.
  4. Все они при их выполнении делают одно и то же: печатают строку "Прювет Волку!".

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

Казалось бы, что все эти программы, естественно, после преобразования каждого текста в исполняемый код2В литературе и в обыденной речи программистов все время допускается двусмысленность. Программа - с одной стороны, то, что исполняется машиной, но практически никогда не читаемое и не исправляемое человеком (просматривать и корректировать файл program.exe будут лишь законченный хакер либо человек, у которого не остается другого выхода); с другой стороны, структура, которая понятна и человеку, и машине ( program.cpp ). В данной книге программа понимается лишь во втором смысле, файл program.exe называется исполняемый код либо машинная программа. приводят к одной и той же машинной программе, исполняемой компьютером. Но действительная ситуация немного иная.

Лекция 1: 12 || Лекция 2 >
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Илья Ардов
Илья Ардов

Добрый день!

Я записан на программу. Куда высылать договор и диплом?

Данила Некрасов
Данила Некрасов
Россия, Пермь, ПНИПУ
Сергей Федоров
Сергей Федоров
Россия