Създаден е първият език за програмиране. Как все пак избирате вашия (първи) език за програмиране? Или как да задаваме правилните въпроси? Какво е език за програмиране

Ако мислите да научите програмиране, езикът за програмиране, който първо решите да изберете, е от голямо значение, той трябва да е свързан с това, което искате да правите в бъдеще и да е подходящ. Докато програмирането като цяло не е за мързеливите, някои езици са по-лесни за научаване от други и имат общности, които са посветени на ученето и предлагат полезни умения за изучаване на други езици за програмиране.

Схема за избор

Има въпроси, които се задават толкова често, че се създават цели диаграми, за да им се отговори. Ето например един от тях, посветен на избора на първи език за програмиране.

Когато избирате първия си език за програмиране, трябва трезво да оцените следните фактори:

  • Пазар на труда.
  • Дългосрочни перспективи за езика.
  • Трудност при изучаване на език.
  • Какво точно можете да създадете в процеса на учене и, показвайки на другите, да поддържате мотивация.

Популярност и търсене

JavaScript

JavaScript, който не трябва да се бърка с Java, е език за програмиране, който е разработен през 90-те години от Брендън Айх, бивш от Netscape Communications, а сега от Mozilla Foundation. JavaScript е една от основните технологии, които захранват уеб общността, такава каквато я познаваме. Не се заблуждавайте, въпреки че JavaScript съществува извън браузъра, той съществува предимно в контекста на свързани приложения и услуги.

Самият език е динамичен и дава на програмистите гъвкавостта да използват обектно-ориентирани стилове на програмиране (тъй като самият език е предимно обектно-ориентиран), както и функционален и императивен. Той извлича по-голямата част от своя синтаксис от C и ако планирате да правите някаква уеб разработка по някакъв начин, изучаването на JavaScript трябва да е във вашия списък.

За щастие, JavaScript е сравнително лесен за научаване, вече е във вашия браузър, за да си играете с него, и въпреки че съществува от известно време, бързо набира популярност. Много от вас, които са го номинирали, са отбелязали, че печалбата ви при изучаването на JavaScript е огромна, защото можете незабавно да го използвате, за да създавате неща за мрежата, което много хора може да се научат да кодират.

Python

Мога да препоръчам и Python.

Въпреки редица проблеми, исторически присъщи на Python, той продължава да бъде водещ инструмент в редица ниши:

Впечатляващо, нали? Що се отнася до големите и популярни проекти, написани на Python, това са такива чудовища като:

Можете да намерите и на нашия уебсайт.

Програмирането е трудоемък и сложен процес, който не всеки може да разбере. Машинният език се състои от много алгоритми и днешните компютри са толкова модерно оборудване, защото са програмирани. И историята на разработването на софтуер нямаше да бъде толкова успешна, ако не беше изобретен специален език за машини, които превеждат символни ключови думи в машинни кодове. Нека да разгледаме как се оформи историята на развитието на езиците за програмиране.

Първите автокодове се появяват през 1955 г. благодарение на усилията на разработчиците на IBM под ръководството на инженера Джон Бекус. Това беше език от високо ниво, наречен Fortran, не набор от изолирани прости команди, а организация от по-големи кодове, които започнаха да се наричат ​​оператори или алгоритмични езици. За да ги преведат в машинен код, са изобретени транслатори, които трансформират алгоритмите и ги правят разбираеми за електронен компютър. Това се случва по два начина: интерпретация и компилация. Поради своята простота, версиите на Fortran бързо навлязоха в употреба, а последната от тях все още е един от основните компютри днес.

Това обаче не е единственият автокод за автомобили. Историята на развитието на езиците за програмиране продължава със създаването на алгоритми Algol, които се използват главно в научната общност и съдържат голям брой нови концепции. Това събитие се провежда през 1960 г. И малко по-късно любознателни служители на IBM излязоха с езика Cobol, ориентиран към използване в бизнес среда и използван за обработка на сложна и обемна информация от икономическо естество.

Историята на развитието на езиците за програмиране продължава с професорите от Dartsmouth College T. Kurtz и J. Kemeny, които разработиха добре познатия BASIC. Той е много по-прост от Fortran и затова беше използван в. Имаше експлозивен ефект, превръщайки се в основния набор от кодове за автоматично програмиране и правейки компютрите собственост на най-обикновените потребители.

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

Днес учените продължават да работят върху подобряването му и се опитват да го доближат до програмата Pascal, която допълнително беляза историята на развитието на езиците за програмиране. Професорът от Цюрихския политехнически университет Никлаус Вирт с право се смята за негов създател. И той даде името на своето изобретение в чест на Паскал, който беше първият дизайнер на първия компютър. Това е един от най-лесните и достъпни езици за програмиране, който ви позволява да пишете ясни и разбираеми програми.

Историята на развитието на програмирането би била непълна без езика Ada, кръстен на първата жена програмист Ада Лавлейс, дъщеря на добре познатата пот. Това е по-напреднал и универсален език за програмиране, базиран на Pascal.

Историята на разработката на софтуер има в своя арсенал много повече езици за програмиране, които са написани за специални области на приложение. Например Simul, Simkrit и GPSS се използват при моделирането. Езикът FORT се използва за управление на оборудването. са написани на SI език. Базите данни се създават с помощта на езика Kodasil. Logo, Robik и A.P. са удобни за изучаване на програмиране. Ершова.

Историята на развитието на програмирането все още не е напълно написана и е малко вероятно това да се случи в близко бъдеще.

Една от най-революционните идеи, довели до създаването на автоматични цифрови компютри, е идеята, изразена през 20-те години на 19 век от Чарлз Бабидж за предварително записване на реда на работа на машината за последващо автоматично изпълнение на изчисления - програма . И въпреки че записът на програми върху перфокарти, използвани от Babyge, изобретен за управление на такива машини от френския изобретател Жозеф Мари Жакард, технически няма нищо общо със съвременните методи за съхраняване на програми в компютър, принципът тук е по същество същият. От този момент започва историята на програмирането.
Ada Levellace, съвременник на Babidge, се нарича първият програмист в света. Тя теоретично разработи някои техники за контролиране на последователността от изчисления, които все още се използват в програмирането днес. Тя описа и една от най-важните конструкции на почти всеки съвременен език за програмиране - цикъл.

Революционен момент в историята на езиците за програмиране беше появата на система за кодиране на машинни инструкции с помощта на специални знаци, предложена от Джон Мокли. Системата за кодиране, която той предложи, вдъхнови един от неговите сътрудници, Грейс Мъри Хопър. Докато работеха върху компютъра Mark-1, тя и нейната група трябваше да се сблъскат с много проблеми и всичко, което измислиха, беше за първи път. По-специално, те излязоха с подпрограми. Друга фундаментална концепция за техниката на програмиране беше въведена за първи път от Хопър и нейната група: „отстраняване на грешки“.
В края на 40-те J. Mauchly създава система, наречена „Кратък код“, която е примитивен език за програмиране на високо ниво. В него програмистът записва задачата за решаване под формата на математически формули и след това, използвайки специална таблица, превежда символ по знак, превръщайки тези формули в двубуквени кодове. Впоследствие специална компютърна програма преобразува тези кодове в двоичен машинен код. Системата, разработена от J. Mauchly, се счита за един от първите примитивни интерпретатори.

Още през 1951 г. Хопър създава първия компилатор в света и въвежда този термин. Компилаторът Hopper изпълнява функцията за комбиниране на команди и по време на превода организира подпрограми, разпределя компютърна памет и преобразува команди от високо ниво (по това време псевдокодове) в машинни команди. „Подпрограмите са в библиотеката (на компютъра) и когато изберете материал от библиотеката, това се нарича компилация“, така тя обясни произхода на термина, който измисли.

През 1954 г. група, ръководена от Г. Хопър, разработва система, която включва език за програмиране и компилатор, която по-късно е наречена Math-Matic. С успешното завършване на Math-Matic, Хопър и нейният екип се заеха с разработването на нов език и компилатор, който ще позволи на потребителите да програмират на език, подобен на обикновения английски. През 1958 г. се появява компилаторът Flow-Matic. Компилаторът Flow-Matic беше първият език за задачи за обработка на търговски данни.
Развитието в тази посока доведе до създаването на езика COBOL (Common Business Oriented Language). Създадена е през 1960г. В този език, в сравнение с Fortran и Algol, математическите инструменти са по-малко развити, но инструментите за обработка на текст и организацията на извеждането на данни под формата на необходимия документ са добре развити. Той е предназначен като основен език за масова обработка на данни в областта на управлението и бизнеса.

Средата на 50-те се характеризира с бърз прогрес в областта на програмирането. Ролята на програмирането в машинните команди започна да намалява. Започнаха да се появяват нови видове езици за програмиране, които действаха като посредник между машини и програмисти. Първият и един от най-разпространените е Fortran (FORTRAN, от FORmula TRANslator - преводач на формули), разработен от група програмисти на IBM през 1954 г. (първа версия). Този език е фокусиран върху научни и технически изчисления от математическо естество и е класически език за програмиране за решаване на математически и инженерни проблеми на компютър.
За първите езици за програмиране на високо ниво предметната ориентация на езиците беше характерна черта.
Algol заема специално място сред езиците за програмиране, чиято първа версия се появява през 1958 г. Един от разработчиците на Algol беше „бащата“ на Fortran, Джон Бакъс. Името ALGOrithmic Language подчертава факта, че той е предназначен за писане на алгоритми. Благодарение на ясната си логическа структура, Algol се превърна в стандартно средство за писане на алгоритми в научната и техническа литература.

В средата на 60-те години Томас Кърц и Джон Камени (служители на катедрата по математика в Dartmouth College) създават специализиран език за програмиране, който се състои от прости английски думи. Новият език беше наречен „Универсален символен код за инструкции за начинаещи или накратко BASIC“. Годината на раждане на новия език може да се счита за 1964 г. Днес универсалният език BASIC (който има много версии) придоби голяма популярност и е широко разпространен сред потребителите на компютри от различни категории по целия свят. Това беше значително улеснено от факта, че BASIC започна да се използва като вграден език на персонални компютри, чието широко разпространение започна в края на 70-те години. BASIC обаче е неструктуриран език и следователно не е подходящ за преподаване на качествено програмиране. За да бъдем честни, трябва да се отбележи, че най-новите версии на BASIC за персонални компютри (например QBasic) са станали по-структурирани и в своите визуални възможности се доближават до езици като Pascal.

Разработчиците фокусираха езиците върху различни класове задачи, обвързаха ги в една или друга степен с конкретна компютърна архитектура и внедриха лични вкусове и идеи. През 60-те години се правят опити да се преодолее този „раздор“ чрез създаване на универсален език за програмиране. Първото дете на тази посока беше PL/1 (Programm Language One), разработен от IBM през 1967 г. Този език твърди, че може да реши всеки проблем: изчисления, обработка на текст, натрупване и извличане на информация. Той обаче се оказа твърде сложен, преводачът от него не беше достатъчно оптимален и съдържаше редица неоткрити грешки.
Въпреки това, линията към универсализация на езиците беше подкрепена. Старите езици бяха модернизирани в универсални версии: ALGOL-68 (1968), Fortran-77. Предполагаше се, че такива езици ще се развиват и подобряват и ще започнат да изместват всички останали. Нито един от тези опити обаче не беше успешен.

Езикът LISP се появява през 1965 г. Основното понятие в него е понятието рекурсивно дефинирани функции. Тъй като е доказано, че всеки алгоритъм може да бъде описан с помощта на определен набор от рекурсивни функции, LISP по същество е универсален език. С негова помощ компютърът може да симулира доста сложни процеси, по-специално интелектуалната дейност на хората.
Prolog е разработен във Франция през 1972 г. за решаване на проблеми в "изкуствения интелект". Prologue ви позволява да опишете формално различни твърдения, логиката на разсъжденията и принуждава компютъра да дава отговори на зададените въпроси.
Значително събитие в историята на езиците за програмиране е създаването на езика Pascal през 1971 г. Негов автор е швейцарският учен Никлаус Вирт. Вирт го кръщава на великия френски математик и религиозен философ от 17-ти век Блез Паскал, който е изобретил първото устройство за събиране, поради което новият език е кръстен на него. Този език първоначално е разработен като образователен език за структурирано програмиране и наистина сега е един от основните езици за преподаване на програмиране в училища и университети.

През 1975 г. две събития се превърнаха в крайъгълен камък в историята на програмирането - Бил Гейтс и Пол Алън се обявиха, като разработиха своя версия на BASIC, а Wirth и Jensen пуснаха класическото описание на езика „Ръководство за потребителя и отчет на Pascal“.

Не по-малко впечатляващ, включително финансов, успех постигна Филип Кан, французин, който разработи системата Turbo-Pascal през 1983 г. Същността на идеята му беше да комбинира последователните етапи на обработка на програмата - компилация, редактиране на връзки, отстраняване на грешки и диагностика на грешки - в един интерфейс. Turbo Pascal е не само език и преводач от него, но и операционна обвивка, която позволява на потребителя удобно да работи в Pascal. Този език надхвърли образователната си цел и се превърна в професионален език за програмиране с универсални възможности. Благодарение на тези предимства, Pascal се превърна в източник на много съвременни езици за програмиране. Оттогава се появиха няколко версии на Turbo Pascal, като последната е седмата.
Borland/Inprise завършиха продуктовата линия Turbo Pascal и преминаха към пускането на система за визуална разработка за Windows - Delphi.

Езикът C (първа версия - 1972 г.), който е много популярен сред разработчиците на софтуерни системи (включително операционни системи), остави голям отпечатък върху съвременното програмиране. Този език е създаден като инструментален език за разработване на операционни системи, преводачи, бази данни и други системни и приложни програми. C комбинира характеристиките на език от високо ниво и машинно-ориентиран език, позволявайки на програмиста достъп до всички машинни ресурси, които езици като BASIC и Pascal не предоставят.
Периодът от края на 60-те до началото на 80-те се характеризира с бързо нарастване на броя на различните езици за програмиране, които съпътстваха софтуерната криза. През януари 1975 г. Пентагонът решава да въведе ред в хаоса от преводачи и създава комитет, на който е наредено да разработи един универсален език. През май 1979 г. е обявен победителят - група учени, ръководени от Жан Ихбия. Езикът победител беше кръстен Ада в чест на Аугуста Ада Левелас. Този език е предназначен за създаване и дългосрочна поддръжка на големи софтуерни системи, позволява паралелна обработка и управление на процесите в реално време.

В продължение на много години софтуерът се изгражда на базата на оперативни и процедурни езици като Fortran, BASIC, Pascal, Ada, C. С развитието на езиците за програмиране други, фундаментално различни подходи за създаване на програми станаха широко разпространени.
Съществуват голям брой класификации на езиците за програмиране според различни критерии. Най-често срещаните класификации са:
 езици за програмиране на високо ниво (Pascal, BASIC) и ниско ниво (Assembler);
 строго типизиран (Pascal) и свободно типизиран (BASIC);
 със и без поддръжка на обектно-ориентирано програмиране (C++) и др.

Нека разгледаме друга класификация. Програмните езици се делят на:
1) Машинно-ориентирани езици:
- машинни езици;
- езици за символно кодиране;
 автокодове;
- макро.
2) Независими от машината езици:
 проблемно-ориентирани езици;
- универсални езици;
- интерактивни езици;
- непроцедурни езици.

Машинно ориентирани езици

Машинно-ориентираните езици са езици, чиито набори от оператори и графични средства значително зависят от характеристиките на компютъра (вътрешен език, структура на паметта и др.). Машинно-ориентираните езици имат следните характеристики:
 високо качество на създадените програми (компактност и бързина на изпълнение);
 възможност за използване на специфични хардуерни ресурси;
 предвидимост на обектния код и порядъка на паметта;
 за да създавате ефективни програми, трябва да познавате командната система и работните характеристики на този компютър;
 трудоемкият процес на писане на програми (особено на машинни езици и JSC), който е слабо защитен от грешки;
 ниска скорост на програмиране;
 невъзможността за директно използване на програми, компилирани на тези езици, на други видове компютри.
Машинно-ориентираните езици са разделени на класове според степента на автоматично програмиране.

Машинен език

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

Езици за символно кодиране

Езиците за символно кодиране (наричани по-нататък SKL), точно като ML, са командни езици. Въпреки това кодовете на операциите и адресите в машинните инструкции, които са последователност от двоични (във вътрешния код) или осмични (често използвани при писане на програми) цифри, се заменят в YSC със символи (идентификатори), чиято писмена форма помага на програмиста по-лесно запомня семантичното съдържание на операцията. Това гарантира значително намаляване на броя на грешките при компилиране на програми.
Използването на символни адреси е първата стъпка към създаването на YASK. Компютърните команди съдържат символни адреси вместо истински (физически) адреси. Въз основа на резултатите от компилираната програма се определя необходимия брой клетки за съхраняване на първоначалните междинни и получени стойности. Задаването на адреси, извършвано отделно от компилирането на програмата в символни адреси, може да се извърши от по-малко квалифициран програмист или специална програма, което значително улеснява работата на програмиста.

Автокодове

Има езици, които включват всички възможности на YSC, чрез разширеното въвеждане на макрокоманди - те се наричат ​​автокодове.

В различни програми има доста често използвани командни последователности, които отговарят на определени процедури за конвертиране на информация. Ефективното изпълнение на такива процедури се осигурява от техния дизайн под формата на специални макрокоманди и включването на последните в език за програмиране, достъпен за програмиста. Макро командите се превеждат в машинни команди по два начина - подреждане и генериране. Системата за етапи съдържа "скелети" - поредица от команди, които изпълняват необходимата функция, обозначена с макро команда. Макро инструкциите осигуряват прехвърлянето на действителни параметри, които по време на процеса на превод се вмъкват в „скелета“ на програмата, превръщайки я в реална машинна програма.
В системата за генериране има специални програми, които анализират макро командата, определят каква функция трябва да се изпълни и формират необходимата последователност от команди, които изпълняват тази функция.
И двете системи използват JSC транслатори и набор от макро команди, които също са оператори за автоматично кодиране.
Разработените автокодове се наричат ​​асемблери. Сервизните програми и т.н. обикновено се пишат на асемблерни езици.

Макро

Език, който е инструмент за замяна на поредица от символи, описващи изпълнението на необходимите компютърни действия в по-кратка форма, се нарича макрос (инструмент за заместване).
По принцип макросът е предназначен да съкрати записа на оригиналната програма. Софтуерният компонент, който позволява макросите да функционират, се нарича макропроцесор. Макропроцесорът получава макродефиниращия и изходния текст. Отговорът на макропроцесора на повикване е да издаде изходен текст.
Макросите могат да работят еднакво както с програми, така и с данни.

Машинно независими езици

Машинно независимите езици са средство за описване на алгоритми за решаване на проблеми и информация, която трябва да се обработва. Те са лесни за използване от широк кръг потребители и не изискват от тях да познават спецификата на организиране на функционирането на компютъра.
Такива езици се наричат ​​езици за програмиране на високо ниво. Програмите, компилирани на такива езици, са поредици от изрази, структурирани според правилата за преглед на езика (задачи, сегменти, блокове и т.н.). Езиковите оператори описват действията, които системата трябва да извърши след превод на програмата в ML.
По този начин командните последователности (процедури, подпрограми), често използвани в машинни програми, са представени на езици на високо ниво чрез отделни изрази. Програмистът успя да не опише в детайли изчислителния процес на ниво машинни инструкции, а да се съсредоточи върху основните характеристики на алгоритъма.

Проблемно-ориентирани езици

С разширяването на областите на приложение на компютърните технологии възникна необходимостта от формализиране на представянето на формулирането и решаването на нови класове проблеми. Беше необходимо да се създадат езици за програмиране, които, използвайки нотации и терминология в тази област, биха позволили да се опишат необходимите алгоритми за решаване на възложените проблеми; те станаха проблемно-ориентирани езици. Тези езици са фокусирани върху решаването на конкретни проблеми и трябва да предоставят на програмиста инструменти, които им позволяват кратко и ясно да формулират проблем и да получат резултати в необходимата форма.
Има много проблемни езици, например:
- Fortran, Algol – езици, създадени за решаване на математически задачи;
- Simula, Slang - за моделиране;
- Lisp, Snoball - за работа със списъчни структури.

Универсални езици

Универсалните езици са създадени за широк спектър от задачи: търговски, научни, моделиране и др. Първият универсален език е разработен от IBM, който става PL/1 в последователността от езици. Вторият най-мощен универсален език се нарича ALGOL-68.

Разговорни езици

Появата на нови технически възможности постави задача пред системните програмисти - да създадат софтуерни инструменти, които осигуряват бързо взаимодействие между човек и компютър, те се наричат ​​интерактивни езици.
Тази работа се проведе в две посоки. Бяха създадени специални контролни езици, за да осигурят оперативно въздействие върху изпълнението на задачи, които бяха компилирани на всички преди това неразработени (недиалогови) езици. Бяха разработени и езици, които в допълнение към целите на управлението биха предоставили описание на алгоритми за решаване на проблеми.
Необходимостта от осигуряване на бързо взаимодействие с потребителя изисква съхраняване на копие на изходната програма в паметта на компютъра дори след получаване на обектната програма в машинен код. Когато правите промени в програма с помощта на интерактивен език, системата за програмиране, използвайки специални таблици, установява връзката между структурите на изходните и обектните програми. Това ви позволява да правите необходимите редакционни промени в обектната програма.
Един пример за разговорни езици е BASIC.

Непроцедурни езици

Непроцедурните езици съставляват група от езици, които описват организацията на данните, обработвани с помощта на фиксирани алгоритми (таблични езици и генератори на отчети) и езици за комуникация с операционни системи.
Позволявайки ви ясно да опишете както задачата, така и действията, необходими за нейното решаване, таблиците с решения дават възможност ясно да определите какви условия трябва да бъдат изпълнени, преди да преминете към каквото и да е действие. Една таблица с решения, описваща определена ситуация, съдържа всички възможни блокови диаграми на реализации на алгоритми за решение.
Табличните методи се овладяват лесно от специалисти от всяка професия. Програмите, написани на табличен език, удобно описват сложни ситуации, които възникват по време на системния анализ.
Езиците за програмиране служат за различни цели и изборът им се определя от удобството за потребителя, пригодността за даден компютър и дадена задача. И задачите за компютър могат да бъдат много разнообразни: изчислителни, икономически, графични, експертни и т.н. Това разнообразие от проблеми, решавани от компютър, определя разнообразието от езици за програмиране. В програмирането най-добри резултати се постигат с индивидуален подход, базиран на класа на проблема, нивото и интересите на програмиста.

История на създаването на езика за програмиране Basic и Visual Basic

Езикът за програмиране Basic е създаден през 1964 г. от двама професори от Дартмутския колеж, Джон Кенеми и Томас Курц, за да преподават умения за програмиране на студенти. Езикът се оказа толкова прост и разбираем, че след известно време започна да се използва в други образователни институции. През 1975 г., с появата на първите микрокомпютри, щафетата Basic е поета от Бил Гейтс и Пол Алън, основателите на Microsoft. Именно те създадоха нова версия на Basic за първите компютри Altair (MITS Altairs), способни да работят в 4KB RAM. С течение на времето тази версия се превърна в един от най-популярните езици за програмиране в света. По пътя към върховете на славата Basic имаше много трудности, които винаги преодоляваше с чест, а когато се появиха първите персонални компютри IBM PC, той стана стандарт в програмирането, но под формата на GW-Basic. След това имаше Turbo Basic, QuickBasic, Basic PDS, но винаги при разработването на нова версия на езика се поддържаше съвместимост с предишни версии и програма, написана почти за първия Basic, можеше (с малки промени) да работи в следващите версии на този език. Но дойдоха нови времена и в началото на 90-те години операционната система Microsoft Windows се появи с нов графичен потребителски интерфейс (GUI).

Животът на програмистите се е превърнал в ад. За да създадете проста програма, трябваше да напишете няколко страници код: да създадете менюта и прозорци, да промените шрифтове, да изчистите паметта, да рисувате бутони и т.н. Предимствата на новия интерфейс обаче бяха толкова неоспорими, че вече третата версия на тази операционна система стана де факто стандарт за персонален компютър. По това време няколко паралелни проекта бяха в ход в Microsoft за създаване на нов език за програмиране за Windows. И през 1991 г., под мотото „сега дори начинаещите програмисти могат лесно да създават приложения за Windows“, се появи първата версия на новия инструмент Microsoft Visual Basic. В този момент Microsoft доста скромно оцени възможностите на тази система, като я насочи предимно към категорията начинаещи и непрофесионални програмисти. Основната задача тогава беше да се пусне на пазара прост и удобен инструмент за разработка в тогавашната сравнително нова среда на Windows, програмирането в която беше проблем дори за опитни професионалисти. Системата за програмиране, създадена от разработчиците на Visual Basic, направи възможно „отстъпление“ от сложната вътрешна структура на Windows и създаване на програми от „кубчета“, като в детски строителен комплект. Менюта, прозорци, списъци, бутони, полета за въвеждане на текст и други елементи на интерфейса на Windows бяха добавени към програмата чрез прости операции с плъзгане и пускане.

VB програмистите създадоха първата си програма в рамките на няколко минути след като започнаха да учат този език! Освен това Visual Basic позволи на разработчиците да създават нови „кубови“ обекти, които също могат да се използват в програми заедно със стандартните. И въпреки че много C програмисти тихо се засмяха на опитите на Microsoft да направи прост и разбираем инструмент за разработване на програми за Windows, Visual Basic започна своето победоносно шествие по света и нищо не можеше да спре този процес. Последните бариери паднаха през 1994 г. с пускането на Visual Basic за приложения. По това време, след включването на VBA в Microsoft Office, Basic започна да се превръща в един от основните стандарти за програмиране на Windows. За Microsoft езикът Basic е от особено значение; разработката на Basic версия за компютъра Altair 8800 бележи началото на програмната кариера на неговите основатели Бил Гейтс и Пол Алън. Ето защо, по едно време - през 1989 г., когато дойде времето да се разпределят основните насоки за създаване на среди за разработка на различни езици за програмиране между различни компании, Microsoft запази QuickBasic - среда за разработка на програми в Basic, отказвайки например по-нататъшна работа върху езика за програмиране Pascal, оставяйки го на Borland, който от своя страна спря работата по своята версия на Basic (Pascal по-късно стана езикът Delphi).

Първоначално замислен като играчка, Visual Basic на Microsoft превзе света на програмирането като буря. Популярността му се дължи на две причини: относителна простота и производителност. VB програмите са по-бавни от своите колеги на C/C++, но все пак са достатъчно бързи за много бизнес цели и изискват много по-малко време за разработка. Формите бяха същата спестяваща усилия абстракция, която VB предлагаше на Windows програмистите. VB IDE направи възможно проектирането на прозорци графично чрез плъзгане на контроли като бутони и списъчни полета от лентата с инструменти върху формуляр. След като сте доволни от външния вид на формуляра, можете да преминете към страната на кода и да напишете манипулатори на събития за всяка контрола на формуляра.

По този начин разработването на приложение във VB се състоеше от създаване на няколко формуляра, които разговаряха помежду си и вероятно се консултираха с база данни за необходимата информация. Получената форма се оказа прозорец, който предлага много по-удобен начин за използване на техники за отваряне на прозорци. VB намали грешките, като премахна част от скрития C/C++ синтаксис. Освен в специални случаи, изразите бяха ограничени до един ред код, а променливите трябваше да бъдат декларирани и инициализирани на отделни редове код. Операторите за присвояване и сравнение използваха един и същ символ, но граматиката на VB изискваше тези оператори да се използват по начин, който изяснява намерението им.

Може би най-важното е, че нямаше указатели - изискване на Бил Гейтс от първите версии на Microsoft BASIC. Въпреки че указателите са полезни, защото позволяват директен достъп до паметта на всеки адрес, използването им е податливо на грешки, ако не се използват внимателно. Изискването на BASIC за граматическа простота произтича от факта, че той първоначално е създаден като език за обучение: „Универсален символен код за обучение за начинаещи.“ VB версия 6 вече е мощен език, който може да се използва за създаване на разпределени приложения, използвайки COM компоненти и Microsoft Transaction Server. Microsoft предложи трислоен подход за архитектури клиент-сървър, при които тънки потребителски интерфейси взаимодействат с отдалечени VB компоненти за извличане на данни от база данни или друга машина.

Използвайки VBScript и VBA (VB за приложения), можете да пишете скриптове за уеб браузъри и да автоматизирате приложения на Microsoft Office. Нещо повече, VB6 може да се използва за създаване на Active-X контроли, които работят с Internet Explorer, въпреки че това се прави рядко, тъй като изисква VB runtime DLL да бъде инсталиран на машината на интернет клиента. Започвайки с VB5, програмите на VB бяха компилирани в машинен код, но те бяха базирани на използването на DLL, който предоставяше често използвани функции и имплементира възможностите на обекта на VB. Интересното е, че VB компилаторът използва многопроходен режим за превод и в крайна сметка разчита на компилатора на Microsoft C++, за да произведе изходен код на машината след компилиране в междинен език. Семената на .NET са видими в тази функция на VB - използването на библиотека за изпълнение и C++ backend.

История на създаването на езика за програмиране C#

Езикът C# е роден през юни 2000 г. в резултат на усърдната работа на голяма група разработчици на Microsoft, водени от Anders Hejlsberg. Този човек е известен като автор на един от първите компилирани езици за програмиране за персонални компютри на IBM - Turbo Pascal. Вероятно на територията на бившия Съветски съюз много опитни разработчици и просто хора, които са учили програмиране под една или друга форма в университети, са изпитали чара и лекотата на използване на този продукт. Освен това, докато работи в Borland Corporation, Anders Hejlsberg стана известен със създаването на интегрирана среда Delphi (той ръководи този проект до пускането на версия 4.0).
Неслучайно появата на езика C# и инициативата .NET се случи в началото на лятото на 2000 г. Точно в този момент Microsoft подготви индустриални версии на нови компонентни технологии и решения в областта на съобщенията и обмена на данни, т.к. както и създаването на интернет приложения (COM+, ASP+, ADO+, SOAP, Biztalk Framework). Несъмнено най-добрият начин за популяризиране на тези нови продукти е създаването на набор от инструменти за разработчици с тяхната пълна подкрепа. Това е една от основните цели на новия език C#. Освен това Microsoft вече не можеше да разширява същите инструменти и езици за разработка, правейки ги все по-сложни, за да отговорят на противоречивите изисквания за поддръжка на модерен хардуер и поддържане на обратна съвместимост с тези продукти, създадени в началото на 90-те години. по време на първата поява на Windows. Идва момент, когато е необходимо да се започне от нулата, за да се създаде прост, но сложен набор от езици, среди и инструменти за разработка, които ще позволят на разработчика лесно да създава съвременни софтуерни продукти.

C# и .NET са отправната точка. Казано по-просто, .NET е нова платформа, нов API за програмиране на Windows, а C# е нов език, създаден от самото начало, за да работи с тази платформа и да се възползва напълно от напредъка на средите за разработка и нашите разбиране на принципите на обектно-ориентираното програмиране за последните 20 години.
Трябва да се отбележи, че обратната съвместимост не се губи. Съществуващите програми ще работят, а платформата .NET е проектирана да работи със съществуващ софтуер. Комуникацията между компонентите в Windows сега почти изцяло се извършва с помощта на COM. Имайки това предвид, .NET има способността да (а) създава обвивки около съществуващи COM компоненти, така че .NET компонентите да могат да общуват с тях, и (б) да създава обвивки около .NET компоненти, така че да изглеждат като обикновени COM компоненти.

Авторите на C# се стремят да създадат език, който съчетава простотата и изразителността на съвременните обектно-ориентирани езици (като Java) с богатството и силата на C++. Според Anders Hejlsberg C# заимства по-голямата част от своя синтаксис от C++. По-специално, той съдържа такива удобни типове данни като структури и изброявания (друг потомък на C++ - Java - няма тези елементи, което създава определени неудобства при програмиране). Синтактичните конструкции на C# са наследени не само от C++, но и от Visual Basic. Например C#, подобно на Visual Basic, използва свойства на класа. Подобно на C++, C# позволява претоварване на оператори за типове, които създавате (Java не поддържа нито една от двете функции). C# всъщност е хибрид на различни езици. В същото време C# е синтактично не по-малко (ако не и повече) чист от Java, прост като Visual Basic и има почти същата мощност и гъвкавост като C++.

Характеристики на C#:

Пълен и добре дефиниран набор от основни типове.
- Вградена поддръжка за автоматично генериране на XML документация. Автоматично освобождаване на динамично разпределената памет.
- Възможност за маркиране на класове и методи с дефинирани от потребителя атрибути. Това може да бъде полезно за документация и може да повлияе на процеса на компилиране (например можете да маркирате методи, които трябва да се компилират само в режим на отстраняване на грешки).
- Пълен достъп до .NET базовата библиотека от класове, както и лесен достъп до Windows API (ако наистина имате нужда от него).
- Указатели и директен достъп до паметта, ако е необходимо. Езикът обаче е проектиран по такъв начин, че в почти всички случаи можете да се справите без него.
- Поддръжка на VB стил свойства и събития.
- Лесни за промяна ключове за компилация. Позволява ви да получите изпълними файлове или библиотеки на .NET компонент, които могат да бъдат извикани от друг код по същия начин като ActiveX контролите (COM компоненти).
- Възможност за използване на C# за писане на динамични ASP.NET уеб страници.

Една област, за която този език не е предназначен, са критични към времето и високопроизводителни програми, където има значение дали даден цикъл отнема 1000 или 1050 машинни цикъла за изпълнение и ресурсите трябва да бъдат освободени незабавно. C++ остава най-добрият език на ниско ниво в тази област. В C# липсват някои ключови функции, необходими за създаване на приложения с висока производителност, като вградени функции и деструктори, които гарантирано ще се изпълняват в определени точки от кода. Този език също се използва активно за създаване на съвременни видео игри, например играта Battlefield 3 е частично написана на C# и изцяло на .NET технология

Състои се от инсталиране на ключови превключватели на предния панел на изчислителното устройство. Очевидно само малки програми могат да бъдат написани по този начин.

С развитието на компютърните технологии се появи машинен език, с помощта на който програмистът може да задава команди, работещи с клетки от паметта, използвайки напълно възможностите на машината. Използването на повечето компютри на ниво машинен език обаче е трудно, особено когато става дума за вход/изход. Затова трябваше да се откажем от използването му.

Например, за да прочете блок от данни от дискета, програмистът може да използва 16 различни команди, всяка от които изисква 13 параметъра, като номера на блока на диска, номера на сектора на пистата и т.н. Когато дискът операцията приключи, контролерът връща 23 стойности, отразяващи наличието и видовете грешки, които трябва да бъдат анализирани.

„Думите“ на машинния език се наричат инструкции,всеки от които представлява едно елементарно действие за централния процесор, като например четене на информация от клетка на паметта.

Всеки модел процесор има свой собствен набор от машинни инструкции, въпреки че повечето от тях са еднакви. Ако процесор A разбира напълно езика на процесор B, тогава се казва, че процесор A е съвместим с процесор B. Процесор B ще се счита за несъвместим с процесор A, ако A има инструкции, които не се разпознават от процесор B.

През 60-те години изискванията за разработка на софтуер се увеличиха и програмите станаха много големи. Хората започнаха да осъзнават, че създаването на софтуер е много по-трудна задача, отколкото са си представяли. Това доведе до развитието на структурираното програмиране. С развитието на структурираното програмиране следващият напредък бяха процедурите и функциите. Например, ако има задача, която се изпълнява няколко пъти, тогава тя може да бъде декларирана като функция или процедура и просто да бъде извикана по време на изпълнение на програмата. В този случай общият програмен код става по-малък. Функциите ви позволяват да създавате модулни програми.

Следващият напредък беше използването на структури, което доведе до класове. Структурите са съставни типове данни, изградени с помощта на други типове. Например структурата на времето. Включва: часове, минути, секунди. Програмистът може да създаде времева структура и да работи с нея като отделна структура. Класът е структура, която има свои собствени променливи и функции, които работят с тези променливи. Това беше много голямо постижение в областта на програмирането. Сега програмирането може да се раздели на класове и да се тества не цялата програма, състояща се от 10 000 реда код, а програмата може да се раздели на 100 класа и да се тества всеки клас. Това направи писането на софтуерен продукт много по-лесно.

Асемблер език

В случаите, когато е необходимо да има ефективна програма, вместо машинни езици се използват машинно-ориентирани езици, които са близки до тях - асемблери. Хората използват мнемонични команди вместо машинни команди.

Но дори работата с асемблер е доста сложна и изисква специално обучение.

Структурираното програмиране включва точно дефинирани контролни структури, програмни блокове, безусловни инструкции за прескачане (GOTO), самостоятелни подпрограми, поддръжка за рекурсия и локални променливи.

Същността на този подход е способността да се раздели програмата на нейните съставни елементи.

Също така създаден функционален(приложни) езици (Пример: Lisp - английски. Обработка на LIST, 1958) и главоблъсканицаезици (пример: Prolog - английски) ПРОграмиране в LOGic, 1972).

Въпреки че структурираното програмиране, когато се използва, дава изключителни резултати, дори то се проваля, когато програмата достигне определена дължина. За да се напише по-сложна (и по-дълга) програма, беше необходим нов подход към програмирането.

ООП

В резултат на това в края на 70-те и началото на 80-те години бяха разработени принципите на обектно-ориентираното програмиране. ООП съчетава най-добрите принципи на структурираното програмиране с мощни нови концепции, основните от които се наричат ​​капсулиране, полиморфизъм и наследяване.

Примери за обектно-ориентирани езици са Object Pascal, C++, Java и др.

OOP ви позволява да организирате оптимално програми, като разделяте проблема на съставните му части и работите с всяка отделно. Програма на обектно-ориентиран език, решаваща определен проблем, по същество описва част от света, свързана с този проблем.

Пример за писане на програма на различни езици

Език от високо ниво (Delphi)

X : = sin (y* Pi) + 1;

x86 асемблер (копроцесор)

Fldpi fmul qword ptr [ Y] fsin fld1 fadd p st (1), st (0) fstp qword ptr [ X]

Машинен код (шестнадесетичен, всяка команда започва на нов ред)

D9 EB DC 0D D0 97 40 00 D9 FE D9 E8 DE C1 DD 1D 98 97 40 00

Машинен код (двоично представяне)

11011001 11101011 11011100 00001101 11010000 10010111 01000000 00000000 11011001 11111110 11011001 11101000 11011110 11000001 11011101 00011101 10011000 10010111 01000000 00000000

Връзки


Фондация Уикимедия. 2010 г.

  • Тъй вярно
  • Кабанов, Николай Александрович

Вижте какво е „История на езиците за програмиране“ в други речници:

    История на езика за програмиране Python- Python е замислен през 1980 г. и създаването му започва през декември 1989 г. от Guido van Rossum като част от Центъра за математика и компютърни науки в Холандия. Езикът Python е замислен като наследник на езика за програмиране ABC, способен да обработва... ... Wikipedia

    Хронология на езиците за програмиране- Списъци с езици за програмиране По категория Хронологична генеалогична хронология на езиците за програмиране е хронологично организиран списък от езици за програмиране. Съдържание... Уикипедия

    Сравнение на езиците за програмиране- Тази статия трябва да бъде уикифицирана. Моля, форматирайте го според правилата за форматиране на статията. Конвенции... Уикипедия

    Кратка история на развитието на езиците за програмиране- С развитието на компютърните технологии се появиха различни техники за програмиране. На всеки етап беше създаден нов подход, който помагаше на програмистите с нарастващата сложност на програмите. Съдържание 1 Начало на разработка 2 Език за асемблиране 3 Структура ... Wikipedia

    История на логиката- изучава развитието на науката за формите и законите на правилното мислене (логиката). Появата на логиката като развит анализ на принципите на извода се отнася изключително до три местни цивилизации, а именно: Китай, Индия и Древна ... ... Wikipedia

    История на Linux- Тази статия или раздел трябва да бъдат преработени. Моля, подобрете статията в съответствие с правилата за писане на статии... Wikipedia

    История на безплатния софтуер- Фразата „свободен софтуер“ или безплатен софтуер се отнася до продукти, разпространявани под либерални лицензи, които предоставят на потребителя повече възможности от традиционните софтуерни лицензи... ... Wikipedia

Много е важно да знаете общата история на езиците за програмиране и историята на развитието на известни и непознати езици. В тази статия ще се запознаете с това, но първо нека си припомним “Какво е език за програмиране?”

Програмен езике система от нотация и правила, която ви позволява да напишете програма за решаване на проблем под формата на последователен текст във форма, удобна за човек.

50-те години

През петдесетте години на ХХ век, с появата на компютрите с вакуумни тръби, започва бързото развитие на езиците за програмиране. Програмирането започна с писане на програми директно под формата на машинни инструкции (в кодове, както казват програмистите). Компютрите, които по това време струват значително повече от разработването на която и да е програма, изискват високоефективен код.

За да се улесни кодирането, беше разработен машинно ориентиран, което направи възможно писането на машинни инструкции в символна форма. Асемблерният език зависи от системата с инструкции на конкретен компютър. Беше достатъчно удобен за програмиране на малки задачи, изискващи максимална скорост на изпълнение.

Големите проекти обаче бяха трудни за разработване на асемблерен език. Основният проблем беше, че програма, написана на Assembly, беше свързана с архитектурата на определен компютър и не можеше да бъде прехвърлена на други машини. Когато компютърът беше подобрен, всички програми в Асемблера трябваше да бъдат пренаписани наново.

Почти веднага с появата на компютрите бяха разработени езици на високо ниво, т.е. езици, които не зависят от конкретна архитектура. За да се изпълни програма на език от високо ниво, тя първо трябва да бъде преведена на машинен команден език. Специална програма, която извършва такъв превод, се нарича транслатор или компилатор.

След това преведената програма се изпълнява директно от компютъра. Съществува и възможност за превод на програмата на междинен език, който не зависи от архитектурата на конкретен компютър, но въпреки това е възможно най-близо до машинния команден език.

След това програмата за междинен език се изпълнява от специална програма, наречена интерпретатор. Също така е възможно да се компилира в движение, когато изпълняваният програмен фрагмент се превежда от междинен език в машинния команден език непосредствено преди изпълнението.

В средата на 50-те години, под ръководството на Джон Бекъс, за IBM е разработен алгоритмичният език за програмиране на високо ниво FORTRAN. Въпреки факта, че вече имаше разработки в езици, които преобразуваха аритметични изрази в машинен код, създаването на езика FORTRAN (FORmula TRANslator), който предостави възможността да се напише алгоритъм за изчисление с помощта на условни изрази и оператори за вход/изход, стана началната точка на ерата на езиците за програмиране от високо ниво.

Като алтернатива на езика FORTRAN, първоначално насочен към архитектурата на IBM, ALGOL (ALGOrithmic Language) е разработен под ръководството на Peter Naur в края на 50-те години. Основната цел, преследвана от разработчиците на този език, беше независимостта от специфичната архитектура на компютърната система.

В допълнение, създателите на езика ALGOL се стремят да разработят език, удобен за описване на алгоритми и използване на система за обозначения, близка до тази, приета в математиката. FORTRAN и ALGOL бяха първите езици, фокусирани върху изчислителното програмиране.

60-те години

В края на 60-те години под ръководството на Наярд и Дал е разработен езикът Simula-67, използващ концепцията за дефинирани от потребителя типове данни. Всъщност това е първият език, който използва концепцията за класове.

70-те години

В средата на 70-те Вирт предлага езика Pascal, който веднага става широко използван. В същото време по инициатива на Министерството на отбраната на САЩ започва работа по създаването на език от високо ниво, наречен Ada - в чест на Ада Лавлейс, програмист и дъщеря на лорд Байрон.

Създаването на езика започна с дефиниране на изисквания и разработване на спецификации. Четири независими групи работиха по проекта, но всички те използваха Pascal като основа. В началото на 80-те години е разработен първият индустриален компилатор за езика Ada.

C развитие

Универсалният език за програмиране е разработен в средата на 70-те години от Денис Ричи и Кен Томпсън. Езикът стана популярен език за системно програмиране и по едно време беше използван за писане на ядрото на операционната система UNIX.

Езиковият стандарт C е разработен от работна група на ANSI през 1982 г. Международният стандарт за езика C е приет през 1990 г. Езикът C формира основата за разработването на езици за програмиране и Java.

Езикът C направи възможно действително да се отървете от Assembler при създаването на операционни системи. Например, почти целият текст на операционната система Unix е написан на C и следователно не зависи от конкретен компютър.

Основното предимство на C е неговата простота и липсата на псевдонаучни решения. Механизмът за предаване на параметри към функция (само по стойност) е описан просто и ясно. Програмистът, създаващ C програма, винаги ясно разбира как тази програма ще бъде изпълнена.

Концепцията за указател, статични и автоматични (стекови) променливи на езика C най-точно отразяват структурата на всеки съвременен компютър, следователно C програмите са ефективни и удобни за отстраняване на грешки.

В момента по-голямата част от програмите са написани на C и C++. Интерфейсът на всяка операционна система (т.нар. API - Application Program Interface), т.е. набор от системни повиквания, предназначени за разработчици на приложения, обикновено е набор от функции на езика C.

Наред с алгоритмичните езици, паралелно се развиват езици, предназначени за обработка на бизнес информация, както и езици с изкуствен интелект. Първият включва езика COBOL (COMmon Business Oriented Language), а вторият включва LISP (LIST Processing) и езиците Prolog.

Езикът LISP, разработен през 60-те години под ръководството на J. McCarthy, беше първият функционален език за обработка на списъци, който намери широко приложение в теорията на игрите.

90-те

През 90-те години, с разпространението на Интернет, възможностите за разпределена обработка на данни се разшириха, което се отрази и на развитието на езиците за програмиране. Появиха се езици, фокусирани върху създаването на сървърни приложения, като Perl, езици за описание на документи и XML.

Традиционните езици за програмиране C++ и Pascal също претърпяха промени: езикът за програмиране започна да означава не само функционалността на самия език, но и библиотеките от класове, предоставени от средата за програмиране.

Акцентът беше изместен от спецификацията на самите езици за програмиране към стандартизирането на механизмите за взаимодействие на разпределените приложения. Появиха се нови технологии - COM и CORBA, които уточняват взаимодействието на разпределени обекти.

Области на приложение на езиците за програмиране

В момента езиците за програмиране се използват в голямо разнообразие от области на човешката дейност, като например:

  • научни изчисления (езици C++, FORTRAN, Java);
  • системно програмиране (езици C++, Java);
  • обработка на информация (езици C++, COBOL, Java);
  • изкуствен интелект (LISP, Prolog);
  • издателска дейност (Postscript, TeX);
  • отдалечена обработка на информация (Perl, PHP, Java, C++);
  • описание на документи (HTML, XML).

Въз основа на историята на езиците за програмиране можем да кажем, че с течение на времето някои езици са се развили, придобили са нови функции и са останали търсени, докато други са загубили своята релевантност и днес са в най-добрия случай от чисто теоретичен интерес.



 

Може да е полезно да прочетете: