НАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 54, серия 3.2 Реализация на вградения механизъм за извод в междинната форма на SPIDER/CNP програма
|
|
- Славейко Чобанов
- преди 4 години
- Прегледи:
Препис
1 Реализация на вградения механизъм за извод в междинната форма на SPIDER/CNP програма Цанко Големанов Abstract: Control Network Programming (CNP) is a style of high-level programming that is especially effective for solving problems that have natural graph-like representation of imperative, declarative, or mixed nature. The calculation of the behavior of a SPIDER/CNP program was not carried out by separate module Interpreter. Instead, the logic of interpreter and backtracking functionality are embedded directly in the code of the SPIDER/CNP project. This manipulation is performed by SPIDER-compiler on the step of translating SPIDER program to the intermediate code. The main specifics of Net, State and Arrow compilation and the intermediate code generation are discussed. Key words: Backtracking, Control Network Programming, CNP, SpiderCNP, intermediate code. ВЪВЕДЕНИЕ Фундаменталната част на всяка SPIDER-програма е Управляващата Мрежа (УМ). УМ по същество представлява ориентиран граф и е крайно множество подмрежи, една от които е главна. Подмрежите могат да се извикват помежду си, потенциално рекурсивно. Всяка подмрежа се състои от етикетирани възли (състояния), и свързващи ги стрелки. По всяка стрелка може да се постави последователност от "примитиви". Примитивите представляват елементарни действия, еквивалентът на които в традиционните езици за програмиране са потребителски-дефинираните функции. Изпълнението на една SPIDER-програма представлява трасировка на графа-ум и търсенето на път между началното и финалното състояние. Елементарните действия (примитивите) съдържат код на избран host език (Pascal, C и др) и се изпълняват при придвижването по стрелките, свързващи отделните възли. На практика се прилага вградена стратегия за извод - разширен BACKTRACKING [1], като по-долу ще бъдат разгледани подходите с помощта на които е реализиран този основен, за изпълнението на SPIDER програмата, механизъм [2]. Особености на междинната форма на програмата Междинната форма на потребителската програма (SpiderUnit.SPI) се генерира от SPIDER компилатора. Тя представлява програма на host-езика, в която стратегията за извод и механизмите за неговото управление са реализирани с рекурсивни процедури. На всеки от обектите на УМ (подмрежи, състояния, стрелки) съответстват определени програмни структури, а в главната програма се извършва първоначална инициализация и стартиране на изпълнението на УМ. За да се внесе по-голяма яснота относно вида на междинната програма и реализацията на вградената стратегия за търсене на решение, по-долу е проследена транслацията на малка примерна програма. Без да се влиза в подробности се коментира как изглеждат транслирани подмрежа, състояние и стрелка. Разглежданата примерна SPIDER програма има една главна подмрежа MainNet, състояща се от две обикновени състояния (StartState, OtherState), две системни състояния (STOP, FINISH) и стрелки, по които е поставен единствения примитив Prim. Кодът на примитива Prim (при host език Pascal), генериращ MessageBox с различни съобщения при движение в права и обратна посока по стрелката, графичното представяне на УМ и съответстващия й текстов вид на са показани на фиг
2 {&P} procedure Prim; // Примитив Prim if FORW then showmessage('prim forw') else showmessage('prim back'); MAIN MainNet MAIN MainNet; body StartState: Prim OtherState: Prim > OtherState > FINISH; > STOP; Фиг. 1. Примерна УМ и примитив Prim В резултат от работата на SPIDER-компилатора се получава междинна програма на host-езика, първата част на която отговаря изцяло на частта Глобални декларации, а след нея под формата на рекурсивни процедури се разполага транслираната УМ. Тялото на генерираната основна функция SpiderSolutions, чрез която се стартира SPIDER-програмата, има вида показан на фиг.2. function SpiderSolutions : integer; ENT :='StartState'; //име на входното състояние на главната //подмрежа CPC :=0; //инициализиране на текущите разходи на пътя SOL :=0; //инициализиране на броя намерени решения for NN :=1 to 1 do //за всички дефинирани подмрежи new( NTO [ NN ]); NTO [ NN ]^ := DO ; try N 1( ENT,nil,0); except SpiderSolutions := SOL ; end. //задаване на мрежови опции по //подразбиране //извикване на главната подмрежа //връща броя намерени решения Фиг. 2. Стартираща функция SpiderSolutions
3 В главната програма се задават стойности на някои системни променливи, заделя се памет за мрежовите опции и се извършва обръщение към главната подмрежа MainNet (транслирана като процедурата N 1). От тази процедура се излиза в случай, че главната подмрежа е изпълнена неуспешно. Транслираната главна подмрежа MainNet е показана на фиг.3. procedure N 1 ( 1IS :string; 1DR :pointer; 1O :word); var 1DA : 1DP ; //подмрежа 1 се вика като процедура N 1 //начално състояние //системна информация за изход и обратно връщане //запис за локални данни на подмрежата inc( NTO [1]^.CurrRec); //увеличаване на мрежовото ниво на рекурсия if NTO [1]^.CurrRec-1<= NTO [1]^.Recursion then //проверка за ограничение на //нивото new( 1DA ); with 1DA ^ do // установяване на системни и потребителски локални данни Return:= 1O ; RetRec:= 1DR ; Loops :=nil; if 1IS ='StartState' then S 1( 1DA ) //извикване на състояние 1 else if 1IS ='OtherState' then S 2( 1DA ) //извикване на състояние 2 //неуспешно изпълнение на подмрежата dec( NTO [1]^.CurrRec); //намаляване на мрежовото ниво на рекурсия Фиг. 3. Транслираната главна подмрежа MainNet В тялото на процедурата, отговаряща за една подмрежа се извършва заделяне на памет за системните и потребителски данни на текущото рекурсивно ниво и според стойността на 1IS се извършва преход към начално й състояние. Неуспешното изпълнение на това състояние води и до неуспешното изпълнение на подмрежата. Тези действия обаче се извършват само в случай, че текущото ниво на рекурсивна вложеност не надхвърля максимално зададеното чрез системната опция RECURSION [3]. Тогава подмрежата е също неуспешно изпълнена. Преходът към едно състояние на подмрежа се извършва чрез извикването на съответстващата му процедура. Транслираното състояние StartState е показано на фиг.4. procedure S 1 (Rec:pointer); var SO 1 : SOP ; SA 1 : 1DP ; SL 1 : NCLRP ; //състояние 1 се вика като процедура S 1 //указател към запис с мрежовите локални данни //локални опции на състоянието //достъп до мрежовите локални данни //локален брояч на примките SA 1:=Rec; //предаване на достъп до мрежовите локални данни SO 1:= FNO ( NTO [1],1); //обновяване на локалните опции на състоянието SL 1:= FNL ( SA 1^.Loops,1); //обновяване на брояча на примките inc( SL 1^.CurrLoops); //увеличаване на брояча на примките if ( SL 1^.CurrLoops-1<= SO 1^.Loops) and //проверка за ограничение на примките ( FNV ( RNV,1)<= SO 1^.Visits) then //проверка за еднократно посещение A 1; //изпълнение на стрелка 1 A 2; //изпълнение на стрелка 2 при неуспех на 1 //{неуспешно изпълнение на състояние dec( SL 1^.CurrLoops); //{намаляване на брояча на примките Фиг. 4. Транслирано състояние StartState
4 В началото на разгледаната процедура е показано как се използва набор локални системни променливи (за достъп до локалните опции и мрежови данни), след което се извършва последователното изпълнение на излизащите от състоянието две стрелки. Ако първата стрелка (процедура A 1) се изпълни неуспешно, то се преминава към изпълнение на следващата ( A 2). Неуспешното изпълнение на всички излизащи стрелки води до неуспешното изпълнение на състоянието. Тези действия обаче се извършват само в случай, че текущия брой на примките (повторно влизане в състоянието на едно рекурсивно ниво) не надхвърля максимално зададения (системна опция LOOPS [3]) и не е установена опцията за еднократно посещение (ONEVISIT [3]). Тогава състоянието е също неуспешно изпълнено. Изпълнението на примитивите по една стрелка се извършва чрез извикване на съответстващата й процедура. Транслираната първа стрелка на състояние StartState е показана на фиг.5. procedure A 1; //стрелка 1 се вика като процедура A 1 label L 1; //етикет за начало на обратното изпълнение на стрелката failure:=false; forw:=true; //инициализация на флаговете: успех, права посока CPC := CPC + SO 1^.ArrowCost^; //увеличаване на текущите пътни разходи if SO 1^.MaxPathCost^>= CPC then //проверка на максималните пътни разходи PRIM; //право изпълнение на примитива Prim if failure then //при локален неуспех forw:=false; //смяна на посоката на движение по стрелката GoTo L 1 //преход към обратно изпълнение на стрелката S 2(Rec); //преход към състояние 2 на подмрежата //неуспешно изпълнение на състояние 2 forw:=false; //смяна на посоката на движение L 1: PRIM; //обратно изпълнение на примитива Prim //неуспешно изпълнение на стрелка 1 CPC := CPC - SO 1^.ArrowCost^; //намаляванее на текущите пътни разходи Фиг. 5. Транслирана първа стрелка на състояние StartState Изпълнението на всяка стрелка започва с нулиране на флага за неуспех и установяване на флага за движение в права посока. Следва увеличаване на текущите пътни разходи с тежестта на стрелката и проверка дали получената стойност не надхвърля максимално допустимите разходи, задавани чрез системната опция MAXPATHCOST [3]. В случай че текущите разходи са в рамките на разрешеното, се преминава към последователно изпълнение на примитивите формиращи стрелката, като след всеки се проверява условието за локален неуспех failure. При установяване на такъв, започва обратното изпълнение на преминатите примитиви и това води до неуспешното изпълнение на стрелката. Преходът към друго състояние се състои в извикване на съответстващата му процедура. Изпълнението на SPIDER УМ приключва с: неуспех (неуспешно изпълнение на главната подмрежа N 1) и брой намерени решения в системната променлива SOL = 0; успех - индикация е достигането до системното състояние FINISH и брой намерени решения в системната променлива SOL > 0. Програмната обработка на успешното изпълнение (достигнат FINISH) е реализирано като системна процедура със следната алтернативна функционалност: Ако е достигнат максималния брой търсени решения: o Генериране на изключение (exception), предаване на управлението след try except на стартовата функция SpiderSolutions и изход с
5 установения брой намерени решения SOL Иначе продължаване на търсенето на нови решения: o Инкрементиране на броя на намерените решения SOL o Задаване на локален неуспех: failure := TRUE o Задаване на обратна посока на движение по стрелката: forw := FALSE Трябва да се отбележи, че търсенето на всички възможни решения (при опция SOLUTIONS=ALL [3]) може да предизвика многократни достигания до FINISH, приключващи с неуспешно изпълнение на главната подмрежа N 1. Обаче и в този случай функцията SpiderSolutions ще изведе коректно намерения текущ брой решения в SOL. ЗАКЛЮЧЕНИЕ Разгледаната по-горе реализация на основния механизъм за извод в SPIDER/CNP има следните основни предимства: Избягва се използването на отделна интерпретираща програма за изпълнение на УМ, понижаваща многократно производителността при изпълнение на мултипарадигмения проект. Програмата се състои от два отделни езика - един за описание на примитивите (host) и друг за описание на УМ (SPIDER). Благодарение на компилирането на УМ в базов междинен код на host езика и следващо финално изграждане на проекта, става възможно двата езика могат да се развиват абсолютно независимо. Като host език може да се използва някой широко разпространен императивен език с пълните си обектно-ориентирани възможности. Към момента има реализация на SPIDER за Delphi, C++ и Lazarus, като предстои разработка и за Java платформа. ЛИТЕРАТУРА [1] R. J. Schalkoff, Intelligent Systems: Principles, Paradigms and Pragmatics. Jones & Bartlett Publishers, [2] K. Kratchanov, E.Golemanova, and T.Golemanov, Control Network Programs and Their Execution, in 8th WSEAS Int. Conf. on Artificial Intelligence, Knowledge Engineering and Data Bases (AIKED 2009), Cambridge, UK, 2009, pp [3] K. Kratchanov, T.Golemanov, and E.Golemanova, Control Network Programs: Static Search Control with System Options, in 8th WSEAS Int. Conf. on Artificial Intelligence, Knowledge Engineering and Data Bases (AIKED 2009), Cambridge, UK, 2009, pp За контакти: гл. ас. д-р Цанко Големанов, Катедра Компютърни системи и технологии, Русенски университет Ангел Кънчев, тел.: , е-mail: TGolemanov@uniruse.bg Докладът е рецензиран
Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.3 16 ноември 2004 г. Пример:
ПодробноСтруктура на програма в C - Част 6 - goto, switch, break и continue клаузи
Структура на програма в C Част 6 - goto, switch, break и continue клаузи Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 21 април
ПодробноLush Green
Класове Какво са класовете? Основен инструмент на ООП Средство за дефиниране на абстрактни типове данни Синтактична конструкция, която позволява логическо групиране на данни и операциите над тях Дефиниция
ПодробноПредефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве
Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :
ПодробноОбработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re
Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 27 февруари 2005 г. 1 #include < cstdio
ПодробноМИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА
МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА У Ч Е Б Н А П Р О Г Р А М А ЗА ЗАДЪЛЖИТЕЛНА ПРОФЕСИОНАЛНА ПОДГОТОВКА ПО ПРОГРАМИРАНЕ И АЛГОРИТМИЧНИ ЕЗИЦИ ЗА ПРОФЕСИЯ: КОД 482010 ИКОНОМИСТ - ИНФОРМАТИК СПЕЦИАЛНОСТ:
ПодробноПроф
Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол... /... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет по Математика и Информатика Специалност: Компютърни науки М И К 0
ПодробноПрограмиране на Паскал
Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като
Подробноdoll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката н
doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката на механични кукли, датиращи от древни времена. Движенията
ПодробноMicrosoft Word - Primer3_1.doc
3.1.) Създаване на нов проект demultiplexor и нов файл demultiplexor.vhd в текстовия редактор Galaxy Стартирайте текстовия редактор Galaxy, използвайки опциите : Start > Programs > WARP > Galaxy 3.1.1.
ПодробноВиртуални функции
Виртуални функции Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай,
Подробно2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет
2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнението представя кратко въведение в теорията на лексическия
Подробно-
Лениво оценяване и програмиране от по-висок ред Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 7 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Лениво оценяване 7 януари 2016 г.
ПодробноMicrosoft Word - KZ_TSG.doc
ПРИЛОЖЕНИЕ НА ТЕОРИЯТА НА СИГНАЛНИТЕ ГРАФИ ЗА АНАЛИЗ НА ЕЛЕКТРОННИ СХЕМИ С ОПЕРАЦИОННИ УСИЛВАТЕЛИ В теорията на електронните схеми се решават три основни задачи: ) анализ; ) синтез; ) оптимизация. Обект
ПодробноДинамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр
Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Трифон Трифонов (УП 16/17) Динамична памет 21 декември
Подробно4
Наследяване и 4 Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 11 май 2017 г. Трифон Трифонов (ООП 16/17) Наследяване и голямата
ПодробноСериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23
Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 f «data; f» data; Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 2 / 23 Първо изискване:
ПодробноLush Green
Конструктори Жизнен цикъл на обект За обекта се заделя памет и се свързва с неговото име Извиква се подходящ конструктор на обекта... (достъп до компоненти на обект, изпълняване на операции) Достига се
ПодробноУКАЗАНИЯ
УКАЗАНИЯ ЗА ЗАПИСВАНЕ НА ИЗБИРАЕМИ ДИСЦИПЛИНИ ПРЕЗ СУСИ І. ОБЩА ИНФОРМАЦИЯ СУСИ е информационна система, през която всеки студент може да проследи студентското си състояние, изучаваните от него дисциплини,
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев (от гледна точка на производителността) Съдържание 1. Видове транслатори 2.Фази по време на компилация 3. Оптимизационна фаза
ПодробноBlack and White
Advanced C++ Memory Management Йордан Димитър Зайков Трендафилов Memory Management Effective C++ 2 nd ed: 3, 5, 7, 8, 9, 10 More Effective C++: 1, 3, 8 Exceptional C++: 35, 36 Какво всъщност прави new?
ПодробноНАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 51, серия 4 Параметрично 3D проектиране на елемент от ръчен винтов крик Ахмед Али Ахмед Parametric
Параметрично 3D проектиране на елемент от ръчен винтов крик Ахмед Али Ахмед Parametric 3D construction of a jack-screw s part: The paper describes a method for a parametric construction of the nut, which
ПодробноНАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 47, серия 4 Сравнително изследване на някои от характеристиките на измервателните системи за позиц
Сравнително изследване на някои от характеристиките на измервателните системи за позициониране и навигация на автомобили Даниел Любенов, Митко Маринов A comparative study of some characteristics of the
ПодробноУказатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23
Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели! Калин Георгиев Увод в програмирането 21
ПодробноC++
Управляващи оператори в C++ Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 18 30 октомври 2018 г. Трифон Трифонов (УП 18/19) Управляващи оператори в C++ 18 30 октомври
ПодробноСтруктура на програма в C - Част 2 - типове, функции
Структура на програма в C Част 2 - типове, функции Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 10 март 2019 г. И. Георгиев, Х.
ПодробноВидеорекордер АHD-3908 Ръководство за експлоатация Моделите от тази серия са отличен избор за цифрово наблюдение на обекти в различни сфери, където во
Видеорекордер АHD-3908 Ръководство за експлоатация Моделите от тази серия са отличен избор за цифрово наблюдение на обекти в различни сфери, където водещ фактор е сигурността. Вградената LINUX операционна
ПодробноSlide 1
Въведение в VHDL Паралелни оператори Паралелни оператори Паралелен оператор оператор, който се изпълнява едновременно с другите оператори от този тип. Process - Процес
ПодробноMicrosoft Word - WI60V01_Instr_exploat_RFID_2011.doc
1. Предназначение на продукта Блиндираната врата управлявана чрез безконтактна карта е продукт предназначен да повиши сигурността на вашето жилище или офис, както и да улесни ежедневната експлоатация.
ПодробноКанонична форма на клас или 4 (голямата четворка) Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно и
Канонична форма на клас или 4 (голямата четворка) Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 6 април 2017 г. Трифон Трифонов
ПодробноМрежов видео рекордер Ръководство за употреба
Мрежов видео рекордер Ръководство за употреба Съдържание Работа с USB мишка... 3 Главно меню... 4 Преглед на живо... 5 Цифрово машабиране... 5 PTZ Управление... 6 Извикване на Предварителна настройка (Presets)
ПодробноПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА
СРЕДИ ЗА ПРОГРАМИРАНЕ ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА Същност на програмното осигуряване За да могат компютрите да разбират описаните на езика за програмиране алгоритми, те трябва да бъдат преведени
ПодробноНАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 51, серия 4 Методика за изследване изпреварването между автомобили с помощта на GPS приемници Свил
Методика за изследване изпреварването между автомобили с помощта на GPS приемници Свилен Костадинов, Митко Маринов, Даниел Любенов Method for testing overtaking between cars using GPS loggers: In this
ПодробноПриложение на методите на Рунге Кута за решаване на уравненията за отравяне на ядрения реактор 1. Въведение В доклада са направени поредица от изчисле
Приложение на методите на Рунге Кута за решаване на уравненията за отравяне на ядрения реактор 1. Въведение В доклада са направени поредица от изчисления върху уравненията за отравяне на ядрения реактор
ПодробноKontrolno 5, variant 1
N P - П Ъ Л Н И З А Д А Ч И КОНТРОЛНО 5 ПО ДИЗАЙН И АНАЛИЗ НА АЛГОРИТМИ СУ, ФМИ ( ЗА СПЕЦИАЛНОСТ КОМПЮТЪРНИ НАУКИ, 1. ПОТОК; 3 МАЙ 018 Г. ) Задача 1. Разглеждаме задачата за разпознаване LongestCycle:
Подробно3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението
3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението представя кратко въведение в синтактичния анализ.
ПодробноСтруктура на програма в C - Част 9 - низове от символи, C-string
Структура на програма в C Част 9 - низове от символи, C-string Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 15 май 2019 г. И. Георгиев,
ПодробноНАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 49, серия 3.2 Един подход за обработка и конвертиране на векторни изображения в WEB-базираните сис
Един подход за обработка и конвертиране на векторни изображения в WEB-базираните системи Цветан Христов Христов An Approach for Vector Graphics Manipulation and Conversion in the WEB-Based Systems: In
ПодробноДефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class
ПодробноРекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари
Рекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари 2017 г. Трифон Трифонов (УП 16/17) Рекурсия 21.12.16
Подробно