Особливості та переваги вибраної мови програмування
Швидкість роботи — за рахунок оптимізації обчислювального алгоритму і / або більш раціонального звернення до оперативної пам’яті (ОП) (наприклад, якщо всі вихідні дані зберігаються в регістрах процесора, то можна виключити зайві звернення до ОП), перерозподілу даних, табличного обчислення функцій, обсяг коду (в тому числі за рахунок ефективного використання проміжних результатів). Скорочення… Читати ще >
Особливості та переваги вибраної мови програмування (реферат, курсова, диплом, контрольна)
Для виконання свого завдання курсового проекту я обрав низькорівневу мову програмування асемблер. Термін «Асемблер» походить від англійського сло Assembler — збирач частин в одне ціле. В ролі частин виступають оператори, а результатом збірки послідовність машинних команд. Процес збірки називається асемблюванням. Мова Асемблер об'єднує в собі плюси мови машинних кодів і деякі риси мов високого рівня. Асемблер забезпечує можливість застосування символічних імен в початковій програмі і позбавляє програміста від розподілення пам’яті комп’ютера для команд, змінних чи констант. Він також дозволяє повністю використовувати технічні можливості комп’ютера, як і мови машинних команд. Транслятор вихідних програм в асемблері набагато простіший від транслятора який потребує будь-яка високорівнева мова програмування. На цій мові можна написати таку ж ефективну за розміром і часом програму, як і на мові машинних команд. Ця перевага відсутня у мов високого рівня. Асемблер часто застосовується для програмування систем реального часу, обладнання яке забезпечує працездатність інформаційно — вимірювальних комплексів. Часто асемблер доповнюється засобами формування макрокоманд, кожна з яких наближає еквівалентна цілій групі машинних коді, такий спосіб називають макроасемблюванням. Вихідна програма написана на цій мові, складається з одного або декількох вихідних модулів, а кожен модуль з оператора. Мова асемблера дозволяє писати найшвидший і компактний код, який взагалі можливий для даного процесора. Якщо код програми досить великий, — дані, якими він оперує, не поміщаються цілком в регістрах процесора, тобто частково або повністю перебувають в оперативній пам’яті, — то майстерний програміст, як правило, здатний значно оптимізувати програму в порівнянні з транслятором з мови високого рівня по одному або декільком параметрам і створити код близький до оптимального по Парето (як правило, швидкодія програми досягається за рахунок подовження коду і навпаки):
швидкість роботи — за рахунок оптимізації обчислювального алгоритму і / або більш раціонального звернення до оперативної пам’яті (ОП) (наприклад, якщо всі вихідні дані зберігаються в регістрах процесора, то можна виключити зайві звернення до ОП), перерозподілу даних, табличного обчислення функцій, обсяг коду (в тому числі за рахунок ефективного використання проміжних результатів). Скорочення обсягу коду також нерідко підвищує швидкість виконання програми. Забезпечення максимального використання специфічних можливостей конкретної платформи, що також дозволяє створювати більш ефективні програми, в тому числі менш ресурсомісткі. При програмуванні на мові асемблера можливий безпосередній доступ до апаратури, і, зокрема, портів введення-виведення, регістрів процесора і ін. У багатьох операційних системах пряме звернення з прикладних програм для запису в регістри периферійного обладнання блоковано для надійності роботи системи і виключення «зависань «. Мова асемблера часто застосовується для створення драйверів устаткування і ядра операційної системи (або машинозалежних підсистем ядра ОС), тоді, коли важливо тимчасове узгодження роботи периферійних пристроїв з центральним процесором. Мова асемблера використовується для створення «прошивок» BIOS. За допомогою мови асемблера часто створюються машино залежні підпрограми компіляторів і інтерпретатори мов високого рівня, а також реалізується сумісність платформ.
За допомогою програми дизассемблера можна зрозуміти алгоритми роботи досліджуваної програми при відсутності лістингу на високорівневої мовою, вивчаючи тільки машинні коди, але в складних нетривіальних програмах це дуже і дуже трудомістким. В силу машинної орієнтації («низького» рівня) мови асемблера людині складніше читати і розуміти програму на ньому в порівнянні з мовами програмування високого рівня; програма складається з надто «дрібних» елементів — машинних команд, відповідно, ускладнюються програмування і налагодження, ростуть трудомісткість і ймовірність внесення помилок.
Потрібна підвищена кваліфікація програміста для отримання якісного коду: код, написаний середнім програмістом на мові асемблера, зазвичай виявляється не краще або навіть гірше коду, що породжується компілятором з оптимізацією для порівнянних програм, написаних на мові високого рівня .
Програма на мові високого рівня може бути перекомпільована з автоматичною оптимізацією під особливості нової цільової платформи, програма ж на мові асемблера на новій платформі може втратити свою перевагу в швидкості без ручного переписування коду. Як правило, менша кількість доступних бібліотек в порівнянні з сучасними індустріальними мовами програмування. Відсутня переносимість програм на комп’ютери з іншою архітектурою і системою команд.