<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="pt" lang="pt">
<head>
<title>Programação orientada a eventos</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Programação_orientada_a_eventos"/>
<meta name="wx_page_id" content="297200"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Programação orientada a eventos" id="wxsec1"><h1 class="pagetitle" id="wx1">Programação orientada a eventos</h1>

<p id="wx2"><b id="wx3">Programação orientada a eventos</b> é um <a href="/wpt/Paradigma_de_programa%C3%A7%C3%A3o" title="Paradigma de programação" wx:linktype="known" wx:pagename="Paradigma_de_programação" wx:page_id="208104" id="wx4">paradigma de programação</a>. Diferente de programas tradicionais que seguem um fluxo de controle padronizado, o controle de fluxo de programas orientados a evento são guiados por indicações externas, chamadas <a href="/wpt/Evento" title="Evento" wx:linktype="known" wx:pagename="Evento" wx:page_id="1161048" id="wx5">eventos</a>. Sua aplicação é grande no desenvolvimento de sistemas de <a href="/wpt/GUI" title="GUI" wx:linktype="known" wx:pagename="GUI" wx:page_id="54547" id="wx6">interface com o usuário</a>.</p>

<div id="wx_toc"/>

<a id="Vis.C3.A3o_geral" name="Vis.C3.A3o_geral"/>
<wx:section level="2" title="Visão geral" id="wxsec2"><h2 id="wx7">Visão geral</h2>

<p id="wx8">Diferente de aguardar por um comando completo que processa a informação, o sistema em tal paradigma é programado em sua base em um <a href="/wpt/La%C3%A7o_de_repeti%C3%A7%C3%A3o" title="Laço de repetição" wx:linktype="known" wx:pagename="Laço_de_repetição" wx:page_id="1455616" id="wx9">laço de repetição</a> de eventos, que recebem repetidamente informação para processar e disparam uma função de resposta de acordo com o evento.</p>

<p id="wx10">O método pelo qual a informação é adquirida por camadas mais baixas do sistema é irrelevante. As entradas podem ser <a href="/wpt/Fila" title="Fila" wx:linktype="known" wx:pagename="Fila" wx:page_id="1321127" id="wx11">enfileiradas</a> ou uma <a href="/wpt/Interrup%C3%A7%C3%A3o" title="Interrupção" wx:linktype="known" wx:pagename="Interrupção" wx:page_id="169241" id="wx12">interrupção</a> pode ser registrada para reagir, ou ainda ambos.</p>

<p id="wx13">Programas orientados a evento geralmente consistem em vários pequenos tratadores, programas que processam os eventos para produzir respostas, e um disparador, que invoca os pequenos tratadores. Uma alternativa consiste em disparar os tratadores por eles próprios, criando um efeito de evento em cascata.</p>

<p id="wx14">Esse método é bastante flexível e permite um sistema assíncrono. Programas com <a href="/wpt/GUI" title="GUI" wx:linktype="known" wx:pagename="GUI" wx:page_id="54547" id="wx15">interface com o usuário</a> geralmente utilizam tal paradigma. <a href="/wpt/Sistema_operacional" title="Sistema operacional" wx:linktype="known" wx:pagename="Sistema_operacional" wx:page_id="3839" id="wx16">sistemas operacionais</a> também são outro exemplo de programas que utilizam programação orientada a eventos, este em dois níveis. No nível mais baixo encontram-se o tratamento de interrupções como tratadores de eventos de <a href="/wpt/Hardware" title="Hardware" wx:linktype="known" wx:pagename="Hardware" wx:page_id="976" id="wx17">hardware</a>, com a <a href="/wpt/CPU" title="CPU" wx:linktype="known" wx:pagename="CPU" wx:page_id="66459" id="wx18">CPU</a> realizando o papel de disparador. No nível mais alto encontram-se os processos sendo disparados novamente pelo sistema operacional.</p>

<p id="wx19">Um <a href="/wpt/Interpretador_de_comandos" title="Interpretador de comandos" wx:linktype="known" wx:pagename="Interpretador_de_comandos" wx:page_id="52373" id="wx20">interpretador de comandos</a> pode ser visto como um caso especial de modelo orientado a eventos, no qual o sistema, até então inativo, espera um comando para ser disparado através das instruções do usuário.</p>

<a id="Refer.C3.AAncias" name="Refer.C3.AAncias"/>
</wx:section><wx:section level="2" title="Referências" id="wxsec3"><h2 id="wx21">Referências</h2>

<ul id="wx22">
<li id="wx23"><a href="/wpt/Grant_Palmer" class="new" title="Grant Palmer" wx:linktype="unknown" wx:pagename="Grant_Palmer" id="wx24">Grant Palmer</a>
<p id="wx25">: <i id="wx26">Java Event Handling</i>, Prentice Hall, <a href="/wpt/index.php?title=Especial:Booksources&amp;isbn=0130418021" class="internal" id="wx27">ISBN 0-13-041802-1</a></p>
</li>

<li id="wx28"><a href="/wpt/David_Luckham" class="new" title="David Luckham" wx:linktype="unknown" wx:pagename="David_Luckham" id="wx29">David Luckham</a>
<p id="wx30">: <i id="wx31">The Power of Events - An Introduction to Complex Event Processing in Distributed Enterprise Systems</i>, Addison-Wesley, <a href="/wpt/index.php?title=Especial:Booksources&amp;isbn=0201727897" class="internal" id="wx32">ISBN 0-201-72789-7</a></p>
</li>

<li id="wx33"><a href="/wpt/George_S._Fishman" class="new" title="George S. Fishman" wx:linktype="unknown" wx:pagename="George_S._Fishman" id="wx34">George S. Fishman</a>
<p id="wx35">: <i id="wx36">Discrete-Event Simulation - Modeling, Programming, and Analysis</i>, Springer, <a href="/wpt/index.php?title=Especial:Booksources&amp;isbn=0387951601" class="internal" id="wx37">ISBN 0-387-95160-1</a></p>
</li>

<li id="wx38"><a href="/wpt/Bertrand_Meyer" class="new" title="Bertrand Meyer" wx:linktype="unknown" wx:pagename="Bertrand_Meyer" id="wx39">Bertrand Meyer</a>
<p id="wx40">(2004): <i id="wx41">The power of abstraction, reuse and simplicity: an object-oriented library for event-driven design</i>, in <cite id="wx42">Festschrift in Honor of Ole-Johan Dahl</cite>, eds. Olaf Owe et al., Springer-Verlag, Lecture Notes in Computer Science 2635, also available <a href="http://se.ethz.ch/~meyer/publications/lncs/events.pdf" class="external text" wx:linktype="external" rel="nofollow" id="wx43">online</a>.</p>
</li>

<li id="wx44"><a href="/wpt/Miro_Samek" class="new" title="Miro Samek" wx:linktype="unknown" wx:pagename="Miro_Samek" id="wx45">Miro Samek</a>
<p id="wx46">: <i id="wx47">Practical Statecharts in C/C++: Quantum Programming for Embedded Systems</i>, CMP Books, <a href="/wpt/index.php?title=Especial:Booksources&amp;isbn=157820" class="internal" id="wx48">ISBN 1-57820-</a></p>
</li>
</ul>

<a id="Ver_tamb.C3.A9m" name="Ver_tamb.C3.A9m"/>
</wx:section><wx:section level="2" title="Ver também" id="wxsec4"><h2 id="wx49"><wx:template id="wx_t1" pagename="Predefinição:Ver_também" page_id="62492"/>Ver também<wx:templateend start="wx_t1"/></h2>

<ul id="wx50">
<li id="wx51"><a href="/wpt/Paradigma_de_programa%C3%A7%C3%A3o" title="Paradigma de programação" wx:linktype="known" wx:pagename="Paradigma_de_programação" wx:page_id="208104" id="wx52">Paradigma de programação</a></li>
</ul>

<a id="Liga.C3.A7.C3.B5es_externas" name="Liga.C3.A7.C3.B5es_externas"/>
</wx:section><wx:section level="2" title="Ligações externas" id="wxsec5"><h2 id="wx53"><wx:template id="wx_t2" pagename="Predefinição:Ligações_externas" page_id="62491"/>Ligações externas<wx:templateend start="wx_t2"/></h2>

<ul id="wx54">
<li id="wx55"><wx:template id="wx_t3" pagename="Predefinição:((en))" page_id="134483"/><span style="cursor: help; font: bold small monospace;" title="Idioma: [[Língua inglesa|en]]" id="wx56">(<a href="/wpt/L%C3%ADngua_inglesa" title="Língua inglesa" wx:linktype="known" wx:pagename="Língua_inglesa" wx:page_id="6962" id="wx57">en</a>)</span><wx:templateend start="wx_t3"/>
<p id="wx58">Tutorial "<a href="http://eventdrivenpgm.sourceforge.net/" class="external text" wx:linktype="external" rel="nofollow" id="wx59">Programação orientada a evento: Introdução, Tutorial, História</a>" por Stephen Ferg</p>
</li>

<li id="wx60"><wx:template id="wx_t4" pagename="Predefinição:((en))" page_id="134483"/><span style="cursor: help; font: bold small monospace;" title="Idioma: [[Língua inglesa|en]]" id="wx61">(<a href="/wpt/L%C3%ADngua_inglesa" title="Língua inglesa" wx:linktype="known" wx:pagename="Língua_inglesa" wx:page_id="6962" id="wx62">en</a>)</span><wx:templateend start="wx_t4"/>
<p id="wx63">Artigo "<a href="http://www.csse.uwa.edu.au/cnet/eventdriven.html" class="external text" wx:linktype="external" rel="nofollow" id="wx64">O estilo de programação orientada a evento</a>" por Chris McDonald</p>
</li>

<li id="wx65"><wx:template id="wx_t5" pagename="Predefinição:((en))" page_id="134483"/><span style="cursor: help; font: bold small monospace;" title="Idioma: [[Língua inglesa|en]]" id="wx66">(<a href="/wpt/L%C3%ADngua_inglesa" title="Língua inglesa" wx:linktype="known" wx:pagename="Língua_inglesa" wx:page_id="6962" id="wx67">en</a>)</span><wx:templateend start="wx_t5"/>
<p id="wx68">Artigo "<a href="http://codeproject.com/cpp/static-callbacks.asp" class="external text" wx:linktype="external" rel="nofollow" id="wx69">Programação orientada a evento usando Especialização de Template</a>" por Christopher Diggins</p>
</li>
</ul>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wpt/index.php?title=Especial:Categories&amp;article=Programa%C3%A7%C3%A3o_orientada_a_eventos" title="Especial:Categories" wx:linktype="known" wx:pagename="Especial:Categories" id="wx70">Categorias de páginas</a>: <span dir="ltr" id="wx71"><a href="/wpt/Categoria:Paradigmas_de_programa%C3%A7%C3%A3o" title="Categoria:Paradigmas de programação" wx:linktype="known" wx:pagename="Categoria:Paradigmas_de_programação" wx:page_id="521841" id="wx72">Paradigmas de programação</a></span></div>
<div id="wx_languagelinks">
Outras línguas: <a href="http://de.wikipedia.org/wiki/Ereignis_%28Programmierung%29" class="external" wx:linktype="interwiki" wx:pagename="de:Ereignis_(Programmierung)" id="wx73">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/Event-driven_programming" class="external" wx:linktype="interwiki" wx:pagename="en:Event-driven_programming" id="wx74">English</a> | <a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_dirigida_por_eventos" class="external" wx:linktype="interwiki" wx:pagename="es:Programación_dirigida_por_eventos" id="wx75">Español</a> | <a href="http://fr.wikipedia.org/wiki/Programmation_%C3%A9v%C3%A9nementielle" class="external" wx:linktype="interwiki" wx:pagename="fr:Programmation_événementielle" id="wx76">Français</a> | <a href="http://gl.wikipedia.org/wiki/Programaci%C3%B3n_dirixida_por_eventos" class="external" wx:linktype="interwiki" wx:pagename="gl:Programación_dirixida_por_eventos" id="wx77">Galego</a> | <a href="http://he.wikipedia.org/wiki/%D7%AA%D7%9B%D7%A0%D7%95%D7%AA_%D7%9E%D7%95%D7%A0%D7%97%D7%94_%D7%90%D7%99%D7%A8%D7%95%D7%A2%D7%99%D7%9D" class="external" wx:linktype="interwiki" wx:pagename="he:תכנות_מונחה_אירועים" id="wx78">עברית</a> | <a href="http://it.wikipedia.org/wiki/Programmazione_ad_eventi" class="external" wx:linktype="interwiki" wx:pagename="it:Programmazione_ad_eventi" id="wx79">Italiano</a> | <a href="http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E9%A7%86%E5%8B%95%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0" class="external" wx:linktype="interwiki" wx:pagename="ja:イベント駆動型プログラミング" id="wx80">日本語</a> | <a href="http://nl.wikipedia.org/wiki/Event" class="external" wx:linktype="interwiki" wx:pagename="nl:Event" id="wx81">Nederlands</a> | <a href="http://pl.wikipedia.org/wiki/Programowanie_zdarzeniowe" class="external" wx:linktype="interwiki" wx:pagename="pl:Programowanie_zdarzeniowe" id="wx82">Polski</a> | <a href="http://ro.wikipedia.org/wiki/Programare_orientat%C4%83_eveniment" class="external" wx:linktype="interwiki" wx:pagename="ro:Programare_orientată_eveniment" id="wx83">Română</a> | <a href="http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="external" wx:linktype="interwiki" wx:pagename="ru:Событийно-ориентированное_программирование" id="wx84">Русский</a> | <a href="http://tr.wikipedia.org/wiki/Olay_y%C3%B6nlendirmeli_programlama_dilleri" class="external" wx:linktype="interwiki" wx:pagename="tr:Olay_yönlendirmeli_programlama_dilleri" id="wx85">Türkçe</a> | <a href="http://zh.wikipedia.org/wiki/%E4%BA%8B%E4%BB%B6%E9%A9%85%E5%8B%95%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88" class="external" wx:linktype="interwiki" wx:pagename="zh:事件驅動程式設計" id="wx86">中文</a></div>
</body>
<wx:templatearguments for="wx_t1"><wx:argument name=""/></wx:templatearguments>
<wx:templatearguments for="wx_t2"><wx:argument name=""/></wx:templatearguments>
<wx:templatearguments for="wx_t3"><wx:argument name=""/></wx:templatearguments>
<wx:templatearguments for="wx_t4"><wx:argument name=""/></wx:templatearguments>
<wx:templatearguments for="wx_t5"><wx:argument name=""/></wx:templatearguments>
</html>
