Pragmática e onomástica: significado pragmático de um nome próprio. Sobre o problema de determinar os limites da área disciplinar de linguística computacional

Enviar seu bom trabalho na base de conhecimento é simples. Use o formulário abaixo

Bom trabalho para o site">

Estudantes, estudantes de pós-graduação, jovens cientistas que utilizam a base de conhecimento em seus estudos e trabalhos ficarão muito gratos a você.

Documentos semelhantes

    Definição de marcas como designações utilizadas para individualizar produtos de pessoas jurídicas ou empreendedores individuais. Classificação das marcas: pictórica, verbal, combinada, sonora, holográfica e tridimensional.

    apresentação, adicionada em 20/03/2012

    O papel das marcas e suas variedades. Especificações da venda de produtos de marca. Aspectos legais do uso de marcas. A prática da publicidade de imagem no mercado russo. Direito exclusivo de marca. A marca como elemento de publicidade.

    teste, adicionado em 14/02/2010

    Essência, finalidade, tipos de marcas. Revisão das características do uso de uma marca registrada. Organização do comércio internacional licenciado. Comércio de produtos falsificados. Medidas tomadas na identificação de mercadorias que apresentem indícios de falsificação.

    trabalho do curso, adicionado em 28/11/2014

    Estilo corporativo: conceito, funções, elementos principais. História da marca. A importância das tradições culturais no design de marcas. O fenômeno do apagamento das fronteiras nacionais e estaduais. Procure ideias figurativas e semânticas na criatividade do design.

    trabalho do curso, adicionado em 04/04/2018

    Tipos e funções das marcas. Requisitos básicos para uma marca, bem como regras de uso. Proteção legal de marcas registradas na República da Bielorrússia. O papel da marca e do branding. Fatores que determinam o nível e a dinâmica dos preços mundiais.

    resumo, adicionado em 21/07/2013

    Envolvimento e tipos de jogos na publicidade. Publicidade como meio de comunicação. Meios publicitários esportivos e suporte de vendas: critérios de seleção de objetos e pessoas. A importância da publicidade para o desenvolvimento de marcas no ramo esportivo. Processos de transformação no esporte russo.

    resumo, adicionado em 23/03/2014

    A marca como elemento participante nas relações comerciais. Variedades e características de uma marca, sua impacto psicológico na preferência e escolha do consumidor. História da marca Apple. Princípios de criação de marcas de produtos.

    resumo, adicionado em 24/11/2011

    O planejamento de marketing como parte integrante de um plano de negócios na Rússia. Os principais objetivos do programa de marketing, orientações para avaliar sua eficácia. O problema de desenvolver, formar e promover marcas. Vantagens e funções das marcas.

    teste, adicionado em 28/02/2012

Todo mundo já teve que lidar com pessoas que têm uma ideia muito clara do que exatamente querem, pelo que estão se esforçando e o que é necessário para conseguir ou alcançar o que desejam. Ou seja, agem sempre e em tudo de acordo com um plano claro, avançando em direção ao objetivo pretendido, que imaginam com clareza. Essas pessoas não dizem: eu mesmo não sei o que quero! Eles sempre sabem disso muito bem! E geralmente alcançam seus objetivos sem parar ou voltar atrás. Essas pessoas são chamadas pragmáticos. Assim, os pragmáticos - pessoas bem sucedidas conseguindo tudo o que precisam.

Olhando para eles de fora, às vezes parece que são pessoas comuns e sortudas: como conseguem fazer tudo? Por que as circunstâncias acabam a seu favor? Como eles conseguem estar sempre onde precisam estar? Por que não conhecem, bem, ou mal conhecem, as derrotas e não sofrem fracassos? O que há de especial neles?!

Então, quem é esse pragmático? E o que é pragmatismo?

Os pragmáticos são pessoas um pouco diferentes de todas as outras, embora, em essência, não haja nada de incomum neles. Eles não são dotados do dom da clarividência, das habilidades hipnóticas e não sabem ler os pensamentos de outras pessoas. Mesmo assim, os pragmáticos são pessoas de sucesso. Por que? Mas porque eles têm uma mentalidade especial. Analítico.

São pessoas muito fortes que alcançam seus objetivos. As ações dos pragmáticos são significativas e lógicas. Em qualquer empreendimento, um pragmático tem uma estratégia clara. Ele não reconhece a autoridade de ninguém e tem um ponto de vista próprio, baseado em um raciocínio sóbrio. Um pragmático não perde tempo com pequenas coisas desnecessárias e inúteis, jogando-as de lado impiedosamente. O pragmático confia em si mesmo, nunca transferindo a responsabilidade para os outros, e alcança de forma independente tudo o que almeja. Ele não se esconderá nas costas de alguém.

É importante notar que o benefício de que um pragmático necessita não é necessariamente material. A satisfação moral pode muito bem se tornar o objetivo de tal pessoa, o que ela certamente experimentará. Os pragmáticos valorizam um recurso tão importante como o tempo, tratando-o com respeito. Eles planejam as coisas com clareza e depois seguem seus planos, nunca abandonando o que começaram no meio do caminho. E este é um dos componentes do sucesso de pessoas de tendência pragmática.

Pessoas pragmáticas não são sonhadoras, pelo contrário. Pelo contrário, são materialistas, longe do sentimentalismo. Os pragmáticos são exigentes consigo mesmos e com os outros, obrigatórios, responsáveis. Graças a uma visão sóbria do mundo, sem óculos cor-de-rosa, os pragmáticos geralmente não ficam desapontados.

Quanto à atitude pragmática em relação à riqueza material, essas pessoas valorizam muito a liberdade financeira. Eles geralmente ganham um bom dinheiro. Os pragmáticos muitas vezes se tornam empresários de sucesso. A capacidade de cálculo frio e sóbrio os ajuda muito nisso. Os pragmáticos estão dispostos a investir esforço ou dinheiro somente se tiverem certeza de que receberão muitas vezes mais do que investiram.

Parece cínico, mas não é inteiramente verdade. Os pragmáticos muitas vezes estão prontos para se preocupar sinceramente com seus entes queridos, ajudando financeira e espiritualmente, mas somente se receberem em troca a mesma atitude em relação a si mesmos. E geralmente, sentindo isso no nível subconsciente, eles não se enganam.

Essas pessoas geralmente não são mercantis. Eles não são mesquinhos, não há neles nenhuma negociação mesquinha, avareza ou caipira. Um chefe de família pragmático não molestará sua família, censurando-a pelo desperdício irreprimível. Mas nas suas acções há uma certa e considerável quantidade de egoísmo: nenhum pragmático alguma vez ajudará aqueles que não apreciam a ajuda e não serão gratos. Isso é bom ou ruim? É difícil responder de forma inequívoca. Além disso, são desconfiados e duvidam das palavras e ações de outras pessoas. As pessoas ao seu redor muitas vezes os consideram cínicos, e isso também é verdade até certo ponto.

Quando surgiu o pragmatismo? Pragmatismo na filosofia.

O pragmatismo é um ramo da filosofia cuja base é uma abordagem prática de certos dogmas da verdade, o significado dos eventos e fenômenos. O fundador é considerado (século XIX).

Foi ele quem primeiro deu uma definição clara de pragmatismo. Os trabalhos de cientistas como Guilherme James , George Satayana, John Dewey. As principais direções incluem falibilismo, verificacionismo, empirismo radical, anti-realismo, instrumentalismo, mas existem outras.

A interpretação do termo “pragmatismo” é rejeitar a objetividade das leis da filosofia, reconhecendo aspectos e fenômenos que podem ser benéficos na condução de pesquisas.

Na década de 60 do século XX, uma nova escola independente de filosofia foi formada. O seu ensino baseava-se numa interpretação do pragmatismo de acordo com as ideias dos pensadores fundadores. Os seguidores desta escola rejeitaram os postulados fundamentais do empirismo lógico e do neopositivismo. Representantes - Wilfrid Sellars, Willard Quine. Seu ponto de vista foi posteriormente formulado e desenvolvido claramente Ricardo Rorty. O ensino do pragmatismo tomou duas direções: análise E relativismo . Há também uma terceira direção neoclássica, cujo representante deve ser mencionado Susan Haack.

Apesar do fato de que outros muitas vezes desconfiam dos pragmáticos, considerando-os frios e sem alma, muitas pessoas desejam ter um caráter pragmático em no melhor sentido palavras. Mas nem todos percebem a oportunidade de cultivar características pragmáticas por conta própria. Como?

  1. Decida um objetivo. Claro, deve ser real e não fantástico. Em seguida, decida por si mesmo o que e como fazer para realizar a tarefa. E vá em direção a isso sem pensar em possíveis fracassos e sem se distrair com tudo que não está diretamente relacionado e pode interferir.
  2. Planeje perspectivas de vida não apenas para o futuro próximo, mas também para o futuro distante. Os pragmáticos não sonham, eles tentam encontrar uma oportunidade para realizar seus desejos e geralmente a encontram. Quase todos os sonhos, de uma forma ou de outra, podem ser traduzidos em algo bastante real e, portanto, alcançável.
  3. Depois de começar algo, nunca desista no meio, mas certifique-se de terminar até o fim. Qualquer problema complexo pode ser resolvido. E após a conclusão, surgirá um sentimento de satisfação e confiança.
  4. Desenvolva uma estratégia de ação e cumpra-a sempre. Todos tiveram e ainda têm desejos não realizados. Tendo compreendido claramente por si mesmo o que exatamente você mais deseja, você pode começar a traçar um plano aproximado de ações para realizar suas próprias aspirações. Se isso exigir despesas financeiras, estime como e quanto você terá que gastar. Você pode precisar da ajuda de entes queridos e amigos. E aqui também é importante imaginar com quem você pode entrar em contato e quando para obtê-lo com certeza. Você precisa saber claramente quais habilidades ou habilidades são necessárias para atingir o objetivo e o que pode ser um obstáculo para isso.
  5. e não desperdice.
  6. Aprendendo constantemente algo novo, lendo mais livros para crescimento pessoal.

Este modelo de comportamento deve ser sempre respeitado em tudo, desta forma você poderá se tornar uma pessoa organizada e pragmática.

A linguística cognitiva está intimamente relacionada à pragmática comunicativa e às teorias do discurso. Em relação a esses tópicos, difere nitidamente da linguística estrutural. Se para a linguística estrutural bastasse postular a existência da linguagem como uma certa rede abstrata de interdependências, então para a linguística cognitiva o foco não está apenas na linguagem na unidade inextricável de sua forma e substância, mas também em uma unidade superior - a unidade da linguagem e do homem agindo no mundo real, pensando e conhecendo, comunicando-se com sua própria espécie.

A linguística estrutural, estática em sua essência, no conhecimento da linguagem surgiu de objetos linguísticos como a palavra e sua forma gramatical, frase, texto; a pragmática linguística, baseada na linguística cognitiva, parte de uma pessoa, das suas necessidades, motivos, objetivos, intenções e expectativas, das suas ações práticas e comunicativas, das situações comunicativas em que participa quer como iniciador e líder, quer como “segundo ” papéis de intérprete.

Disciplinas como a análise do discurso e a análise da conversação (ou seja, da fala oral espontânea) que nela se desenvolve são orientadas para as configurações do paradigma da atividade. Para os representantes deste paradigma, a linguagem não tem valor em si e não é estudada em si e por si. Está ontológica e epistemicamente incluída na atividade humana, sendo ao mesmo tempo uma das suas ferramentas mais importantes e um dos seus produtos mais valiosos. Assim, a abordagem comunicativa da linguagem pode ser definida como uma abordagem antropológica.

A introdução da abordagem antropológica da linguagem na linguística intensificou o interesse pelos aspectos pessoais e sociais da atividade do falante. Ficou claro que a implementação e interpretação de determinadas estratégias de comunicação verbal não podem ser realizadas sem levar em conta os diversos aspectos pessoais e socioculturais do processo comunicativo. Do ponto de vista das abordagens modernas, o discurso é um fenômeno comunicativo complexo que, além dos textos, inclui também fatores extralinguísticos (conhecimento sobre o mundo, opiniões, atitudes, objetivos do destinatário) necessários à compreensão do texto.

Como os processos cognitivos são levados em consideração na pragmática comunicativa? Na comunicação em linguagem natural – com uma enorme e infinita variedade de fatores que a determinam – o número de “movimentos” possíveis simplesmente não pode ser calculado. A tarefa mais difícil de calculá-los é simplificada apenas pela identificação de algumas estruturas recorrentes e mais típicas que causam certas reações cognitivas. Muitos pesquisadores destacam dois aspectos principais na análise do discurso cognitivo: a estrutura da representação do conhecimento e os métodos de sua organização conceitual.


Assim, para a pragmática comunicativa, assim como para a psicologia cognitiva e a inteligência artificial, o tópico da representação do conhecimento é igualmente importante. Qualquer ação comunicativa no âmbito do discurso espontâneo ou organizado representa a implementação de certas estruturas comunicativo-cognitivas. Tais estruturas cognitivas são modelos de estrutura que contêm informações de natureza sociocultural, ou conhecimento do que Wittgenstein chamou de “jogos de linguagem”.

Para a compreensão dos textos – tanto escritos quanto orais – o que importa é como o “autor” da mensagem e o destinatário “modelam” o conhecimento sobre o mundo. A comunicação só é possível se houver certas “condensações” semânticas e informacionais (“frames”, “modelos mentais”, “cenários”, “modelos de situação”) na consciência de cada falante, em sua imagem do mundo) . Na década de 30 do século XX. F. Bartlett definiu o conceito de “esquema de informação”, um esquema representado na memória. Este conceito também entrou na psicologia cognitiva. Como já mencionado, na linguística computacional são utilizados os conceitos de “cenário” e “enquadramento”; na linguística e na sociologia também é utilizado o conceito de enquadramento. Os frames contribuem para o processamento cognitivo adequado de situações típicas, para a coerência do texto, fornecem expectativas contextuais e possibilitam prever eventos futuros com base nos encontrados anteriormente. A pragmática comunicativo-cognitiva oferece, portanto, algumas maneiras de estudar o que torna os textos coerentes e coerentes para quem os percebe.

Ao descrever um único ato de fala, não apenas os esquemas típicos gerais de práticas e atividades comunicativas, mas também esquemas típicos de organização do mundo interior do falante, ou seja, um conjunto de estruturas cognitivas apresentadas na sua imagem de mundo (condicionada social e etnoculturalmente, mas individual no seu modo de existência). A produção e compreensão da fala baseiam-se não apenas no conhecimento abstrato sobre eventos e situações estereotipadas - como em modelos mentais, cenários e enquadramentos - mas também no conhecimento pessoal de falantes nativos, acumulando a sua experiência individual anterior, atitudes e intenções, sentimentos e emoções. T. van Dyck formula isso de tal forma que as pessoas não agem tanto no mundo real e falam não tanto sobre ele, mas sobre modelos subjetivos de fenômenos e situações na realidade. A este respeito, podemos citar o livro do famoso linguista e filólogo russo B. Gasparov: “A singularidade da experiência linguística de vida de cada um de nós nos separa constantemente uns dos outros” (B. Gasparov. Linguagem, memória, imagem: Linguística da existência linguística. M., 1996. P. 16).

No entanto, sempre nos entendemos de alguma forma - certa ou errada; o foco na compreensão é uma condição fundamental da comunicação humana. Ao mesmo tempo, a compreensão bem-sucedida ocorre não apenas quando as pessoas tentam compreender o significado das palavras e frases de um enunciado, mas também, antes de tudo, quando estão focadas na intenção do interlocutor, no que ele deseja expressar, o que ação de fala produz.

A primeira tentativa de olhar a fala através do prisma das ações de um falante nativo é expressa na teoria dos atos de fala, em cuja formação desempenharam as opiniões de cientistas como J. Austin, J. Searle e P. Grice. um papel importante.

Na teoria dos atos de fala, formulada pela primeira vez por J. Austin, a unidade principal é o “ato de fala” - um quantum de fala que conecta uma única intenção (“ilocução”), um segmento mínimo de fala completo e o resultado alcançado. O fundamento desta tese é a ideia de que a unidade mínima da comunicação humana não é uma frase ou outra expressão, mas uma ação - a prática de certos atos, como uma declaração, uma pergunta, uma ordem, uma descrição, uma explicação, um pedido de desculpas, gratidão, parabéns.

As ideias de J. Austin foram desenvolvidas na obra de J. Searle “Speech Acts”, em que falar é considerado como a realização de determinadas ações. A fala, segundo Searle, é de natureza performativa, seu objetivo é mudar o ambiente do falante ou a forma de pensar do interlocutor. A “intenção ilocucionária” do falante é o que este tenta transmitir por meio da linguagem e, portanto, a essência do processo de comunicação reside em desvendar essa intenção. Para explicar a compreensão/mal-entendido no processo de comunicação, foi proposto o termo “ato ilocucionário bem-sucedido”, cuja essência é alcançar um determinado resultado para o qual foi concebido e implementado.

Um pesquisador de comunicação precisa saber o que exatamente contribui para a percepção correta da intenção do falante por parte do ouvinte - e isso é em grande parte tudo o que permanece fora da expressão verbal e, no entanto, acaba sendo parte integrante do enunciado. Esse conteúdo remanescente de “bastidores” refere-se tanto à experiência individual dos indivíduos que participam da comunicação, quanto ao “fundo” de conhecimento que os une ou, inversamente, os separa.

É um facto geralmente aceite que diferentes tipos de comunidades linguísticas e estratos socioculturais da sociedade são caracterizados pela originalidade do uso da língua. No processo de domínio do contexto de uma produção de fala, os participantes de um evento de fala devem ter conhecimentos gerais de base tanto de natureza linguística como histórica, cultural e social. 4. Hübbenet define conhecimento prévio como o contexto sociocultural que caracteriza a fala percebida. V.S. Vinogradov destaca o aspecto nacional do conhecimento prévio, sem estudá-lo é impossível obter uma compreensão completa e correta na troca de informações. Para o sucesso da comunicação é importante a semelhança de mentalidade, o que permite mudanças mínimas de conhecimento no processo de comunicação. O pesquisador de comunicação, portanto, precisa levar em conta o “conhecimento de base”, que é o conhecimento mútuo das realidades entre quem fala e quem ouve, que é a base da comunicação linguística.

Atualmente, existem seis direções principais no estudo do discurso: a teoria dos atos de fala, a sociolinguística interacional, a etnografia da comunicação, a pragmática, a análise da conversação e a análise da variação. As fontes para a formação de modelos de compreensão e métodos de análise do discurso nas abordagens listadas (com todas as muitas diferenças entre elas) foram as conquistas de disciplinas como linguística, antropologia, sociologia, filosofia, teoria da comunicação, psicologia social e inteligência artificial. .

Apesar das diferenças nessas abordagens, há algo comum e unificador nelas, que é ao mesmo tempo comum em todas as pesquisas linguísticas de orientação cognitiva. Esta é a antropocentricidade da linguagem, ou mais precisamente, o caráter prático, teórico e conhecimento cultural, experiência, dominada, significativa e verbalizada direta ou indiretamente por falantes nativos e, em última análise, restaurada - como resultado de mudanças semânticas e análise conceitual– na forma de uma imagem linguística do mundo.

A virada da pesquisa linguística para a pragmática da linguagem, as reais condições de seu funcionamento, foi natural e necessária. As principais tendências na ciência da linguagem nas décadas de 60 e 70, o estruturalismo linguístico e a semântica lógica, tinham uma desvantagem significativa - uma fraca ligação com a realidade e as atividades práticas das pessoas. O enunciado (e a fala em geral) foi associado nessas teorias ao falante nativo “médio” condicional, e pessoas reais que usam a linguagem com seus sentimentos, relacionamentos, intenções e objetivos permaneceram fora da análise (Gak 1998: 555). Aos poucos, chegou-se ao entendimento de que para uma explicação mais completa da linguagem - tanto sua estrutura quanto as características de seu uso na fala - é necessário recorrer aos fatores de funcionamento das unidades linguísticas, ou seja, à pragmática.

A identificação e formação da pragmática linguística propriamente dita foram estimuladas, por um lado, pelas ideias de Ch.S. Pierce e CHU. Morris, e por outro lado, baseou-se no conceito do falecido Wittgenstein. De acordo com V.V. Petrov, foram os trabalhos de L. Wittgenstein que contribuíram amplamente para a transformação da pragmática, como parte da teoria semiótica geral, em um campo independente de pesquisa, lançando as bases para uma poderosa corrente obras modernas sobre pragmática (Petrov 1987). O início do desenvolvimento intensivo da pragmática é convencionalmente atribuído a 1970 - época do Simpósio Internacional sobre Pragmática das Linguagens Naturais (Bulygina 1981:333).

A pragmática, como direção especial no estudo da linguagem, desde o início de sua existência declarou-se muito extensa e muito

disciplina científica indefinida. Quase todos os trabalhos sobre pragmática (independentemente de seu autor ser geralmente orientado para a semântica linguística, a filosofia da linguagem ou a lógica formal) começam por redesenhar o objeto de pesquisa e, de acordo com isso, definir a compreensão do autor sobre a pragmática em linguagem.

Caracterizando as tarefas e problemas da pesquisa pragmática, N.D. Arutyunov e E.V. Paducheva observa que, expandindo-se gradualmente, “revelam uma tendência a confundir as fronteiras entre a linguística e as disciplinas relacionadas (psicologia, sociologia e etnografia), por um lado, e seções vizinhas da linguística (semântica, retórica, estilística), por outro” ( Arutyunova, Paducheva 1985: 4).

A pragmática linguística está intimamente relacionada à sociolinguística e à psicolinguística. A presença de interesses comuns entre a pragmática e a sociolinguística é tão grande que levou ao estabelecimento na ciência estrangeira até mesmo de uma disciplina separada - a sociopragmática, que estuda a dependência da comunicação verbal de fatores sociais (ARSLS 1996: 541; ver também Leech 1983: 10).

A indefinição das fronteiras da pragmática linguística se deve aparentemente ao fato de que em pouco tempo ela absorveu as ideias da teoria da comunicação linguística, da teoria do texto, da gramática comunicativa, dos novos conceitos de retórica, da teoria dos atos de fala, a teoria do discurso, ou seja, todas aquelas disciplinas que têm como tema o uso da linguagem pelo ser humano.

Como resultado, a comunidade científica está gradualmente estabelecendo uma compreensão da pragmática como uma direção associada à resolução de uma ampla variedade de problemas na descrição do funcionamento da linguagem. O desenvolvimento das ideias da pragmática linguística, a definição das esferas de sua aplicação e tarefas reflete-se em inúmeras interpretações do termo “pragmática”.

O termo "pragmático" (aprendizagem de línguas) apareceu na década de 1920 - em forma de adjetivo foi usado em 1923 por B. Malinowski em um apêndice do livro "The Meaning of Meaning" de Ogden e Richards. Então, e esta posição na “história da pragmática” é geralmente aceita, o termo “pragmática” foi criado por C. Morris em 1938 para uso na conhecida tríade de sintática (sintaxe), semântica e pragmática como partes da semiótica. (Nerlich & Clarke 1994; Nerlich 1995). C. Morris, realizando pesquisas que visam estudar a estrutura de uma situação sígnica (semiose) em um aspecto dinâmico e processual, incluindo os participantes dessa situação, distinguiu entre os três aspectos da semiótica acima mencionados, definindo a pragmática como “a relação de sinais para aqueles que os interpretam” (Morris 1938: 6). Porém, mais tarde, em conexão com o desenvolvimento das visões do pesquisador, e também devido ao fato de o termo já ter adquirido ambiguidade e imprecisão indesejadas, Morris define pragmática como o estudo da “origem, usos e efeitos dos signos)” ( Morris 1946: 219). Desta definição segue-se que a atenção do pesquisador deve estar voltada para um estudo abrangente de três processos inter-relacionados de uma cadeia - a formação, uso (funcionamento) e influência dos signos. Uma compreensão da pragmática em consonância com a definição de Morris é encontrada no trabalho de G. Klaus, que se refere à pragmática como “aspectos psicológicos e sociais do uso de signos linguísticos” (Klaus 1967: 22).

A visão da pragmática, tal como apresentada por Charles Fillmore, parece interessante. Sua definição é bastante detalhada e diz o seguinte: “A pragmática estuda a relação tridimensional que une (1) as formas linguísticas, (2) as funções comunicativas que essas formas são capazes de desempenhar com (3) contextos ou ambientes em que essas formas linguísticas formulários podem ter funções de linguagem de dados" (citado de Pocheptsov (Jr.) 1984: 33).

Uma definição linguística bem conhecida de pragmática no final dos anos 70 e início dos anos 80 foi a definição proposta por R.S. Stolnaker. A pragmática, segundo Stolnaker, é o estudo dos atos de fala e dos contextos em que são produzidos e implementados. O objetivo da pragmática como disciplina deveria ser destacar a classificação dos atos de fala e seus produtos, ou seja, declarações relevantes (Stalnaker 1972).

É frequentemente enfatizado que a pragmática corresponde em grande parte ao princípio da atividade e, portanto, introduz um aspecto acional (atividade) na descrição da linguagem. A correspondência da pragmática com os requisitos do princípio de atividade reflete-se na definição assunto pragmáticos, dado por E.S. Aznaurova. O tema da pragmática linguística, na sua opinião, é “o estudo da linguagem no aspecto da atividade humana num contexto social amplo” (Aznaurova 1988: 8). 1 O estudo dos fatos da linguagem no aspecto da atividade humana é considerado o principal postulado da pragmática. Mas, conforme observado por E.S. Aznaurov, “a amplitude do postulado levou a uma difusão significativa de tópicos e problemas discutidos nesta direção linguística, que vão desde a interpretação pragmática dos signos linguísticos e a teoria dos atos de fala, até o estudo dos parâmetros pragmáticos da comunicação literária e o texto na sua dinâmica, correlacionado com o “eu” criador da pessoa do texto” (ibid.: 10).

Uma ampla compreensão da pragmática, quando o escopo de seu interesse inclui questões de dêixis, atos de fala, pressupostos, implicaturas de conversão, problemas associados à interpretação da fala, quando a tarefa da pragmática como uma ciência linguística separada é chamada de “o estudo das correspondências entre unidades linguísticas e os efeitos do seu uso” (Pocheptsov 1985: 16) ou “o estudo da relação entre formas linguísticas (entidades) e os utilizadores destas formas” (Yule 1996: 4) opõe-se à abordagem quando o único O verdadeiro objeto de estudo no campo da pragmática é considerado realizado no texto

Falando sobre o tema da pragmática, deve-se ter em mente que embora um grande número de linguistas concorde com o reconhecimento da pragmática como uma disciplina linguística especial, esta posição não é geralmente aceita. Vários pesquisadores negam à pragmática seu próprio objeto de estudo e concluem que é impossível considerá-la como mais um componente da teoria da linguagem. É-lhe dado apenas o estatuto de uma perspectiva especial (perspectiva pragmática) na consideração dos fenómenos linguísticos (ver Verschueren 1999). atitude pragmática, na verdade visão geral definido como “a intenção consciente do remetente de uma mensagem, materializada no texto, de ter um efeito correspondente no destinatário do discurso” (Naer 1985: 16). Os proponentes desta compreensão da pragmática acreditam que a limitação máxima proposta para a aplicação da pragmática torna possível identificar uma esfera na linguagem associada à influência da fala no estabelecimento de metas, semelhante à ação (Geliya 1988: 189).

Essa compreensão das tarefas da pragmática se reflete em pesquisas em que a ênfase está no resultado final da comunicação - o efeito de impacto (efeito perlocucionário segundo Austin), quando as questões de estudar o controle verbal do comportamento humano, modelando o social e o comportamento individual das pessoas por meio da fala está na vanguarda (Kiseleva 1978).

A abordagem pragmática para a compreensão da natureza da linguagem foi formada e continua a se desenvolver sob o signo da inclusão da subjetividade do falante nessa compreensão. Assim, no conceito de Yu.S. A categoria de sujeito de Stepanov é definida como a categoria central da pragmática moderna (Stepanov 1981; 1985; 2001). Ao mesmo tempo, com cada vez mais clareza, percebe-se a necessidade de levar em conta o fator destinatário, ou seja, a subjetividade do ouvinte, que serve de ponto de partida para o desenvolvimento de uma teoria de interpretação das obras de fala que aparecem em determinados contextos comunicativos, quando o objeto da interpretação é o que comumente se chama de significado pragmático do enunciado (Arutyunova 1981).

Alguns pesquisadores acreditam que o conceito de interpretação permite formular observações sobre as propriedades da linguagem da forma mais natural e, de uma forma ou de outra, está presente em qualquer pesquisa pragmática (Demyankov 1981: 369). O terceiro ponto de vista sobre a importância dos fatores do sujeito da fala e do destinatário é a abordagem que define a trajetória da pragmática como um movimento do egocentrismo ao princípio do binário cumulativo “ao longo da linha de síntese da subjetividade do remetente e a subjetividade do destinatário em um fator único e de ação coletiva” (Sidorov 1995: 470).

Uma descrição abrangente dos vários factores que são enfatizados na investigação pragmática “permite-nos compreender melhor as especificidades da linguagem na sua utilização real” (Gak 1997: 361) e atesta o extraordinário potencial da pragmática.

Como pode ser visto nas definições acima, trazer à tona um ou outro grupo de fatores nos permite falar sobre tipos diferentes ou variantes da pragmática. No início da década de 1970, T.M. Dridze assumiu com confiança a existência de duas pragmáticas - “pragmática do comunicador” e “pragmática do destinatário” (Dridze 1972: 34-35). J. Yule, já no final da década de 1990, especificou o conceito de usuário (“usuário”) e deu uma definição ampla de pragmática, que leva em conta a posição do remetente, a posição do destinatário e define diferentes opções para a pragmática, dependendo da perspectiva do estudo. A pragmática de J. Yule “trata do estudo do significado tal como é comunicado pelos falantes (ou escritores) e interpretado por um ouvinte (ou leitor), o que nos permite falar sobre: ​​(1) a pragmática é o estudo do significado do falante); (2) a pragmática é o estudo do significado contextual; (3) pragmática das implicações (pragmática é o estudo de como é comunicado mais do que dito); (4) a pragmática é o estudo da expressão da distância relativa (Yule 1996: 3).

Aqui é interessante comparar as variedades de pragmática propostas por J. Yule com uma apresentação bastante detalhada das tarefas da pragmática conforme formuladas por N.D. Arutyunova. O autor identifica quatro problemas principais, incluindo um conjunto de questões relacionadas ao sujeito falante, ao destinatário, à sua interação na comunicação e à situação de comunicação.

Em conexão com o tema da fala, a pragmática estuda: (1) os objetivos explícitos e ocultos do enunciado; (2) táticas de fala e tipos de comportamento de fala; (3) regras de conversação, sujeitas ao princípio da cooperação; (4) a atitude do falante ou o significado pragmático do enunciado; (5) referência do locutor; (6) pressupostos pragmáticos; (7) a atitude do locutor em relação ao que está comunicando.

Em relação ao destinatário da fala, são considerados: (1) interpretação da fala; (2) o impacto da declaração no destinatário; (3) tipos de resposta de fala ao estímulo recebido.

Em relação às relações entre os participantes da comunicação, são estudados: (1) formas de comunicação verbal; (2) lado social e de etiqueta do discurso; (3) a relação entre os participantes da comunicação em certos atos de fala (ou seja, relações de papéis).

Em relação à situação da comunicação na pragmática, estudam-se: (1) a interpretação dos signos dêiticos, bem como dos componentes indexicais no significado das palavras; (2) a influência da situação de fala no tema e nas formas de comunicação (Arutyunova 1990a: 390).

Comparando as variantes da pragmática de J. Yule e o escopo de aplicação, as tarefas da pragmática de N.D. Arutyunova, não se pode deixar de notar que a pragmática das implicações, destacada por Yul como um ponto separado, está incluída em N.D. Arutyunova em uma ampla gama de questões estudadas em conexão com o assunto da fala, e a pragmática do significado contextual de Yul nada mais é do que um círculo restrito de questões consideradas em conexão com o destinatário da fala. Em geral, observamos o isomorfismo na definição de um conjunto de questões básicas, que pode ser interpretado como a formação gradual dos contornos da pragmática.

O apelo dos linguistas ao estudo do funcionamento das unidades linguísticas da fala “permite-nos falar de pragmática no sentido das propriedades comunicativas das unidades em consideração. Falam de “pragmática da palavra”, “pragmática da frase. ”(declaração), etc., significando, em primeiro lugar, as características de uso de entidades linguísticas em determinadas situações e condições pragmáticas de funcionamento e, em segundo lugar, a implementação do significado no contexto sob a influência de vários parâmetros pragmáticos. podemos falar de “pragmática externa”, e no segundo - de “pragmática interna” (às vezes chamada de pragmasemântica)" 1 (Gorshunov 1999: 5-6). Acreditamos que o que é explicitamente proposto por Yu.V. A divisão da pragmática em “externa” e “interna” feita por Gorshunov, contida implicitamente em uma série de obras, é de interesse teórico e mais uma vez confirma todas as razões para falar sobre o significado pragmático como parte do significado linguístico.

A compreensão da “pragmática interna” como socialmente consciente e fixada pelo uso ao nível do sistema de informação pragmático permite três interpretações: (1) a informação semântica é considerada como parte da informação comunicativo-pragmática; (2) ambos os componentes são concebidos como iguais, autónomos, mas cumprindo o seu propósito em estreita ligação entre si, ou (3) a informação pragmática é considerada incorporada na informação semântica (cf. Leech 1983: 6).

A primeira abordagem (Malcolm e outros filósofos de Oxford) baseia-se nas ideias do falecido Wittgenstein, quando "para uma grande classe de casos - embora não todos - em que usamos palavras, o significado pode ser definido da seguinte forma: o significado de uma palavra é o seu uso na linguagem" (citado por Arutyunov 1976: 44). A teoria do significado com essa abordagem perde seu caráter denotativo e se torna uma teoria comunicativa do significado, que estava relacionada não apenas ao significado do enunciado, mas também ao significado das palavras nele incluídas. Para a linguística, este tipo de teoria, em que não é feita nenhuma distinção fundamental entre o significado de uma palavra, frase e afirmação, dificilmente pode ser eficaz (ver Arutyunova 1976: 39-45 para mais detalhes).

No âmbito da segunda abordagem, há tentativas de incluir significados independentes do contexto de unidades linguísticas sob a jurisdição da semântica, e as funções de fala de enunciados linguísticos e funções situacionais sob a jurisdição da pragmática.

M. V. Nikitin define pragmasemântica como o estudo daquela parte do significado total das declarações e textos que se relaciona com as intenções do discurso, ou seja, àquelas tarefas pragmáticas que o falante resolve por meio da fala (Nikitin 1996. 619). Qua. definição da linguagem de interpretação usada nas escolas de semântica de Moscou e da Polônia como uma “linguagem pragmasemântica” em Sannikov 1989. Ver também a este respeito Pocheschov (Jr.) 1984; Stalnaker 1972.

O lado condicionado das proposições nelas expressas. Alguns pesquisadores definem os limites da pragmática estudando os aspectos do significado que não são cobertos pela teoria semântica (Levinson 1983). Ao mesmo tempo, ao oferecer este tipo de distinção, reconhece-se que ainda não foi desenvolvida uma teoria adequada (semântica ou pragmática) que tornaria possível responder inequivocamente à questão de onde termina a semântica e começa a pragmática (ver, por exemplo). exemplo, Bulygia 1981; A interface Semântica/Pragmática... 1999).

Por outro lado, muitos investigadores apontam que os resultados mais adequados podem ser alcançados se a semântica e a pragmática forem consideradas como partes interligadas de um todo: “Não há semântica sem pragmática - mas também não há pragmática sem semântica” (Kiefer 1985 : 347). P. Sgall também observa que todas as tentativas de estudar a semântica sem levar em conta a pragmática estão fadadas ao fracasso (Sgall 1986: 45).

De grande interesse no que diz respeito à relação entre pragmática e semântica é o ponto de vista de Yu.D. Apresyan. Compreendendo a pragmática de forma bastante ampla, o autor acredita que apenas a informação pragmática que é lexicalizada ou gramaticalizada é de interesse linguístico, ou seja, adquiriu um status permanente na língua (Apresyan 1988; 1995a). Um ponto de vista semelhante é expresso por outro representante da Escola de Semântica de Moscou, V.Z. Sannikov, que entende o significado de uma unidade linguística como sua semântica e pragmática, interpretando esta última como “informação sobre respeito falante e ouvinte dos objetos descritos e entre si" (Sannikov 1989: 84).

Muito em comum com o conceito de Yu.D. Apresyan tem a visão do pragmatismo V.I. Zabotkina (Zabotkina 1989; 1993). Reconhecendo a presença de uma conexão dialética complexa entre pragmática e semântica, o pesquisador define a pragmática de uma palavra como parte da semântica total, que carrega informações sobre o status social dos falantes, as condições reais de consumo e o efeito esperado no ouvinte. . Em outras palavras, estamos falando aqui de componentes pragmáticos, que são fixados pelo uso na estrutura semântica da palavra, refletem os parâmetros de seu uso em situações típicas de comunicação e garantem a marcação pragmática da palavra no nível do sistema.

Da forma mais radical, A. Vezhbitskaya e seus seguidores (E.V. Paducheva e outros) resolvem o problema da fronteira entre semântica e pragmática. Esta questão em si, acredita Vezhbitskaya, não faz sentido, devido ao fato de que tal fronteira não existe: a pragmática é uma parte da semântica que estuda uma certa gama de significados linguísticos. No conceito de Wierzbicka, a autonomia da pragmática em relação à semântica acaba sendo imaginária, há uma semântica unificada da pragmática, ou simplesmente pragmática - uma das partes em que o autor divide a tarefa de descrever a semântica de uma linguagem. “Os significados linguísticos são pragmáticos em princípio: o que está associado a uma pessoa, a uma situação de fala em uma língua, não são quaisquer elementos expressivos especialmente destacados, mas em geral o significado da esmagadora maioria das palavras e unidades gramaticais"(Paducheva 1996: 222). Os limites da pragmática, tal como são entendidos no trabalho de Wierzbicka 1991, são delineados precisamente com base na natureza do significado, quando a competência da pragmática inclui aqueles elementos linguísticos em que componentes atitudinais ( subjetivos, expressivos e outros) dominam os denotativos, ou seja, elementos linguísticos de qualquer tipo formal, unidos apenas pelo fato de carregarem principalmente “informação pragmática” (Paducheva 1996: 223).

Sabe-se que os significados das unidades linguísticas estão intimamente relacionados com as funções que desempenham, uma vez que o estudo das funções de uma determinada forma abrange a análise do seu significado: “O significado está diretamente subordinado à função que a unidade correspondente desempenha; é formado dependendo da finalidade desta unidade” (Arutyunova 1976: 44). Distinguindo entre funções semânticas e estruturais da linguagem, alguns linguistas apontam para uma relação complexa entre as funções semântico e P ragmático. Este último pode ser considerado como um aspecto especial das funções semânticas, cuja essência é transmitir a relação entre o conteúdo das unidades linguísticas e o enunciado como um todo aos participantes do ato de fala e suas condições (Boidarko 1987: 8- 9). Ou seja, é muito difícil traçar uma linha clara entre semântica e pragmática. Ambos (em um grau ou outro) refletem o antropocentrismo que permeia a ciência moderna, utilizam amplamente dados extralinguísticos, devem levar em conta o fator contexto, etc.

Em nossa pesquisa de dissertação, partimos de uma compreensão ampla da pragmática como uma disciplina linguística especial, tomando como base a definição ampla e multifacetada de D. Crystal. Pragmática é a ciência “que estuda a linguagem do ponto de vista de quem a utiliza, em termos da seleção de unidades linguísticas, das restrições ao seu uso na comunicação social e do efeito da influência sobre os participantes na comunicação” (Crystal 1985: 240).”

Ao compreender a pragmática como parte do significado linguístico, aderimos à abordagem pragmático-semântica baseada nos conceitos de Yu.D. Apresyan, A. Vezhbitskaya, V.I. Zabotkina.

Não há dúvida de que o estudo da “pragmática interna” (pragmasemântica) é uma das tarefas da pragmática linguística e diz respeito à sua área pouco estudada e controversa (Gorshunov 2000). A investigação, o desenvolvimento e o esclarecimento de componentes pragmáticas já estabelecidas, identificando as características da sua interação e impacto no destinatário nos diversos materiais lexicais, são de significativo interesse teórico e prático e desempenham um papel importante no estudo da semântica e pragmática das unidades linguísticas.

A emergência da pragmática provavelmente ainda não está completa. Ainda restam muitas questões controversas. Estas são questões sobre a relação entre pragmática e

Qua. com definição posterior do mesmo autor: “A pragmática estuda os fatores que determinam nossa escolha de meios linguísticos em interação social e o impacto desta escolha nos outros" (Crystal 1997: 120) sociolinguística, psicolinguística, estilística, retórica, com a qual a pragmática tem extensas áreas de intersecção de interesses de pesquisa. Esta é uma série de questões relacionadas a como uma pessoa se incorpora em um o signo linguístico, num enunciado, vive e atua como uma personalidade linguística, utilizando a linguagem para atingir os seus objetivos, transmitir a sua atitude perante a realidade, o conteúdo da mensagem, aos parceiros de comunicação e influenciá-los.

Profunda e precisa a este respeito parece ser a tese de J. Versuren de que a dimensão que a pragmática é chamada a compreender e revelar é o espaço criado pela conexão entre a linguagem e vida humana em geral (Verschueren 1999: 6).

» Andrew Hunt e David Thomas são provavelmente conhecidos por todos os envolvidos em programação, muitos deles principalmente por menções em coleções e citações em artigos mais modernos. Considerando que esta coleção Conselho prático pois os desenvolvedores celebrarão em breve seu vigésimo aniversário, o fato de ainda ser citado como fonte de informações valiosas é respeitável. O segredo é simples: os autores, embora tenham enfatizado a aplicabilidade prática de suas dicas, falaram principalmente sobre os princípios fundamentais da construção de um fluxo de trabalho. Muitos dos pontos técnicos mencionados no texto estão de fato desatualizados, mas as abordagens básicas de desenvolvimento, testes, interação dentro da equipe e com o público continuam relevantes.

Abaixo você encontrará um resumo dos primeiros quatro capítulos; eles falam sobre o conceito de autoeducação do autor, os fundamentos de uma abordagem pragmática da programação e as regras para seleção de ferramentas. O livro é muito conveniente para a leitura “ponto a ponto”: o material é apresentado na forma de dicas de parágrafos separados, munidos de referências cruzadas. Além do escopo deste resumo há exemplos de linguagens específicas, análises de casos da prática do autor, esses mesmos links, exercícios de consolidação e algumas analogias engraçadas que animam o texto - por isso recomendo que você leia o original, se houver alguma das teses Interessa você. Gostar de ler!

Dica 1: cuide do seu artesanato

Não adianta desenvolver software se você não se preocupa com a qualidade do trabalho. Isto precisa de ser feito não apenas a curto prazo, em relação a projectos específicos, mas também a longo prazo - através do desenvolvimento da abordagem e dos princípios de trabalho correctos.

O que torna um programador pragmático?

  • Percepção antecipatória e adaptação rápida. Os pragmáticos têm um instinto para tecnologias e métodos úteis que ficam felizes em testar na prática. Eles são capazes de compreender rapidamente nova informação e combiná-lo com o conhecimento existente.
  • Curiosidade. Os pragmáticos fazem perguntas, coletam pequenos fatos e estão interessados ​​nas experiências de outras pessoas.
  • Reflexao critica. Os pragmáticos não consideram nada garantido sem primeiro se familiarizarem com os fatos.
  • Realismo. Os pragmáticos tentam descobrir onde estão as armadilhas em cada problema que encontram.
  • Versatilidade. Os pragmáticos se esforçam para se familiarizarem com mais tecnologias e sistemas operacionais e trabalham para acompanhar os tempos.
Dica 2: Pense no trabalho

Ao escrever o código, você deve se concentrar totalmente no que está fazendo. Nunca entre no modo piloto automático. Pense constantemente, refletindo criticamente sobre o seu trabalho em tempo real. Isso é chamado de programação consciente. Dominá-lo exigirá algum tempo e esforço, mas a recompensa será o hábito de fazer pequenas melhorias constantemente, melhorando a qualidade geral do código e reduzindo o tempo de desenvolvimento.

Capítulo 1: Filosofia Pragmática

A programação pragmática se origina da filosofia do pensamento pragmático. Este capítulo descreve suas principais disposições.

Dica 3: Apresente soluções para os problemas, não desculpas.

Um dos pilares da filosofia pragmática é a ideia de assumir a responsabilidade por si mesmo e por suas ações. Um programador pragmático assume que sua carreira e resultados de trabalho dependem principalmente dele e não tem medo de admitir ignorância ou erro.

Aceitar a responsabilidade pelos resultados requer disposição para prestar contas. Se você cometer um erro (e todos nós cometemos), admita-o honestamente e tente oferecer sugestões de melhoria. Você não deve transferir a culpa para colegas, parceiros, ferramentas ou inventar desculpas - isso é uma perda de tempo improdutiva. O mesmo se aplica a situações em que se depara com exigências que não consegue satisfazer: não diga simplesmente: “Isto é impossível”, mas explique o que é necessário para salvar a situação (recursos adicionais, reorganização, etc.).


Dica 4: Não deixe janelas quebradas

Entropia é um termo da física que se refere ao nível de “desordem” em um sistema. A entropia no universo tende ao máximo, e o mesmo padrão é observado no desenvolvimento. O aumento do grau de desordem nos programas é chamado de corrupção de programas no jargão profissional. Existem muitos fatores que contribuem para o prejuízo dos programas, mas o mais importante deles é a cultura de trabalhar no projeto.

De acordo com a teoria das janelas quebradas, decisões malfeitas e áreas problemáticas tendem a se multiplicar. Não deixe “janelas quebradas” (designs ruins, bugs, código de baixa qualidade) sem supervisão. Se você não tiver tempo para fazer um reparo adequado, pelo menos comente o fragmento errado ou exiba uma mensagem "Em construção", ou use dados fictícios. É necessário tomar pelo menos a menor ação para evitar mais destruição e mostrar que você está no controle da situação. O descuido acelera a deterioração mais rapidamente do que qualquer outro factor.

Dica 5: seja um catalisador para a mudança

Se você perceber o que precisa ser feito, não espere a iniciativa dos outros. Faça um plano, resolva os detalhes - as pessoas estarão mais dispostas a apoiá-lo se perceberem que o trabalho já começou.

Dica 6: observe as mudanças

Mantenha os olhos no panorama geral do que está acontecendo. Observe constantemente o que está acontecendo ao seu redor, e não apenas o que você faz pessoalmente. A maioria dos desastres de código começa com pequenas coisas que se acumulam até que um dia o projeto dá errado. Passo a passo, o sistema se desvia dos requisitos, o código fica repleto de “remendos” até que nada resta do original. Muitas vezes são as pequenas coisas acumuladas que levam à destruição do moral e das equipes. Mas se você detectar esse processo nos estágios iniciais e agir imediatamente (veja o parágrafo anterior), poderá escapar com poucas perdas.

Dica 7: Faça da qualidade um requisito

A qualidade deve ser uma cláusula negociável no contrato que você celebra com os usuários. É claro que o ideal é que seja o mais alto possível, mas muitas vezes você se encontrará em situações em que terá que fazer concessões devido a prazos apertados ou falta de recursos. E aqui é útil acostumar-se a criar programas aceitáveis. “Aceitável” não significa “durão”: você está simplesmente dando aos usuários uma palavra a dizer na determinação de qual limite de qualidade é aceitável. Surpreendentemente, muitos preferirão usar programas com algumas falhas hoje, em vez de esperar um ano pelo lançamento de uma versão multimídia.

Além disso, os programas por vezes melhoram ao reduzir o período de incubação. No desenvolvimento, existe um problema de “polimento excessivo” - restrições externas ajudam a parar no tempo na busca pela perfeição.

Dica 8: Invista regularmente no seu portfólio de conhecimento

O portfólio de conhecimento refere-se a tudo o que um programador sabe sobre o desenvolvimento em sua área, bem como a experiência que acumulou. A gestão do portfólio de conhecimento é muito semelhante à gestão do portfólio financeiro:

Os princípios gerais são:

  1. Invista regularmente. Mesmo que o investimento seja pequeno, esse hábito é útil por si só.
  2. Investem no várias áreas . Quanto mais áreas você capturar, mais grande valor Imagine. No mínimo, você deve conhecer as tecnologias específicas com as quais está trabalhando atualmente, por dentro e por fora. Mas não pare por aí. A demanda por tecnologia e sua aplicabilidade mudam constantemente. Quanto mais ferramentas você tiver em seu arsenal, mais fácil será a adaptação.
  3. Pese os riscos. As tecnologias existem numa certa faixa – desde arriscadas e potencialmente lucrativas até de baixo risco e baixo lucro. Investir tudo em opções de risco, cuja taxa pode cair repentinamente, não é melhor ideia, mas também cautela excessiva, que não permite aproveitar oportunidades lucrativas. É melhor manter a linha do meio.
  4. Compre na baixa, venda na alta. Dominar uma tecnologia de ponta antes que ela se torne popular é um desafio, mas vale a pena: os primeiros usuários muitas vezes seguem carreiras incríveis.
  5. Revise e reequilibre regularmente. A programação é uma indústria muito dinâmica. Esteja preparado para revisar periodicamente seus ativos de forma crítica: abandonar opções desatualizadas, restaurar aquelas que subiram de preço e preencher nichos vazios.
O processo de aprendizagem irá expandir o seu pensamento, abrindo novas possibilidades e novos caminhos de criatividade. Se você aprender algo novo, tente aplicar esse conhecimento ao projeto em que está trabalhando atualmente, na medida em que a tecnologia que você utiliza permitir.

Dica 9: analise criticamente o que você lê e ouve.

Você precisa ter certeza de que o conhecimento do seu portfólio é preciso, que não é distorcido por aqueles que dele se beneficiam e que seu valor não é inflado por exageros. Cuidado com os fanáticos que insistem que seu dogma fornece a única resposta correta – ele pode não se aplicar ao seu projeto.

Dica 10: É importante o que dizer e como dizer

Grande parte do dia de um programador é gasto na comunicação - com a equipe, o gerenciamento, os usuários e as futuras gerações de desenvolvedores por meio de documentação e comentários no código. Portanto, é necessário dominar a sua arte. Quanto mais eficaz for essa comunicação, maior será sua capacidade de transformar ideias em ações.

Princípios de comunicação eficaz:

  1. Saiba o que você quer dizer: Planeje o que você vai dizer com antecedência, esboce um esboço e algumas estratégias sobre a melhor forma de transmitir seu ponto de vista. Isso funciona tanto para a elaboração de documentos quanto para negociações importantes.
  2. Conheça seu público: Você só se comunica se transmitir informações. Para fazer isso, você precisa estar ciente das necessidades, interesses e habilidades do seu público. Apresente as informações de forma clara e interessante para o ouvinte.
  3. Escolha o momento certo: Ponto importante compreender o público – compreendendo as suas prioridades imediatas. O que você diz não deve ser apenas relevante em conteúdo, mas também oportuno. Se necessário, pergunte diretamente: “É conveniente falar sobre... agora?”
  4. Escolha o estilo que você deseja: Determine o estilo de apresentação do material de acordo com as necessidades do público: alguns preferem fatos simples, outros preferem detalhes, exemplos e introduções extensas. Novamente, em caso de dúvida, verifique.
  5. Saudado por roupas: Saiba como “servir” adequadamente suas ideias. Tudo no documento final deve ser verificado: ortografia, layout, estilos de texto, impressão.
  6. Envolva seu público: Sempre que possível, envolva futuros leitores no processo de criação do documento. Use as ideias deles. Dessa forma você obterá melhores resultados e fortalecerá suas relações de trabalho.
  7. Saiba ouvir: converse com as pessoas fazendo perguntas ou fazendo com que elas resumam o que você disse. Transforme a reunião em um diálogo e você transmitirá melhor o que queria dizer e, talvez, ao mesmo tempo, aprenderá algo por si mesmo.
  8. Não interrompa a conversa: sempre responda às solicitações e mensagens com pelo menos a promessa de voltar ao assunto mais tarde. Se você mantiver as pessoas informadas, elas sentirão que não foram esquecidas e perdoarão muito mais erros ocasionais.

Capítulo 2: Abordagem Pragmática

Há uma série de dicas e truques que se aplicam a todos os níveis de desenvolvimento de software – ideias que podem ser consideradas axiomas, processos que são quase universais. Este capítulo fornece uma visão geral dessas ideias e processos.

Dica 11: não se repita

Cada conhecimento deve ter uma representação única, inequívoca e confiável no sistema. Uma alternativa é apresentar o mesmo item em vários locais. Isso é inconveniente: se algo for editado em um lugar, é necessário fazer alterações imediatamente em todos os outros, caso contrário o programa entrará em colapso sob o peso das contradições. Mais cedo ou mais tarde você vai esquecer alguma coisa, é questão de tempo.

A maioria dos casos de duplicação se enquadra em uma das seguintes categorias:

  • Duplicação forçada. Os desenvolvedores sentem que não têm escolha – a duplicação é necessária por algum motivo razões externas: padrões de documentação, a combinação de diversas plataformas com diferentes ambientes, linguagens e bibliotecas, as especificidades da própria linguagem. Em alguns casos, você apenas precisa aceitá-lo, mas em outros você ainda pode encontrar soluções alternativas usando filtros, geradores de código ativos, metadados e a abordagem correta para comentários.
  • Duplicação não intencional. Os desenvolvedores não percebem que estão duplicando informações. Isso geralmente ocorre como resultado de erros ou inconsistências em nível profundo (por exemplo, o mesmo atributo está registrado em vários objetos), e a eliminação requer reorganização. Em alguns desses casos, o princípio pode ser violado por uma questão de desempenho, mas apenas dentro da classe.
  • Duplicação impaciente. Os desenvolvedores duplicam porque acham que é mais fácil. Isso geralmente acontece copiando trechos de código. Tudo se resume à autodisciplina – não tenha preguiça de gastar alguns segundos extras para evitar dores de cabeça no futuro.
  • Duplicação coletiva. Uma informação é duplicada por vários membros da mesma equipe de desenvolvimento durante o trabalho. O caso mais difícil em termos de detecção e resolução. Em alto nível, o problema é resolvido através de uma solução de design clara, uma liderança técnica forte e uma separação clara de responsabilidades. De forma modular - por meio da comunicação ativa entre desenvolvedores: crie grupos de comunicação, crie um local público no diretório para armazenar rotinas e scripts de serviço, incentive o estudo e discussão do código de outras pessoas.
Dica 12: Torne o programa fácil de reutilizar

Tente criar um ambiente onde seja mais fácil encontrar e reutilizar o material existente do que criá-lo do zero. Isso ajuda a reduzir o risco de duplicação. Apenas tenha em mente que se a reutilização for difícil, as pessoas não o farão.

Dica 13: Evite interações entre objetos não relacionados

Esta regra também é chamada de princípio da ortogonalidade. Dois ou mais objetos são ortogonais se as alterações feitas em um deles não afetarem os outros. Esse arranjo oferece dois grandes benefícios: aumento da produtividade e redução de riscos.

Quando as alterações no sistema são localizadas, os tempos de desenvolvimento e teste são reduzidos. Depois que um componente pequeno e independente é projetado, implementado e testado, você pode simplesmente esquecê-lo, em vez de fazer alterações constantemente à medida que novos trechos de código são adicionados ao código.

A abordagem ortogonal também incentiva a reutilização de componentes. Quanto menos acoplamento houver nos sistemas, mais fácil será reconfigurar ou fazer engenharia reversa.

A redução do risco se deve ao fato de fragmentos errôneos serem isolados e não afetarem todo o sistema; Conseqüentemente, consertá-los ou substituí-los também é mais fácil. Como resultado, o sistema se torna mais estável – as áreas problemáticas permanecem áreas. Também ajuda o fato de que os testes em nível de unidade geralmente sejam feitos de forma mais completa.

O princípio da ortogonalidade não deve ser observado ao nível de tecnologias individuais, mas deve abranger todos os processos: desde a concepção à selecção de ferramentas, desde os testes à gestão de produtos. Minimiza a duplicação e torna o sistema mais flexível e transparente.


Dica 14: Não existem soluções finais

Requisitos, usuários e hardware mudam mais rápido do que desenvolvemos Programas. Portanto, você deve estar sempre preparado para o fato de que qualquer decisão que você tomar (não apenas dentro do código, mas também, digamos, ao escolher uma ferramenta de terceiros, um padrão de arquitetura, um modelo de implantação) terá que ser reconsiderada no futuro. futuro sob a influência de fatores externos. O princípio da “duplicação mínima”, o princípio da dissociação e a utilização de metadados tornam o sistema mais reversível.

Dica 15: use marcadores rastreadores para encontrar seu alvo

Para ampliar a metáfora: ao criar um novo produto, a equipe de desenvolvimento muitas vezes age cegamente, trabalhando com técnicas, linguagens e bibliotecas desconhecidas. O resultado final pode ser previsto por meio de previsões rigorosas, com base em uma análise muito detalhada das tecnologias, ou por "rastreamento" - criando uma série de versões de trabalho simplificadas, de teste e melhorando gradualmente para reunir os componentes do sistema e testar como eles trabalhar juntos.

Uma alternativa a esta abordagem - o desenvolvimento isolado de módulos individuais, que são montados na fase final e depois testados ao nível do sistema - é mais complicado e menos conveniente. Entre outras coisas, o método de rastreamento fornece uma versão preliminar do produto (que pode ser apresentada aos usuários para mostrar-lhes a essência do projeto, interessá-los e obter feedback); integração mais suave e focada de novos módulos prontos no ambiente e a capacidade de identificar imediatamente e eliminar facilmente erros de interação.

Dica 16: Crie protótipos para aprender com eles

Ao contrário das versões de teste descritas acima, os protótipos têm um foco mais restrito: são criados para testar diversas características específicas e requerem significativamente menos recursos. Todos os detalhes que não são relevantes para o problema em questão são omitidos, mesmo que sejam de extrema importância para o funcionamento do sistema como um todo. Correção, integridade, confiabilidade e estilo podem ser negligenciados ao trabalhar em um protótipo.

Para prototipagem, não é necessário criar um software completo aplicativo de trabalho, às vezes apenas diagramas em papel ou quadro são suficientes. Se ainda for necessário, então faz sentido escolher um idioma muito alto nível– acima do nível da linguagem usada pelo resto do projeto (uma linguagem como Perl, Python ou Tel). Uma linguagem de script de alto nível permite omitir muitos detalhes (incluindo a especificação de tipos de dados) e ainda produzir um programa funcional, embora incompleto e lento.

Dica 17: Escreva o código pensando no aplicativo

As linguagens de programação influenciam a maneira como você pensa sobre um problema e a experiência do usuário. Cada língua possui características próprias que levam a determinadas decisões ou, inversamente, as impedem. Uma solução estilo Lisp é diferente de uma solução estilo C e vice-versa. O oposto também é verdadeiro - uma linguagem que reflita as especificidades do problema com o qual você está trabalhando pode, por sua vez, oferecer uma solução na área de programação.

Ao ouvir os requisitos do usuário, você pode entender para qual idioma será mais fácil traduzi-los em um nível mais abstrato e superior. Diferentes tipos de usuários (finais – o público para quem você está fazendo o projeto, e secundários – gerentes, futuras gerações de desenvolvedores) podem exigir a geração de seus próprios miniambientes e linguagens.

Dica 18: Faça uma estimativa para evitar surpresas

Fazer estimativas aproximadas é uma habilidade, e uma parte essencial dessa habilidade é ser capaz de determinar uma precisão aceitável com base no contexto. A unidade de medida escolhida também deve refletir o grau de precisão (compare: uma tarefa levará duas semanas e uma tarefa levará 75 horas de trabalho).

A avaliação é realizada em várias etapas. Primeiro, nos aprofundamos na essência da pergunta feita e avaliamos o escopo da área temática; Além disso, muitas vezes a própria formulação da pergunta sugere uma resposta. Em seguida, é construído um modelo do problema - uma sequência aproximada de etapas que serão necessárias para resolvê-lo. O modelo é decomposto em componentes, para cada um dos quais é especificado um parâmetro de significância. Com base nesses parâmetros e valores aproximados, são feitos cálculos. A última etapa é realizada após o fato - a previsão é comparada com a situação real e, em caso de desvios graves, são realizados trabalhos de correção dos erros.

Dica 19: Verifique o cronograma do projeto se o código assim o exigir

Isto pode não agradar à administração, que normalmente deseja que os números sejam declarados antes do início do projeto e não estejam sujeitos a alterações. Você terá que transmitir a eles que o cronograma de conclusão das tarefas será determinado pela produtividade da equipe e pelas circunstâncias. Ao formalizar este procedimento e refinar o cronograma durante cada iteração, você pode fornecer à gestão as estimativas de cronograma mais precisas para cada etapa.

Capítulo 3: Kit de ferramentas de viagem

As ferramentas são um meio de aprimorar seu talento. Quanto melhores eles forem e quanto melhor você os dominar, mais poderá fazer. Comece com um conjunto universal de ferramentas que você usará para todas as operações básicas. Este conjunto aumentará à medida que você ganhar experiência e atender a requisitos específicos.

Dica 20: salve as informações em formato de texto simples

O melhor formato para armazenamento permanente de conhecimento é o texto simples, que permite processar as informações tanto manualmente quanto por meio de quaisquer ferramentas disponíveis. O problema com a maioria dos formatos binários é que o contexto necessário para compreender os dados é separado dos próprios dados. E com texto simples que pode ser lido sem descriptografia, você pode criar um fluxo de dados autodocumentado, independente do programa que o gerou.

O texto simples tem duas desvantagens principais: (1) pode ocupar mais espaço de armazenamento do que um formato binário compactado e (2) do ponto de vista computacional, a interpretação e o processamento de um arquivo de texto simples pode ser mais lento. Dependendo da aplicação, uma ou ambas as situações acima podem não ser aceitáveis. Mas mesmo nesses casos, é aceitável salvar metadados que descrevam os dados de origem em formato de texto simples.

Texto simples é:

  • Garanta que os dados não fiquem desatualizados
  • Caminho mais curto para o objetivo
  • Teste mais fácil
Dica 21: Aproveite os pontos fortes das conchas

Se você trabalha apenas com uma interface gráfica, não usa todos os recursos fornecidos pelo sistema operacional - você não automatiza tarefas típicas, não use as ferramentas disponíveis em força total, não combine soluções diferentes para criar ferramentas macro especializadas. A vantagem das GUIs é que elas funcionam com base no princípio “o que você vê é o que você obtém”. Principal desvantagem A interface gráfica pode ser formulada da seguinte forma: “você só obtém o que vê”. O escopo de tais ferramentas é geralmente limitado às tarefas para as quais foram originalmente projetadas. Se você quiser ir além desse padrão (e mais cedo ou mais tarde terá que fazê-lo), você não está no mesmo caminho que eles.

Faça um pouco de esforço para se familiarizar com o shell e ficará surpreso com o quanto será mais produtivo. Os comandos de linha podem ser confusos, mas são poderosos e concisos. Ao compilá-los em arquivos de script, você pode criar sequências de comandos para automatizar procedimentos executados com frequência.

Dica 22: Use um editor de texto, mas tantos quanto possível

O processamento de texto deve exigir um mínimo de esforço, por isso é melhor dominar perfeitamente um único editor e utilizá-lo para resolver todas as tarefas relacionadas à edição: trabalhar com texto de programa, documentação, notas, administração de sistema, etc. especialista em diversos ambientes de software ao mesmo tempo, leva o trabalho de cada um ao reflexo, levando em consideração que cada um deles possui seu próprio conjunto de comandos e padrões. Se você tentar combinar vários editores, corre o risco de repetir a situação pandemônio de Babel.

A escolha do editor é quase uma religião, por isso é impossível dar aqui recomendações específicas. Porém, na hora de tomar uma decisão, vale considerar os seguintes parâmetros:

  • Personalização. Todas as propriedades do editor devem ser personalizáveis ​​de acordo com sua preferência, incluindo fontes, cores, tamanhos de janela e teclas de atalho.
  • Extensibilidade. O editor não deve ficar desatualizado assim que uma nova linguagem de programação aparecer. Ele deve ser capaz de se integrar a qualquer ambiente de compilador que você esteja usando atualmente. Você deve ter a opção de “ensinar” as nuances de qualquer nova linguagem de programação ou formato de texto.
  • Programabilidade. Você deve ser capaz de programar o editor para executar operações complexas de várias etapas.
Dica 23: Sempre use o controle do código-fonte

Os sistemas de controle de origem acompanham quaisquer alterações feitas no texto e na documentação. Os melhores também podem rastrear alterações nas versões do compilador e do sistema operacional. Com um sistema de controle de origem configurado corretamente, você sempre pode reverter para uma versão anterior de um programa.

O controle de origem faz muito mais do que simplesmente desfazer ações erradas. Um bom sistema permite rastrear alterações e fornece respostas a perguntas típicas: “Quem fez as alterações nesta linha de texto? Qual é a diferença entre a versão atual e a versão que existia na semana passada? Quantas linhas de texto do programa foram alteradas nesta versão? Quais arquivos são alterados com mais frequência? Esse tipo de informação é inestimável para rastreamento de bugs, auditoria, avaliação de desempenho e qualidade.


Como está indo a depuração?

Dica 24: Concentre-se em resolver o problema, não em culpá-lo.

Passamos ao tópico de eliminação de bugs - um tema muito delicado e extremamente relevante para o trabalho em equipe. Aqui, mais do que em qualquer outro lugar, a atitude correta é importante. Aceite o fato de que a depuração é uma tarefa como qualquer outra e aborde-a dessa perspectiva. Na verdade, não importa quem é o culpado pelo erro: você ou outra pessoa. Este ainda é o seu problema.

Dica 25: Não entre em pânico

É muito importante dar um passo atrás, suprimir a primeira reação emocional e pensar sobre qual é realmente a causa raiz dos sintomas e como lidar com isso. Resista à tentação de simplesmente eliminar os sintomas e, assim, resolver o problema superficialmente - trabalhe com a causa subjacente.

Antes de analisar o erro, certifique-se de estar trabalhando em um programa que concluiu a fase de compilação de forma limpa – sem avisos. Não faz sentido perder tempo com erros que até o compilador pode ver. Reúna o máximo de informações possível; Se um bug foi relatado por terceiros, pergunte detalhadamente a quem o encontrou.

Dica 26: procure bugs fora do sistema operacional

Suponha que tudo esteja em ordem com o sistema operacional, banco de dados e outros softwares. Se você “fez apenas uma alteração” e o sistema parou de funcionar, então muito provavelmente essa é a razão do que aconteceu, por mais absurda que essa afirmação possa parecer. Se você não sabe por onde começar, você sempre pode contar com a boa e velha pesquisa binária.

Exceção: Se alguma de suas ferramentas tiver sido atualizada recentemente, o problema pode ser causado por conflitos com nova versão. Monitore o cronograma das próximas mudanças para minimizar o impacto de tais conflitos.

Dica 27: Não presuma – prove

A surpresa que você sente quando algo dá errado é diretamente proporcional ao seu nível de fé na correção do programa. Portanto, quando confrontado com uma falha inesperada do programa, você deve aceitar que uma ou mais de suas suposições estão erradas. Não confie cegamente em um trecho de código que causa um erro só porque você “sabe” que funciona bem. Prove primeiro – num contexto real, com dados reais e com condições de contorno reais.

Ao se deparar com um erro inesperado, tente tomar medidas para garantir que ele não se espalhe, afete outras partes do código ou ocorra novamente. Se for resultado de equívocos de outra pessoa, discuta o problema com toda a equipe.

Dica 28: Aprenda uma linguagem de processamento de texto

De vez em quando temos que realizar algumas transformações que não podem ser feitas com a ajuda das ferramentas do acampamento. Nesses casos, é necessária uma ferramenta universal de processamento de texto. Usando linguagens de processamento de texto, você pode resolver rapidamente todos os problemas com utilitários e ideias de protótipos que levariam de cinco a dez vezes mais tempo com linguagens regulares.

Eles também facilitam a criação de geradores de código, que serão discutidos posteriormente.

Dica 29: Escreva um código que escreverá código para você

Muitas vezes, os programadores são obrigados a executar o mesmo tipo de tarefas: fornecer a mesma funcionalidade, mas em um contexto diferente, reproduzir informações ou simplesmente redigitar o mesmo texto ad infinitum. É aqui que os modelos vêm em socorro. Para criá-los, um programador pode construir um gerador de código que pode ser usado pelo resto da vida do projeto quase de graça.

Os geradores de código são ativos ou passivos. Os geradores passivos são acionados uma vez para atingir um resultado, que então se torna independente. Eles são essencialmente modelos personalizados que economizam tempo de digitação e são usados ​​para operações como criação de novos arquivos de origem, execução de conversões binárias ou criação de tabelas de pesquisa e outros recursos que são muito caros para serem computados.

Geradores de código ativos são usados ​​sempre que os resultados de seu trabalho são necessários. Eles podem ser extremamente úteis para seguir o princípio da “duplicação mínima”. Com um gerador de código ativo, você pode pegar uma representação de algum conhecimento e transformá-lo em todos os formatos que sua aplicação precisar. Isto não é uma duplicação, pois esses formulários são consumíveis e criados pelo gerador conforme necessário. Quando precisar organizar a colaboração entre dois ambientes completamente diferentes, você deve pensar em usar geradores de código ativos.

Capítulo 4: Paranóia Pragmática

Dica 30: É impossível escrever um programa perfeito

Em toda a história da programação, ninguém foi capaz de escrever um único código perfeito. É improvável que você seja o primeiro. E ao aceitar isso como um fato, você deixará de perder tempo e energia em busca de um sonho ilusório.

Dica 31: Projete de acordo com contratos

A metodologia de concepção de contratos propõe construir a interação dos módulos de software com base em seus direitos e responsabilidades documentados, a fim de garantir o correto funcionamento do programa. Correção aqui se refere à capacidade de fazer exatamente o que é declarado.

O contrato entre uma sub-rotina e qualquer programa potencial que a chama pode ser declarado da seguinte forma: "Se o programa chamador satisfaz todas as pré-condições da sub-rotina, então a sub-rotina garante que todas as pós-condições e invariantes serão verdadeiras após a conclusão de sua operação." Se uma das partes violar os termos do contrato, será aplicada uma medida pré-acordada, por exemplo, adicionar uma exceção ou encerrar o programa. Ao desenvolver, siga os princípios clássicos de celebração de um contrato: ao redigir pré-condições, seja extremamente meticuloso, e quando se trata de pós-condições, pelo contrário, não faça promessas desnecessárias.

O maior benefício de usar esse princípio é que ele coloca as reivindicações e garantias em primeiro plano. Durante um projeto, simplesmente listar os fatores – qual é a faixa de valores de entrada, quais são as condições de contorno, o que pode ser esperado da rotina (ou, mais importante, o que não pode ser esperado dela) – é um grande passo avançar. Sem definir essas posições, você desliza para uma programação baseada na coincidência, que é onde muitos projetos falham.

Dica 32: Deixe o programa travar o mais cedo possível

Em muitos casos, o encerramento do programa é a melhor opção, uma vez que as alternativas levarão a consequências graves, por vezes irreversíveis. Os pragmáticos veem a situação desta forma: se ocorrer um erro, significa que algo muito ruim aconteceu e é melhor jogar pelo seguro.

É claro que, em alguns casos, uma saída de emergência de um programa em execução é inadequada (talvez você precise primeiro registrar algo, concluir transações abertas ou interagir com outros processos). No entanto, o princípio básico permanece o mesmo – se um programa descobre que ocorreu um evento que era considerado impossível, perde viabilidade. A partir deste momento, todas as ações realizadas pelo programa passam a ser suspeitas, devendo sua execução ser interrompida o mais rápido possível. Na maioria dos casos, um programa morto causa muito menos danos do que um corrompido.

Dica 33: Se algo não puder acontecer, use afirmações que garantam que isso não acontecerá.

Sempre que você começar a pensar: “É claro que isso não pode acontecer”, verifique o código. A maneira mais fácil de fazer isso é usar afirmações. A maioria das implementações de C e C++ possui alguma forma de macro assert ou _assert que testa uma condição lógica. Essas macros podem ser de grande valor. Por exemplo, se o ponteiro passado para o seu procedimento não deve em hipótese alguma assumir o valor NULL, anote o cumprimento obrigatório desta condição.

As asserções não devem ser usadas como substitutos do tratamento real de erros. Eles estão apenas testando algo que nunca deveria acontecer. Há uma visão segundo a qual as aprovações são necessárias apenas durante o período de depuração e, quando o projeto é entregue, elas se transformam em peso morto. Esta é uma visão excessivamente optimista: os testes provavelmente não revelarão tudo o que pode acontecer no mundo real. Mesmo que haja problemas de desempenho, desative apenas as instruções que realmente tenham um impacto sério sobre ele.

Dica 34: Use exceções apenas em casos excepcionais

Na prática, entretanto, verificar todos os erros imagináveis ​​pode resultar em um programa malformado; a lógica normal pode dar em nada devido à supersaturação dos procedimentos de tratamento de erros. As exceções o ajudarão a implementar tudo com mais elegância.

O principal problema com exceções é que você precisa saber quando usá-las. Você não deve abusar das exceções para o fluxo normal de execução do programa; eles devem ser reservados para situações de emergência.

Uma exceção é uma transferência instantânea de controle não local - uma espécie de instrução goto multinível. Os programas que usam exceções como parte de sua operação normal sofrem dos mesmos problemas de legibilidade e manutenção que afetam os programas não estruturados clássicos. Eles violam o princípio do encapsulamento: as sub-rotinas e os programas que as chamam estão mais intimamente relacionados entre si devido ao tratamento de exceções.

Dica 35: termine o que começou.

Ao escrever programas, temos que gerenciar recursos: memória, transações, threads, arquivos, temporizadores – em uma palavra, tipos diferentes objetos que estão disponíveis em quantidades limitadas. Na maioria das vezes, o uso de recursos segue um padrão previsível: o recurso é atribuído, usado e então liberado. No entanto, muitos promotores não têm um plano claro para a atribuição e libertação de recursos, o que pode levar à escassez de recursos. A solução aqui é simples: a rotina ou objeto que solicita um recurso deve ser responsável por liberar esse recurso.

Se diversas rotinas exigirem mais de um recurso ao mesmo tempo, mais duas regras serão adicionadas:

  1. Libere os recursos na ordem inversa em que foram alocados. Nesse caso, você pode evitar o aparecimento de recursos “órfãos” se um deles contiver links para outro.
  2. Ao distribuir o mesmo conjunto de recursos em diferentes locais do programa, é necessário realizar esta operação na mesma ordem. Isso reduz a chance de impasse.
Em programas que utilizam estruturas de dados dinâmicas, há momentos em que o esquema básico de alocação de recursos não é mais adequado. Neste caso, o truque é estabelecer um invariante semântico para alocação de memória.