<?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>Paradigma de programação</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Paradigma_de_programação"/>
<meta name="wx_page_id" content="208104"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Paradigma de programação" id="wxsec1"><h1 class="pagetitle" id="wx1">Paradigma de programação</h1>

<p id="wx2">Um <b id="wx3">paradigma de programação</b> fornece (e determina) a visão que o <a href="/wpt/Programador" title="Programador" wx:linktype="known" wx:pagename="Programador" wx:page_id="21494" id="wx4">programador</a> possui sobre a estruturação e execução do programa. Por exemplo, em <a href="/wpt/Orienta%C3%A7%C3%A3o_a_objeto" title="Orientação a objeto" wx:linktype="known" wx:pagename="Orientação_a_objeto" wx:page_id="628545" id="wx5">programação orientada a objetos</a>, programadores podem abstrair um programa como uma coleção de objetos que interagem entre si, enquanto em <a href="/wpt/Programa%C3%A7%C3%A3o_funcional" title="Programação funcional" wx:linktype="known" wx:pagename="Programação_funcional" wx:page_id="1464" id="wx6">programação funcional</a> os programadores abstraem o programa como uma sequência de funções executadas de modo <a href="/wpt/LIFO" title="LIFO" wx:linktype="known" wx:pagename="LIFO" wx:page_id="116797" id="wx7">empilhado</a>.</p>

<p id="wx8">Assim como diferentes grupos em <a href="/wpt/Engenharia_de_software" title="Engenharia de software" wx:linktype="known" wx:pagename="Engenharia_de_software" wx:page_id="803" id="wx9">engenharia de software</a> propõem diferentes <a href="/wpt/Metodologia_%28engenharia_de_software%29" title="Metodologia (engenharia de software)" wx:linktype="known" wx:pagename="Metodologia_(engenharia_de_software)" wx:page_id="845140" id="wx10">metodologias</a>, diferentes <a href="/wpt/Linguagem_de_programa%C3%A7%C3%A3o" title="Linguagem de programação" wx:linktype="known" wx:pagename="Linguagem_de_programação" wx:page_id="13352" id="wx11">linguagens de programação</a> propõem diferentes <i id="wx12">paradigmas de programação</i>. Algumas linguagens foram desenvolvidas para suportar um paradigma específico (<a href="/wpt/Smalltalk" title="Smalltalk" wx:linktype="known" wx:pagename="Smalltalk" wx:page_id="112766" id="wx13">Smalltalk</a> e <a href="/wpt/Java_%28linguagem_de_programa%C3%A7%C3%A3o%29" title="Java (linguagem de programação)" wx:linktype="known" wx:pagename="Java_(linguagem_de_programação)" wx:page_id="1097" id="wx14">Java</a> suportam o paradigma de orientação a objetos enquanto <a href="/wpt/Haskell" title="Haskell" wx:linktype="known" wx:pagename="Haskell" wx:page_id="9160" id="wx15">Haskell</a> e <a href="/wpt/Scheme" title="Scheme" wx:linktype="known" wx:pagename="Scheme" wx:page_id="40446" id="wx16">Scheme</a> suportam o paradigma funcional), enquanto outras linguagens suportam múltiplos paradigmas (como o <a href="/wpt/Lisp" title="Lisp" wx:linktype="known" wx:pagename="Lisp" wx:page_id="23726" id="wx17">LISP</a>, <a href="/wpt/Perl" title="Perl" wx:linktype="known" wx:pagename="Perl" wx:page_id="1409" id="wx18">Perl</a>, <a href="/wpt/Python" title="Python" wx:linktype="known" wx:pagename="Python" wx:page_id="34346" id="wx19">Python</a>, <a href="/wpt/C%2B%2B" title="C++" wx:linktype="known" wx:pagename="C++" wx:page_id="43168" id="wx20">C++</a> e <a href="/wpt/Oz_%28linguagem_de_programa%C3%A7%C3%A3o%29" title="Oz (linguagem de programação)" wx:linktype="known" wx:pagename="Oz_(linguagem_de_programação)" wx:page_id="1623488" id="wx21">Oz</a>).</p>

<p id="wx22">Os paradigmas de programação são muitas vezes diferenciados pelas técnicas de programação que <i id="wx23">proíbem</i> ou <i id="wx24">permitem</i>. Por exemplo, a <a href="/wpt/Programa%C3%A7%C3%A3o_estruturada" title="Programação estruturada" wx:linktype="known" wx:pagename="Programação_estruturada" wx:page_id="1593" id="wx25">programação estruturada</a> não permite o uso de <a href="/wpt/Goto_%28programa%C3%A7%C3%A3o%29" title="Goto (programação)" wx:linktype="known" wx:pagename="Goto_(programação)" wx:page_id="410503" id="wx26">goto</a>. Esse é um dos motivos pelo qual novos paradigmas são considerados mais rígidos que estilos tradicionais. Apesar disso, evitar certos tipos de técnicas pode facilitar a prova de conceito de um sistema, podendo até mesmo facilitar o desenvolvimento de algoritmos.</p>

<p id="wx27">O relacionamento entre paradigmas de programação e linguagens de programação pode ser complexo pelo fato de linguagens de programação poderem suportar mais de um paradigma.</p>

<a id="Exemplos" name="Exemplos"/>
<wx:section level="2" title="Exemplos" id="wxsec2"><h2 id="wx28">Exemplos</h2>

<ul id="wx29">
<li id="wx30"><a href="/wpt/Programa%C3%A7%C3%A3o_estruturada" title="Programação estruturada" wx:linktype="known" wx:pagename="Programação_estruturada" wx:page_id="1593" id="wx31">Programação estruturada</a>
<p id="wx32">, em contraste a <a href="/wpt/Orienta%C3%A7%C3%A3o_a_objeto" title="Orientação a objeto" wx:linktype="known" wx:pagename="Orientação_a_objeto" wx:page_id="628545" id="wx33">Programação orientada a objetos</a></p>
</li>

<li id="wx34"><a href="/wpt/Programa%C3%A7%C3%A3o_imperativa" title="Programação imperativa" wx:linktype="known" wx:pagename="Programação_imperativa" wx:page_id="479298" id="wx35">Programação imperativa</a>
<p id="wx36">, em contraste de <a href="/wpt/Programa%C3%A7%C3%A3o_declarativa" title="Programação declarativa" wx:linktype="known" wx:pagename="Programação_declarativa" wx:page_id="604846" id="wx37">programação declarativa</a></p>
</li>

<li id="wx38"><a href="/wpt/Programa%C3%A7%C3%A3o_de_passagem_de_mensagens" class="new" title="Programação de passagem de mensagens" wx:linktype="unknown" wx:pagename="Programação_de_passagem_de_mensagens" id="wx39">Programação de passagem de mensagens</a>
<p id="wx40">, em contraste de <a href="/wpt/Programa%C3%A7%C3%A3o_imperativa" title="Programação imperativa" wx:linktype="known" wx:pagename="Programação_imperativa" wx:page_id="479298" id="wx41">programação imperativa</a></p>
</li>

<li id="wx42"><a href="/wpt/Programa%C3%A7%C3%A3o_procedural" title="Programação procedural" wx:linktype="known" wx:pagename="Programação_procedural" wx:page_id="536075" id="wx43">Programação procedural</a>
<p id="wx44">, em contraste de <a href="/wpt/Programa%C3%A7%C3%A3o_funcional" title="Programação funcional" wx:linktype="known" wx:pagename="Programação_funcional" wx:page_id="1464" id="wx45">programação funcional</a></p>
</li>

<li id="wx46"><a href="/wpt/Programa%C3%A7%C3%A3o_orientada_a_fluxos" class="new" title="Programação orientada a fluxos" wx:linktype="unknown" wx:pagename="Programação_orientada_a_fluxos" id="wx47">Programação orientada a fluxos</a>
<p id="wx48">, em contraste de <a href="/wpt/Programa%C3%A7%C3%A3o_orientada_a_eventos" title="Programação orientada a eventos" wx:linktype="known" wx:pagename="Programação_orientada_a_eventos" wx:page_id="297200" id="wx49">programação orientada a eventos</a></p>
</li>

<li id="wx50"><a href="/wpt/Programa%C3%A7%C3%A3o_escalar" class="new" title="Programação escalar" wx:linktype="unknown" wx:pagename="Programação_escalar" id="wx51">Programação escalar</a>
<p id="wx52">, em contraste de <a href="/wpt/Programa%C3%A7%C3%A3o_vetorial" class="new" title="Programação vetorial" wx:linktype="unknown" wx:pagename="Programação_vetorial" id="wx53">programação vetorial</a></p>
</li>

<li id="wx54"><a href="/wpt/Programa%C3%A7%C3%A3o_restritiva" title="Programação restritiva" wx:linktype="known" wx:pagename="Programação_restritiva" wx:page_id="377484" id="wx55">Programação restritiva</a>
<p id="wx56">, que complementa a <a href="/wpt/Programa%C3%A7%C3%A3o_l%C3%B3gica" title="Programação lógica" wx:linktype="known" wx:pagename="Programação_lógica" wx:page_id="555173" id="wx57">programação lógica</a></p>
</li>

<li id="wx58"><a href="/wpt/Programa%C3%A7%C3%A3o_orientada_a_aspecto" title="Programação orientada a aspecto" wx:linktype="known" wx:pagename="Programação_orientada_a_aspecto" wx:page_id="313791" id="wx59">Programação orientada a aspecto</a>
<p id="wx60">(como em <a href="/wpt/AspectJ" class="new" title="AspectJ" wx:linktype="unknown" wx:pagename="AspectJ" id="wx61">AspectJ</a>)</p>
</li>

<li id="wx62"><a href="/wpt/Programa%C3%A7%C3%A3o_orientada_a_regras" class="new" title="Programação orientada a regras" wx:linktype="unknown" wx:pagename="Programação_orientada_a_regras" id="wx63">Programação orientada a regras</a>
<p id="wx64">(como em <a href="/wpt/Mathematica" title="Mathematica" wx:linktype="known" wx:pagename="Mathematica" wx:page_id="92647" id="wx65">Mathematica</a>)</p>
</li>

<li id="wx66"><a href="/wpt/Programa%C3%A7%C3%A3o_orientada_a_tabelas" class="new" title="Programação orientada a tabelas" wx:linktype="unknown" wx:pagename="Programação_orientada_a_tabelas" id="wx67">Programação orientada a tabelas</a>
<p id="wx68">(como em <a href="/wpt/Microsoft" title="Microsoft" wx:linktype="known" wx:pagename="Microsoft" wx:page_id="6530" id="wx69">Microsoft</a> <a href="/wpt/FoxPro" title="FoxPro" wx:linktype="known" wx:pagename="FoxPro" wx:page_id="401068" id="wx70">FoxPro</a>)</p>
</li>

<li id="wx71"><a href="/wpt/Programa%C3%A7%C3%A3o_orientada_a_fluxo_de_dados" class="new" title="Programação orientada a fluxo de dados" wx:linktype="unknown" wx:pagename="Programação_orientada_a_fluxo_de_dados" id="wx72">Programação orientada a fluxo de dados</a>
<p id="wx73">(como em <a href="/wpt/Diagrama" title="Diagrama" wx:linktype="known" wx:pagename="Diagrama" wx:page_id="92634" id="wx74">diagramas</a>)</p>
</li>

<li id="wx75"><a href="/wpt/Programa%C3%A7%C3%A3o_orientada_a_pol%C3%ADticas" class="new" title="Programação orientada a políticas" wx:linktype="unknown" wx:pagename="Programação_orientada_a_políticas" id="wx76">Programação orientada a políticas</a></li>

<li id="wx77"><a href="/wpt/Programa%C3%A7%C3%A3o_orientada_a_testes" class="new" title="Programação orientada a testes" wx:linktype="unknown" wx:pagename="Programação_orientada_a_testes" id="wx78">Programação orientada a testes</a></li>

<li id="wx79"><a href="/wpt/Programa%C3%A7%C3%A3o_gen%C3%A9rica" title="Programação genérica" wx:linktype="known" wx:pagename="Programação_genérica" wx:page_id="206875" id="wx80">Programação genérica</a></li>

<li id="wx81"><a href="/wpt/Programa%C3%A7%C3%A3o_multiparadigma" title="Programação multiparadigma" wx:linktype="known" wx:pagename="Programação_multiparadigma" wx:page_id="1623699" id="wx82">Programação multiparadigma</a>
<p id="wx83">(como em <a href="/wpt/Scala_%28linguagem_de_programa%C3%A7%C3%A3o%29" title="Scala (linguagem de programação)" wx:linktype="known" wx:pagename="Scala_(linguagem_de_programação)" wx:page_id="1584406" id="wx84">Scala</a>)</p>
</li>
</ul>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wpt/index.php?title=Especial:Categories&amp;article=Paradigma_de_programa%C3%A7%C3%A3o" title="Especial:Categories" wx:linktype="known" wx:pagename="Especial:Categories" id="wx85">Categorias de páginas</a>: <span dir="ltr" id="wx86"><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="wx87">Paradigmas de programação</a></span></div>
<div id="wx_languagelinks">
Outras línguas: <a href="http://bg.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%B8%D0%B3%D0%BC%D0%B0_%D0%BD%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5" class="external" wx:linktype="interwiki" wx:pagename="bg:Парадигма_на_програмиране" id="wx88">Български</a> | <a href="http://ca.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3" class="external" wx:linktype="interwiki" wx:pagename="ca:Paradigma_de_programació" id="wx89">Català</a> | <a href="http://da.wikipedia.org/wiki/Programmeringsparadigme" class="external" wx:linktype="interwiki" wx:pagename="da:Programmeringsparadigme" id="wx90">Dansk</a> | <a href="http://de.wikipedia.org/wiki/Programmierparadigma" class="external" wx:linktype="interwiki" wx:pagename="de:Programmierparadigma" id="wx91">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/Programming_paradigm" class="external" wx:linktype="interwiki" wx:pagename="en:Programming_paradigm" id="wx92">English</a> | <a href="http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n" class="external" wx:linktype="interwiki" wx:pagename="es:Paradigma_de_programación" id="wx93">Español</a> | <a href="http://fr.wikipedia.org/wiki/Paradigme_%28programmation%29" class="external" wx:linktype="interwiki" wx:pagename="fr:Paradigme_(programmation)" id="wx94">Français</a> | <a href="http://gl.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n" class="external" wx:linktype="interwiki" wx:pagename="gl:Paradigma_de_programación" id="wx95">Galego</a> | <a href="http://he.wikipedia.org/wiki/%D7%A4%D7%A8%D7%93%D7%99%D7%92%D7%9E%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA" class="external" wx:linktype="interwiki" wx:pagename="he:פרדיגמת_תכנות" id="wx96">עברית</a> | <a href="http://hu.wikipedia.org/wiki/Programoz%C3%A1si_paradigm%C3%A1k" class="external" wx:linktype="interwiki" wx:pagename="hu:Programozási_paradigmák" id="wx97">Magyar</a> | <a href="http://id.wikipedia.org/wiki/Paradigma_pemrograman" class="external" wx:linktype="interwiki" wx:pagename="id:Paradigma_pemrograman" id="wx98">Bahasa Indonesia</a> | <a href="http://it.wikipedia.org/wiki/Paradigma_di_programmazione" class="external" wx:linktype="interwiki" wx:pagename="it:Paradigma_di_programmazione" id="wx99">Italiano</a> | <a href="http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%91%E3%83%A9%E3%83%80%E3%82%A4%E3%83%A0" class="external" wx:linktype="interwiki" wx:pagename="ja:プログラミングパラダイム" id="wx100">日本語</a> | <a href="http://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84" class="external" wx:linktype="interwiki" wx:pagename="ko:프로그래밍_패러다임" id="wx101">한국어</a> | <a href="http://lv.wikipedia.org/wiki/Programm%C4%93%C5%A1anas_paradigma" class="external" wx:linktype="interwiki" wx:pagename="lv:Programmēšanas_paradigma" id="wx102">Latviešu</a> | <a href="http://nl.wikipedia.org/wiki/Programmeerparadigma" class="external" wx:linktype="interwiki" wx:pagename="nl:Programmeerparadigma" id="wx103">Nederlands</a> | <a href="http://pl.wikipedia.org/wiki/Paradygmat_programowania" class="external" wx:linktype="interwiki" wx:pagename="pl:Paradygmat_programowania" id="wx104">Polski</a> | <a href="http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%B8%D0%B3%D0%BC%D0%B0_%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%D1%8F" class="external" wx:linktype="interwiki" wx:pagename="ru:Парадигма_программирования" id="wx105">Русский</a> | <a href="http://sv.wikipedia.org/wiki/Programmeringsparadigm" class="external" wx:linktype="interwiki" wx:pagename="sv:Programmeringsparadigm" id="wx106">Svenska</a> | <a href="http://ta.wikipedia.org/wiki/%E0%AE%A8%E0%AE%BF%E0%AE%B0%E0%AE%B2%E0%AE%BE%E0%AE%95%E0%AF%8D%E0%AE%95_%E0%AE%95%E0%AE%B0%E0%AF%81%E0%AE%A4%E0%AF%8D%E0%AE%A4%E0%AF%8B%E0%AE%9F%E0%AF%8D%E0%AE%9F%E0%AE%AE%E0%AF%8D" class="external" wx:linktype="interwiki" wx:pagename="ta:நிரலாக்க_கருத்தோட்டம்" id="wx107">தமிழ்</a> | <a href="http://uk.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%B8%D0%B3%D0%BC%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F" class="external" wx:linktype="interwiki" wx:pagename="uk:Парадигма_програмування" id="wx108">Українська</a> | <a href="http://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B" class="external" wx:linktype="interwiki" wx:pagename="zh:编程范型" id="wx109">中文</a></div>
</body>
</html>
