Програмски језици

Спектар програмских језика. Превођење и интерпретација. Увод у превођење. Синтакса програмског језика. Регуларни изрази и безконтекстне граматике. Скенери и парсери. Имена, домени и повезивања. Појам времена повезивања. Управљање временом живота и меморијом објекта. Правила домена. Повезивање окружења. Преоптерећење и сродни појмови. Семантичка анализа. Атрибутивна граматика. Токови атрибута. Просторно управљање атрибутима. Маркирање синтаксног стабла. Рачунарска архитектура на нивоу асемблера. Макро архитектура радне станице. Хијерархија меморије. Представљање података. Архитектура скупа инструкција. Превођење за савремене процесоре. Контрола тока. Израчунавање израза. Структуирани и неструктуирани ток. Секвенционирање. Селекција. Итерација. Рекурзија. Недетерминисаност. Типови података. Провера типова. Записи и варијанте. Вектори. Стрингови. Показивачи и рекурзивни типови. Листе. Датотеке и улаз/излаз. Тестирање једнакости и додељивања. Потпрограми и апстракција контроле. Конфигурација стека. Позивне секвенце. Пренос параметара. Генерички потпрограми и модули. Обрада грешака. Израда извршних програма. Унутрашња структура преводилаца. Интермедијалне форме. Генерисање кода. Организација адресног простора. Објектно програмирање. Енкапсулација и наслеђивање. Иницијализација и финализација. Метод динамичког повезивања. Вишеструко наслеђивање. Неимперативни модели програмирања. Функционално програмирање. Логичко програмирање. Основи конкурентног програмирања. Дељене меморије. Побољшавање кода. Оптимизација. Елиминација редундансе у основном блоку. Глобална редунданса и анализа протока података. Побољшање петљи. Додељивање регистара. Примери.

3007-programski-jezici