КАТЕГОРИЯ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) Полиграфия- (1312) Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военни бизнесмен (14632) Висока technologies- (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къща- (47672) журналистика и смирен (912) Izobretatelstvo- (14524) външен >(4268) Informatika- (17799) Iskusstvo- (1338) историята е (13644) Компютри- (11,121) Kosmetika- (55) Kulinariya- (373) културата е (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23702) математиците на (16968) Механична инженерно (1700) медицина-(12668) Management- (24684) Mehanika- (15423) Naukovedenie- (506) образователна (11852) truda- сигурност (3308) Pedagogika- (5571) Poligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97 182 ) индустрия- (8706) Psihologiya- (18388) Religiya- (3217) Svyaz (10668) Agriculture- (299) Sotsiologiya- (6455) на (42831) спортист строително (4793) Torgovlya- (5050) транспорт ( 2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Electronics- (8441) Elektrotehnika- (4623) Мощност инженерно ( 12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Използването на комин на програмиране

купчина

Stack - най-популярната и може би най-важната структура на данните в програмирането. Топчето е памет, от която елементите са отстранени в обратен ред на добавянето им. Това е като в грешна посока, в която първата услуга на този, който го имам последната. програмист литературата са общоприети съкращение за дисциплината на работа опашката и стека. Дисциплина опашката произведения определени FIFO, което означава първи дошъл - първи да напусне (First In First Out). Дисциплина произведения определени стека LIFO, последно в - първо да напусне (Last В First Out).

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

Един пример на стека може да служи като купа сено, купчина документи на бюрото си, купчина плочи и т.н. Това е името на топчето, което на английски означава стека. Плаките са отстранени от купчината в обратен ред на добавянето им. Предлага се само горната плоча, т.е. плоча на върха на стека. Един добър пример ще служи и железопътна линия, която може да направи колите.

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

Защо стека се използва, за да спаси държавата от прекъснатата работа? Да приемем, че компютърът изпълнява задача А. В хода на нейното изпълнение е необходимо да се изпълни задачата Б. Task Статус A се съхранява, а постъпленията от компютър към B. Но задачата и задача B компютър може да преминете към друга задача на C, и необходимостта да се запази задача държава Б, преди да преминат към C. по-късно, след като C е първата възстановена задача Б, а след това, в края на B, - състоянието на проблем А. по този начин, възстановяването става в обратен ред на съхранение, което съответства на комин дисциплина работи.



Stack ви позволява да организирате рекурсия, т.е. обработка подпрограма за себе си, или директно, или чрез верига от други разговори. Да предположим, например, програма A изпълнява алгоритъм, който зависи от входния параметър Х и вероятно състоянието на глобалните данни. За прости стойности на X алгоритъм се прилага директно. В случай на по-сложни стойности X алгоритъм се реализира като намаляване на използването на същия алгоритъм за прости стойности на X. Така подпрограма се нарича, минаваща като стойност параметър опростена X. С предишния адрес стойност X, и всеки подпрограма локални променливи се съхраняват в стека. На следващо място, създаване на нов набор от локални променливи и променлива, съдържаща нов (опростена) стойност X. A нарича подпрограма работи с нов набор от променливи, без да се разрушава предходната група. В края на разговора стария набор от локални променливи и старото състояние на входния параметър X са възстановени от комина, и подпрограмата продължава от точката, в която е била прекъсната.

В действителност, това не е дори имат специален начин, за да се запази стойността на локални променливи в стека на подпрограма. Фактът, че локалните променливи на подпрограмата (т.е. нейните вътрешни оперативни променливи са създадени в началото на неговото изпълнение и унищожават в края) са поставени в една купчина, приложени в хардуер базирани на конвенционалните RAM. В началото на подпрограмата улавя стека пространство за своите локални променливи, това парче на памет в стека хардуер обикновено се нарича блок на локални променливи, или на английски рамка ( "рамка"). В края на операцията подпрограма освобождава памет, като изтриете от стака единица на своите локални променливи.

В допълнение към местните променливи се съхраняват в хардуера стека обратен адрес, когато се обаждате подпрограми. Да предположим, че в някакъв момент в програмата подпрограма Б. Преди да се обадите B адрес подпрограма на инструкцията след разговор инструкция Б, се съхраняват в стека. Това се нарича връщане адреса на програма А. В края на подпрограма B избутва обратен адрес в програма и се връща на този адрес. По този начин, компютърът продължава на програмата, като се започва с инструкцията следната инструкция за повикване. Повечето процесори имат специални екипи, които поддържат подпрограма разговор с предварителен местоположение на адреса на връщане в стека и връщане от подпрограмата на адреса, изскочил от комина. Обикновено наричаме отбор nazyvetsya обадя, да се върнете към екипа - връщане.

Купчината също постави параметри на подпрограмата или функцията преди да се обадите. Редът на настаняването им в стека зависи от споразуменията, приети в езици от високо ниво. По този начин, в C или C ++ на върха на стека е първият аргумент на функцията, под втората и така нататък. В Pascal, по целия път наоколо, на върха на стека е последният аргумент на функцията. (Така че, между другото, е в C може да функционира с променлив брой аргументи, като например ФОРМАТ, но Pascal не е.)

В FORTRAN-4, един от най-старите и най-успешните програмни езици, аргументите са преминали през специална зона на памет, която може да бъде не пуснат на стека, защото до края на 70-те години на XX век все още съществуваше компютри като IBM 360 или UCS без прилагане на хардуер стека. обратни адреси не се съхраняват в стека, и фиксирани за всяка клетка памет съчетания. Програмистите наричат ​​тази памет е статична, в смисъл, че статичните променливи винаги заемат едно и също място в паметта по всяко време по време на програмата. Когато се използва само статично рекурсия памет не е възможно, защото на новото повикване предишните стойности на локалните променливи са унищожени. В препратката Fortran-4 се използва само статични променливи, и рекурсия е забранено. Досега Fortran език е широко използван в научни и инженерни изчисления, обаче, сегашната стандартна Fortran-90 вече въвежда стека памет, отстраняване на недостатъците на по-ранни версии на езика.

<== Предишна лекция | На следващата лекция ==>
| Използването на комин на програмиране

; Дата: 14.01.2014; ; Прегледи: 191; Нарушаването на авторските права? ;


Ние ценим Вашето мнение! Беше ли полезна публикуван материал? Да | не



ТЪРСЕНЕ:


Вижте също:

  1. L отказа да уточни името (или публикуването на анонимни използването на произведението).
  2. XXVI. 3. С помощта на компютърни програми, бази данни и топология ИС Други
  3. XXXVI. 3. Регистрация и използване на търговската марка
  4. Automated асинхронно електрозадвижване с асинхронни честотни преобразуватели електрически машини.
  5. Automated асинхронно електрозадвижване с синхронни честотни преобразуватели електрически машини.
  6. Автоматизирано електрозадвижване с помощта на PWM.
  7. Автоматизирано електрозадвижване с широк.
  8. Административни нарушения, свързани с използването на бюджетни средства.
  9. Анализ на паричните потоци, като се използва косвения метод с модела на баланса
  10. Stack Architecture Microsoft TCP / IP протокол
  11. Обхватът на полуготови продукти от говеждо, агнешко, свинско и телешко месо и техните кулинарни употреби
  12. Балансът на трудовите ресурси и използването му в прогнозирането на пазара на труда




ailback.ru - Edu Doc (2013 - 2017) на година. Тя не е автор на материали, и дава на студентите с безплатно образование и използва!
Page генерирана за: 0.016 сек.