База данни уебмастър библиотека

Избор на език и среда за програмиране

На първо място, бих искал да получите само от самолета на спора за пребития тема "кой език е по-добре", "на това, което трябва да се програмира" и т.н. Те винаги се отрази твърде тесен, предубедени възгледи на проблема. Езикът не може да бъде панацея, своите добри качества за някои задачи (или хора) могат да бъдат вредни за друг.

На второ място, е необходимо да се направи разграничение на езика за програмиране (Basic, Pascal) от нейното изпълнение, което обикновено се представя като част от програмната среда (Quick Basic, Virtual Pascal) - набор от инструменти за код източник редактиране поколение изпълним код, отстраняване на грешки, управление на проекти, и така нататък. г. Синтаксисът и семантиката на езика за програмиране е фиксирано в книжовния език. Всяка програмна среда осигурява собствен преводач или съставител на този език, който често позволява използването на конструкции, без фиксиран стандарт.

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

Разбира се, на практика, обучението не може да бъде да се отделят от реалните проблеми. Така наречените образователни проблеми често страдат от прекомерно абстрактни и неприложими към живота. Усвояване на език (или среда за програмиране) само по себе си не може да се счита за цел, за да бъдем точни - това е много непродуктивен подход. развитие Ефективно език е възможно само в примери от реалния свят. От друга страна, програмни решения пълен проблем "живот" в началния етап на усвояване на езика е тежест, която може да обезкуражи, а не интерес.

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

приложимостта на езика за определена задача зависи от това какво набор от понятия, той работи в рамките на някои концепции (парадигмата), тя ви позволява да работите, какви са общите стандартни и потребителски библиотеки и т.н.

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

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

Това са основните понятия, въведени в тези или други често използвани езици, както и свързаните с него понятия: - машинописни структури / данни Всеки език се характеризира с набор от _bazovyh tipov_, попълване възможности на комплекса от поредица от _konstruktorov_: масив, запис (структура), Съюза. За някои езици има универсален тип (Variant в Delphi и Visual Basic), свободно използва като някои от основните типове. вид на степен на контрол може да бъде много по-различна - от никой до много трудно. Важно присъствие (може би като библиотека) структури от данни с променлива дължина, като динамични масиви. - подпрограма повиквания и намаляване на различията в езика на методи за определяне на процедури и функции, параметрите преминаващите изпълнения, функции определяне на присъствието и рекурсивни процедури процедурно типа данни. - Видове памет и наличието на широка класификация на видовете памет дава възможност за ефективно управление на неговото разпространение, но и прави сложността на изискваща на програмиста да по-близки отношения. Обикновено изолирани (максимален диапазон) регистри, глобално и местно равнище и динамични променливи. - Модули Наличие на логически асоциацията групи процедури / функции / променливи ви позволява да работите с големи проекти, опростяване на неговата структура. Важно свойство - способността да се опише започване на процедури и завършване на модула. - подход на обекта Комбинирането на структури и методи за тях (_inkapsulyatsiya_) обработка създава значително удобство по време на програмирането. Възможност _nasledovaniya_ позволява олово в набор от структури. Автоматично призовава конструктори и деструктори опрости проследяването на взаимоотношения. Всичко това е удобен инструмент за описване на понятията и действията на приложения. - Преносимост - независимост от хардуер, реализиран с помощта на семантиката, не зависи от конкретна машина и въвеждането на езика на редица специфични понятия - като основен тип на не-фиксиран размер (инт в C).

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

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

BASIC (за начинаещи от символи от Инструкция Code) Роден през 60-те години в САЩ (като обича простите решения), BASIC е проектиран като един прост език за лесно развитие. BASIC се превърна в де факто стандарт за микрокомпютър именно заради своята простота в развитието и в изпълнението. Въпреки това, за да се постигне това качество на редица бяха приети решения (не пишете, номериране на редове и неструктурният на Гото и т.н.), които оказват влияние върху стила на учене за програмиране. В допълнение, липсата на изразни средства е довело до огромен брой диалекти, които не са съвместими един с друг. Модерна, специализирана версия на BASIC (като Visual Basic) въпреки придобиването на "структурни" разполага с всички същите недостатъци, на първо място - небрежност по отношение на видовете и описанията. Подходящ за използване в началния етап на обучение като средство за автоматизация (в случаите, когато тя е включена в съответната система) или като средство за бърза разработка на приложения.

Паскал проектиран от известния теоретик N.Virtom въз основа на идеите на Алгол-68, Pascal е насочено главно към преподаването програмиране. Построен на принципа на "необходимо и достатъчно", тя е силно въвели конструкции, за да опише произволни структури от данни, малък, но достатъчен набор от структурирани програмни оператори. За съжаление, на обратната страна на простота и строгост са тромави описания на езикови конструкции. Най-известният изпълнението - Turbo / Borland Pascal - въпреки разликите от стандартния Паскал, е среда, както и набор от библиотеки, езиково обучение се състои от индустриална система за разработване на програми в MS-DOS среда.

Assembler Това е най-яркият представител на езици _nizkogo urovnya_, набор от понятия, които се основават на прилагането на хардуер. Това автоматизация инструмент за програмиране директно на кодовете за процесори. машинни инструкции са описани под формата на мнемонични операции, за да се постигне достатъчно висок код се променя. От набора команди различни процесори е различно, а след това и не може да се говори за съвместимост. Използването на асемблер препоръчително в случаите, когато имате нужда да си взаимодействат директно с оборудването, или да се получи по-ефективни за някаква част от програмата се дължи на по-висок контрол върху генериране на код.

C и C ++ В основата на езика C - изискванията за програмист система: пълен и ефективен достъп до всички ресурси на компютъра, на инструменти за програмиране от високо ниво, преносимост на програми между различни платформи и операционни системи. C ++, се поддържа съвместимост с С, прави обектно ориентиран програмен, идеята да експресира клас (обект), както е дефинирана от потребителя тип. Благодарение на тези качества, C / C ++ език е взел универсална позиция за всяка задача. Но неговата употреба могат да станат неефективни, където искате да получите готов за употреба в резултат възможно най-скоро, или когато става нерентабилно да се процедурен подход.

Delphi След дълга битка в предната част на програмни среди за Windows, Borland (сега Inprise) отидох на пазара за корпоративни системи. Delphi - това не е последовател на Borland Pascal / Borland C, своята ниша - т.нар бърза разработка на приложения (Rapid Application Разработване, RAD). Тези инструменти ви позволяват да се възможно най-скоро да се създаде работна програма на предварително създадени компоненти, без да харчите много усилия върху малките неща. Специално място в тези системи се възползват от възможностите за работа с бази данни.

Java като ярък пример за специализация, Java език е създаден в отговор на необходимостта от по-съвършени езикови програми преносими които се изпълняват ефективно на клиента WWW. С оглед на спецификата на околната среда, Java може да бъде добър избор за система, базирана на технологията на Интернет / Интранет.

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

От разпределението на програмиране в C ++ Работилница за Windows