Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

Програмування



План:


Введення

Програмування - у звичайному розумінні, це процес створення комп'ютерних програм.

Програмування дозволяє налаштувати комп'ютер чи інше програмований логічний пристрій на ті чи інші дії. Звичайно програма вводиться в комп'ютер програмістами, і перші програми створювалися математиками і логіками, конструювати комп'ютер. Коли ще не було коштів виведення на екран, програма видавала результат просто в друкованому вигляді на принтері. Введення в комп'ютер також проводився трохи інакше. У кожному разі, з часом стало зрозуміло, що програмувати комп'ютер кожен раз "з нуля" після кожної його перезавантаження - нерозумно. Тому почали з'являтися засоби запам'ятовування програм і даних. Але перші комп'ютери були все-таки не цифровими, а аналоговими. Простіше кажучи, вони були спочатку механічними, потім електромеханічними і, вже потім, електронними. (Перші електронні комп'ютери та інші обчислювачі працювали на електронних лампах.) Звичайно це не зовсім комп'ютер у сучасному розумінні. Програмуванням також називають настройку електронних пристроїв і програмно-апаратних комплексів. Наприклад: програмування цифрових АТС, програмування побутових приладів кінцевим користувачем, запис інформації в ПЗУ. Розробку логічної схеми для ПЛІС теж називають програмуванням. У загальному розумінні, програмування - це процес опису функціонування пристрою, який може бути виражений або у структурі самого пристрою, або у вигляді набору команд, що виконуються пристроєм. Програмування поєднує в собі елементи науки (логіки, математики, інформатики, кібернетики), інженерної дисципліни і мистецтва (авторської творчої діяльності).

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

У більш широкому значенні під програмуванням розуміють весь спектр діяльності, пов'язаний зі створенням і підтримкою в робочому стані програм - програмного забезпечення ЕОМ. Більш точний сучасний термін - "програмна інженерія" (також інакше "інженерія ПО"). Сюди входять аналіз і постановка задачі, проектування програми, побудова алгоритмів, розробка структур даних, написання текстів програм, налагодження і тестування програми (випробування програми), документування, настройка (конфігурація), доопрацювання і супровід.

Програмування для ЕОМ грунтується на використанні мов програмування, на яких записується програма. В даний час для того, щоб програма могла бути зрозуміла і виконана ЕОМ, потрібен спеціальний інструмент - транслятор. (Можна, звичайно, обійтися і без транслятора. Але тоді програму доведеться кодувати безпосередньо мовою машинних команд, а це дуже трудомістке заняття.) Існують два види трансляторів - компілятори і інтерпретатори. (Складова частина компілятора, що виконує власне трансляцію програми на мові програмування (наприклад на С + + чи мові асемблера), також називається транслятором.) Нині активно використовуються так звані інтегровані середовища розробки програм, що включають в свій склад також редактор для введення і редагування текстів програм, отладчики для пошуку і усунення помилок в програмах, транслятори з різних мов програмування, компонувальники для збірки програми з декількох модулів , та інші службові підпрограми. Текстовий редактор середовища програмування може мати специфічну функціональність, таку як індексація імен, відображення документації, засоби візуального створення інтерфейсу користувача. За допомогою текстового редактора програміст виробляє набір і редактіктірованія тексту содаваемой програми, який називають вихідним кодом ("ісходник" - на професійному жаргоні). Мова програмування визначає синтаксис і початкову семантику вихідного коду, семантика мови програмування може розширюватися текстом програми, додатковими бібліотеками і програмно-апаратним оточенням, в якому виконується програма. Компілятор перетворить текст програми в машинний код, безпосередньо виконуваний електронними компонентами комп'ютера. Інтерпретатор або явно не перетворює текст програми в машинний код, або неявно робить таке перетворення в процесі виконання програми.

Програмування в широкому сенсі можна розбити на кілька стадій:


1. Історія

Комутаційна панель підсумовує машини IBM 402.

Антікітерскій механізм з Стародавній Греції був калькулятором, що використав шестерні різних розмірів і конфігурації, обумовлюють його роботу, [1] з відстеження метоновим циклу, до цих пір використовується в Місячно-сонячний календарях. [2] Аль-Джазарі побудував програмований автомат-гуманоїд в 1206 році. Одна система, задіяна в цих пристроях, використовувала затискачі і кулачки, поміщені в дерев'яний ящик в певних місцях, які послідовно задіяли важіль, які, в свою чергу, управляли ударними інструментами.

Часто першим програмованим пристроєм прийнято вважати жакардовий ткацький верстат, побудований в 1804 році Жозефом Марі Жаккар, який зробив революцію в ткацькій промисловості, надавши можливість програмувати візерунки на тканинах за допомогою перфокарт. Перше програмований обчислювальний пристрій, Аналітичну машину, розробив Чарлз Беббідж (але не зміг її побудувати). 19 липня 1843 графиня Ада Августа Лавлейс, дочка великого англійського поета Джорджа Байрона, як прийнято вважати, написала першу в історії людства програму для Аналітичної машини. Ця програма вирішувала рівняння Бернуллі, що виражає закон збереження енергії рухомої рідини. У своїй першій і єдиній науковій роботі Ада Лавлейс розглянула велику кількість питань. Ряд висловлених нею загальних положень (принцип економії робочих осередків пам'яті, зв'язок рекурентних формул з циклічними процесами обчислень) зберегли своє принципове значення і для сучасного програмування. У матеріалах Беббіджа і коментарях Лавлейс намічені такі поняття, як підпрограма і бібліотека підпрограм, модифікація команд і індексний регістр, які стали вживатися тільки в 1950-х роках. Проте жодна з програм написаних Адою Лавлейс ніколи так і не була запущена.


2. Мови програмування

Велика частина роботи програмістів пов'язана з написанням вихідного коду, тестуванням і налагодженням програм на одному з мов програмування. Вихідні тексти і виконувані файли програм є об'єктами авторського права і є інтелектуальною власністю їх авторів і правовласників.

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

Єдина мова, безпосередньо виконується ЕОМ - це машинний мову (також званий машинним кодом та мовою машинних команд). Спочатку всі програми писалися в машинному коді, але зараз цього практично вже не робиться. Замість цього програмісти пишуть текст вихідний код на тій чи іншій мові програмування, потім використовуючи компілятор або Лари транслюють його, в один або декілька етапів в машинний код, готовий до виконання на цільовому процесорі, або в проміжне представлення, яке може бути виконане спеціальним інтерпретатором - віртуальною машиною. Але це справедливо тільки для мов високого рівня. Якщо потрібен повний низькорівневий контроль над системою на рівні машинних команд і окремих осередків пам'яті, програми пишуть на мовою асемблера, мнемонічні інструкції якого перетворюються один до одного у відповідні інструкції машинного мови цільового процесора ЕОМ. (З цієї причини транслятори з мов асемблера - асемблера - виходять алгоритмічно найпростішими трансляторами.)

У деяких мовах замість машинного коду генерується інтерпретується двійковий код "віртуальної машини", також званий байт-кодом (byte-code). Такий підхід застосовується в Forth, деяких реалізаціях Lisp, Java, Perl, Python, мовах для . NET Framework.


3. Програмні засоби

Скріншот фрагмента коду мовою Java в текстовому редакторі vim, що демонструє підсвічування синтаксису, підтримку Unicode, фолдінг

Програмні засоби, що використовуються при розробці програм, діляться на системні й інструментальні, ліцензійні та безліцензійний, вільно поширювані і пропрієтарні. На практики безліцензійний засоби розробки в даний час рідкість. Усі без винятку приватні засоби розробки ліцензійні, і поширюються по обмежених ліцензіями, часто небезкоштовно. Практично всі сучасні вільно поширювані засоби розробки ліцензійні і поширюються по різним публічним (також генеральним, вільним) ліцензіями, що дозволяє вільне розповсюдження як самих цих коштів так і їх вихідних кодів (у тому числі їх доопрацювання). (Вільно розповсюджувані ліцензійні програми найчастіше розповсюджуються за ліцензіями: GPL, FSF або EULA.)

У системному забезпеченні основними є операційні системи, інструментальні засоби та технології Windows, Mac OS X і Linux та інших операційних систем.

Вільно розповсюджувані інструментальні засоби (в тому числі ліцензійні совободно разпространяемие) можна встановлювати і використовувати на будь-яких комп'ютерах з будь операційною системою (часто це Windows, Mac OS X, Linux, UNIX). На олімпіадах з інформатики та програмування з успіхом використовуються тільки вільно поширювані ліцензовані інструментальні засоби (в більшості своїй поширюються по ліцензії GNU), що працюють в середовищі Windows, Mac OS X і Linux і дозволяють розробляти програмне забезпечення без помилок. З мов програмування на олімпіадах з програмування останні роки часто використовуються мови програмування Паскаль, C / C + + і Java.

Для ведення документації при розробках програм цілком можуть використовуватися як вільно поширювані (як розповсюджуються за ліцензією GPL) так і пропрієтарні офісні пакети програм (наприклад OpenOffice.org і Microsoft Office соотвественно). Файли документації, створювані в сучасних пропрієтарних і вільно розповсюджуваних офісних програмах, інформаційно сумісні.


Література

  • Дейкстра Е. Дисципліна програмування = A discipline of programming - 1-е изд. - М .: Світ, 1978. - 275 с. - ISBN???.
  • Б'ярні Страуструп Програмування: принципи і практика використання C + +, виправлене видання = Programming: Principles and Practice Using C + + - М .: "Вільямс", 2011. - С. 1248. - ISBN 978-5-8459-1705-8.
  • Олександр Степанов, Пол Мак-Джонс Початку програмування = Elements of Programming (Hardcover) - М .: "Вільямс", 2011. - С. 272. - ISBN 978-5-8459-1708-9.
  • Роберт В. собівартість. Основні концепції мов програмування / Пер. з англ - 5-е изд. - М .: Вільямс, 2001. - 672 с. - ISBN???.
  • Іан Соммервіллем. Інженерія програмного забезпечення / Пер. з англ - 6-е видання. - М .: Вільямс, 2002. - 624 с. - ISBN???.
  • Іан Грехем. Об'єктно-орієнтовані методи. Принципи та практика / Пер. з англ - 3-е видання. - М .: Вільямс, 2004. - 880 с. - ISBN???.

Примітки

  1. " Ancient Greek Computer's Inner Workings Deciphered - news.nationalgeographic.com/news/2006/11/061129-ancient-greece.html ". National Geographic News. November 29, 2006.
  2. Freeth, Tony; Jones, Alexander; Steele, John M.; Bitsakis, Yanis (July 31, 2008). " Calendars with Olympiad display and eclipse prediction on the Antikythera Mechanism - www.nature.com/nature/journal/v454/n7204/full/nature07130.html ". Nature 454 (7204): 614-617. DOI : 10.1038/nature07130 - dx.doi.org/10.1038/nature07130. PMID 18668103.

Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
Об'єкт (програмування)
D (мова програмування)
Реактивне програмування
Монада (програмування)
Охорона (програмування)
Oz (мова програмування)
Інкапсуляція (програмування)
Hope (програмування)
Модульність (програмування)
© Усі права захищені
написати до нас
Рейтинг@Mail.ru