Pragmática e onomástica: o significado pragmático de um nome próprio. Sobre o problema de definir os limites da área temática da 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 usam a base de conhecimento em seus estudos e trabalhos ficarão muito gratos a você.

Documentos Semelhantes

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

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

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

    trabalho de controle, adicionado em 14/02/2010

    Essência, finalidade, tipos de marcas. Visão geral das características do uso de uma marca. Organização do comércio internacional licenciado. Comércio de produtos falsificados. Medidas tomadas quando são identificadas mercadorias que apresentam sinais de falsificação.

    trabalho de conclusão de curso, adicionado em 28/11/2014

    Estilo corporativo: conceito, funções, elementos principais. Histórico de marcas. O valor das tradições culturais no design de marcas. O fenômeno do apagamento das fronteiras nacionais e estaduais. Busque ideias figurativas e semânticas na criatividade do design.

    trabalho de conclusão de 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. A publicidade como meio de comunicação. Mídia de Publicidade Esportiva e Apoio à Venda: Critérios de Seleção de Objetos e Pessoas. A importância da publicidade para o desenvolvimento das marcas no negócio do desporto. Processos de transformação no esporte russo.

    resumo, adicionado em 23/03/2014

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

    resumo, adicionado em 24/11/2011

    Planejamento de marketing como parte integrante de um plano de negócios na Rússia. Os principais objetivos do programa de marketing, direções para avaliar sua eficácia. O problema do desenvolvimento, formação e promoção de marcas. Benefícios e funções das marcas.

    teste, adicionado em 28/02/2012

Todo mundo já teve que lidar com pessoas que são muito claras sobre o que exatamente querem, pelo que lutam e o que é preciso para conseguir ou alcançar o que querem. Ou seja, eles sempre e em tudo agem de acordo com um plano claro, indo em direção ao objetivo pretendido, que representam claramente. Essas pessoas não dizem: eu mesmo não sei o que quero! Eles sempre sabem muito bem! E geralmente atingem seus objetivos sem parar ou virar. Tais pessoas são chamadas pragmáticos. Assim, os pragmatistas pessoas bem sucedidas recebendo tudo o que precisam.

Olhando para eles de fora, às vezes parece que eles são sortudos comuns: bem, como eles conseguem? Por que as coisas estão a seu favor? Como eles conseguem estar sempre onde precisam estar? Por que eles não conhecem, bem, ou quase não conhecem as derrotas e não sofrem fracassos? O que há de especial neles?!

Então, quem é esse pragmatista? E o que é pragmatismo?

Os pragmatistas são pessoas um pouco diferentes de todas as outras, embora, na verdade, não haja nada de incomum neles. Eles não são dotados do dom da clarividência, habilidades hipnóticas, não sabem ler os pensamentos de outras pessoas. Mas, no entanto, os pragmatistas são pessoas de sucesso. Por quê? Porque eles têm uma mentalidade especial. Analítico.

São pessoas muito fortes que atingem seus objetivos. As ações dos pragmatistas são significativas, lógicas. Em qualquer empreendimento, o pragmatista tem uma estratégia clara. Ele não reconhece as autoridades de ninguém, tem seu próprio ponto de vista, baseado em raciocínio sóbrio. O pragmatista não troca por ninharias desnecessárias e inúteis, jogando-as impiedosamente de lado. Um pragmatista confia em si mesmo, nunca transferindo a responsabilidade para os outros, alcança de forma independente tudo o que aspira. Não se esconda pelas costas de alguém.

Certamente deve ser observado: o pragmatista não precisa necessariamente de benefícios materiais. A satisfação moral pode muito bem tornar-se o objetivo de tal pessoa, que certamente experimentará. Os pragmatistas valorizam um recurso tão importante como o tempo, tratando-o com respeito. As coisas são claramente planejadas, depois aderindo aos planos traçados, nunca abandonando o que começou no meio do caminho. E este é um dos componentes do sucesso das pessoas de um armazém pragmático.

Pessoas pragmáticas não são sonhadoras, pelo contrário. Em vez disso, materialistas, longe de sentimentalismo. Os pragmatistas 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 do pragmatista em relação à riqueza material, essas pessoas valorizam muito a liberdade financeira. Eles costumam ganhar um bom dinheiro. Pragmatistas muitas vezes se tornam empresários de sucesso. Nisso eles são grandemente ajudados pela capacidade de cálculo frio e sóbrio. Os pragmáticos estão prontos para investir esforços ou finanças somente quando têm certeza de que receberão muitas vezes mais do que investiram.

Parece cínico, mas não é inteiramente verdade. Os pragmáticos geralmente estão prontos para cuidar sinceramente dos entes queridos, ajudando financeira e espiritualmente, mas apenas se receberem a mesma atitude em relação a si mesmos em troca. E geralmente, sentindo isso em um nível subconsciente, eles não estão enganados.

Essas pessoas geralmente não são mercantis. Não são mesquinhos, não têm barganha, mesquinhez, caipira. O chefe de família pragmatista não incomodará sua família, repreendendo-o pelo desperdício infatigável. Mas em suas ações há um certo e considerável egoísmo: nem um único pragmatista jamais ajudará aqueles que não apreciarão a ajuda e não serão gratos. Isso é bom ou ruim? É difícil responder sem ambiguidade. Além disso, são desconfiados e duvidam das palavras e ações de outras pessoas. As pessoas ao seu redor geralmente 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 de eventos e fenômenos. O fundador é considerado (século XIX).

Foi ele quem primeiro deu uma definição clara de pragmatismo. Também é dedicado aos trabalhos de cientistas como William James , George Satayana, John Dewey. As principais tendências incluem o falibilismo, o verificacionismo, o empirismo radical, o anti-realismo, o instrumentalismo, mas existem outros.

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

Nos anos 60 do século XX, uma nova escola independente de filosofia foi formada. Seu ensino baseava-se na interpretação do pragmatismo segundo as ideias dos pensadores fundadores. Os seguidores dessa escola rejeitaram os postulados fundamentais do empirismo lógico e do neopositivismo. Representantes - Wilfrid Sellars, Willard Quine. Seu ponto de vista foi ainda mais claramente formulado e desenvolvido por Richard Rorty. A doutrina do pragmatismo tomou duas direções: análise e relativismo . Há também uma terceira tendência neoclássica, como seu representante devemos mencionar Susan Haack.

Apesar do fato de que os outros são mais cautelosos com os pragmatistas, considerando-os frios e sem alma, muitas pessoas querem ter um caráter pragmático em melhor sentido as palavras. Mas nem todos estão cientes da oportunidade de cultivar traços pragmáticos em si mesmos por conta própria. De que maneira?

  1. Decidir sobre um objetivo. Claro, deve ser real, não fantástico. Então decida por si mesmo o que e como fazer, realizando a tarefa. E vá para a sua realização, não pensando em um possível fracasso e não se distraindo com tudo que não está diretamente relacionado e pode interferir.
  2. Planeje suas perspectivas de vida não apenas para o futuro próximo, mas também para o futuro distante. Os pragmatistas não sonham, eles tentam encontrar uma oportunidade para realizar seus desejos, e geralmente eles encontram. Quase todos os sonhos de uma forma ou de outra podem ser traduzidos em algo bastante real e, portanto, alcançável.
  3. Tendo iniciado algum negócio, em nenhum caso você deve desistir no meio do caminho, por todos os meios, levá-lo até o fim. Qualquer tarefa difícil é solucionável. E após a realização haverá um sentimento de satisfação e confiança.
  4. Desenvolver uma estratégia de ação e sempre cumpri-la. Todos nós temos desejos não realizados. Tendo entendido claramente por si mesmo o que exatamente você quer acima de tudo, você pode começar a elaborar um esquema aproximado de ações para cumprir suas próprias aspirações. Se isso exigir despesas financeiras, descubra como e quanto você terá que gastar. Você pode precisar de ajuda de familiares e amigos. E aqui também é importante imaginar quem e quando você pode entrar em contato para ter certeza. Você precisa saber claramente quais habilidades ou habilidades são necessárias para atingir a meta e o que pode ser um obstáculo para isso.
  5. e não desperdice.
  6. Constantemente algo novo, leia mais livros para crescimento pessoal.

Tal modelo de comportamento deve ser seguido sempre e em tudo, assim será possível tornar-se uma pessoa organizada e pragmática.

A linguística cognitiva está intimamente relacionada com a pragmática comunicativa e as teorias do discurso. Em relação a esses tópicos, ela difere nitidamente da linguística estrutural. Se para a linguística estrutural bastava postular a existência da linguagem como uma espécie de rede abstrata de interdependências, então para a linguística cognitiva o foco não é apenas na linguagem na unidade inseparável de sua forma e substância, mas também em uma unidade superior - a unidade da linguagem e uma pessoa 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, na cognição da linguagem veio de objetos linguísticos como a palavra e sua forma gramatical, frase, texto; A pragmática da linguagem, baseada na linguística cognitiva, parte de uma pessoa, de suas necessidades, motivos, objetivos, intenções e expectativas, de suas ações práticas e comunicativas, de situações comunicativas nas quais ela participa, seja como iniciador e líder, seja como executor de os "segundos" papéis.

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

A introdução de uma 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 certas 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 inclui, além dos textos, fatores extralinguísticos (conhecimento do mundo, opiniões, atitudes, objetivos do destinatário) necessários para a compreensão do texto.

Como os processos cognitivos são levados em conta 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 distinguem dois aspectos principais na análise cognitiva do discurso - as estruturas de representação do conhecimento e as formas de sua organização conceitual.


Assim, para a pragmática comunicativa, assim como para a psicologia cognitiva e a inteligência artificial, o tema da representação do conhecimento é igualmente importante. Qualquer ação comunicativa no âmbito do discurso espontâneo ou organizado é a realização de certas estruturas comunicativo-cognitivas. Tais estruturas cognitivas são modelos de quadros contendo informações de natureza sociocultural, ou conhecimento sobre o que Wittgenstein chamou de "jogos de linguagem".

Para a compreensão de textos – tanto escritos quanto orais – 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 mente de cada falante, em sua imagem do mundo. Nos anos 30 do século XX. F. Bartlett deu uma definição do conceito de "esquema de informação", um esquema apresentado na memória. Este conceito também entrou na psicologia cognitiva. Como já mencionado, em linguística computacional são usados ​​os conceitos de "cenário", "frame", em linguística e sociologia o conceito de frame também é usado. Os frames contribuem para o processamento cognitivo adequado de situações típicas, coerência do texto, fornecem expectativas contextuais e possibilitam prever eventos futuros com base nos encontrados anteriormente. A pragmática comunicativo-cognitiva oferece, assim, algumas maneiras de estudar o que torna os textos sólidos e coerentes para o observador.

Ao descrever uma única ação de fala, não apenas esquemas gerais típicos de práticas e atividades de comunicação, mas também esquemas típicos de organização do mundo interior do falante, ou seja, um conjunto de estruturas cognitivas apresentadas em sua imagem do mundo (determinadas social e etnoculturalmente, mas individuais em termos de modo de existência). A geração e compreensão da fala é baseada não apenas no conhecimento abstrato sobre eventos e situações estereotipadas - como em modelos mentais, cenários e molduras - mas também no conhecimento pessoal dos falantes nativos, acumulando suas experiências individuais anteriores, atitudes e intenções, sentimentos e emoções. T. van Dyck formula isso de tal maneira que as pessoas agem não tanto no mundo real e falam não tanto sobre ele quanto sobre modelos subjetivos de fenômenos e situações da realidade. A esse 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 o tempo todo nos afasta um do outro” (B. Gasparov. Idioma , memória, imagem: Lingüística da existência linguística. M., 1996. S. 16).

No entanto, sempre nos entendemos de alguma forma - com ou sem razão; a orientação para a compreensão é uma condição fundamental da comunicação humana. Ao mesmo tempo, a compreensão bem-sucedida é realizada não apenas quando as pessoas tentam entender o significado das palavras e frases no enunciado, mas sobretudo quando estão focadas na intenção do interlocutor, no que ele quer expressar, no que ação de fala produz.

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

Na teoria dos atos de fala, formulada pela primeira vez por J. Austin, a unidade principal é um "ato de fala" - um quantum de fala que conecta uma única intenção ("ilocução"), um segmento mínimo completo de fala e um 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 realização de certos atos, como um enunciado, uma pergunta, uma ordem, uma descrição, uma explicação, um pedido de desculpas, gratidão, um parabéns.

As ideias de J. Austin foram desenvolvidas na obra de J. Searle "Speech Acts", em que a fala é considerada a realização de determinadas ações. A fala, segundo Searle, tem caráter performativo, sua finalidade é mudar o ambiente do falante ou o modo de pensar do interlocutor. A "intenção ilocucionária" do falante é o que o falante está tentando transmitir com a ajuda da linguagem e, portanto, a essência do processo de comunicação é 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.

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

É geralmente reconhecido que diferentes tipos de comunidades linguísticas e estratos socioculturais da sociedade são caracterizados pela peculiaridade do uso da língua. No processo de domínio do contexto de um discurso, os participantes de um evento de discurso devem ter um conhecimento geral de fundo de natureza linguística e histórica, cultural e social. 4. Gubbenet define o conhecimento de fundo como um fundo sociocultural que caracteriza a fala percebida. V.S. Vinogradov destaca o aspecto nacional do conhecimento de fundo, sem o estudo do qual é impossível alcançar um entendimento completo e correto na troca de informações. Para o sucesso da comunicação, a semelhança de mentalidade é importante, o que permite obter mudanças mínimas no conhecimento no processo de comunicação. O pesquisador da comunicação, portanto, precisa levar em conta o "conhecimento de fundo", que é o conhecimento mútuo das realidades do falante e do ouvinte, que é a base da comunicação linguística.

Atualmente, existem seis áreas 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 conversacional e a análise das variações. As fontes para a formação de modelos de compreensão e métodos de análise do discurso nessas abordagens (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 de comum e unificador nelas, que é ao mesmo tempo comum em todos os estudos linguísticos de orientação cognitiva. Esse é o antropocentrismo da linguagem, mais precisamente, o prático, teórico e conhecimento cultural, experiência, dominada, significativa e direta ou indiretamente verbalizada por falantes nativos e, em última análise, recuperável como resultado de semântica e análise conceitual- na forma de uma imagem linguística do mundo.

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

A identificação e formação da pragmática linguística propriamente dita foi estimulada, 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 em grande parte contribuíram para a transformação da pragmática, como parte de uma teoria semiótica geral, em um campo independente de pesquisa, iniciando uma poderosa corrente obras contemporâneas sobre pragmática (Petrov 1987). O início do desenvolvimento intensivo da pragmática é atribuído condicionalmente a 1970 - a época do Simpósio Internacional sobre a Pragmática das Línguas Naturais (Bulygina 1981: 333).

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

disciplina científica indefinida. Quase todos os trabalhos sobre pragmática (independentemente de seu autor como um todo se concentrar em semântica linguística, filosofia da linguagem ou lógica formal) começam com uma redefinição do objeto de pesquisa e, de acordo com isso, a compreensão do autor sobre a pragmática em linguagem é determinada.

Descrevendo as tarefas e problemas da pesquisa pragmática, N.D. Arutyunova e E.V. Paducheva observa que, gradualmente expandindo, "revelam uma tendência a borrar as fronteiras entre a linguística e as disciplinas afins (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: quatro).

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

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

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

O termo "pragmático" (aprendizado de línguas) apareceu na década de 1920 - na forma de um adjetivo, foi usado em 1923 por B. Malinovsky em um apêndice ao livro "O Significado do Significado" 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 uma pesquisa destinada a estudar a estrutura de uma situação de signo (semiose) em um aspecto dinâmico, procedimental, incluindo os participantes dessa situação, distinguiu os três aspectos da semiótica mencionados acima, definindo a pragmática como "a relação dos signos para aqueles que os interpretam" (Morris 1938: 6). No entanto, no futuro, em conexão com o desenvolvimento das visões do pesquisador, e também pelo fato de o termo já ter adquirido indesejada ambiguidade e indefinição, Morris define a 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 ser direcionada para um estudo abrangente de três processos inter-relacionados de uma cadeia - a formação, uso (funcionamento) e impacto dos signos. Encontramos uma compreensão da pragmática em consonância com a definição de Morris na obra de G. Klaus, que se refere à pragmática "aos aspectos psicológicos e sociais do uso de signos linguísticos" (Klaus 1967: 22).

A visão da pragmática, tal como é apresentada por C. Fillmore, parece interessante. Sua definição é bastante detalhada e diz o seguinte: "A pragmática estuda uma relação tridimensional que combina (1) formas de linguagem, (2) as funções comunicativas que essas formas são capazes de desempenhar com (3) os contextos ou ambientes em que essas formas formas de linguagem podem ter funções de linguagem de dados" (citado em 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 trata do estudo dos atos de fala e dos contextos em que são produzidos e implementados. O objetivo da pragmática como disciplina deve ser destacar a classificação dos atos de fala e seus produtos, ou seja, declarações correspondentes (Stalnaker 1972).

É frequentemente enfatizado que a pragmática corresponde em grande parte ao princípio da atividade e, portanto, introduz um aspecto de ação (atividade) na descrição da linguagem. A correspondência da pragmática com os requisitos do princípio da atividade se reflete na definição sujeito pragmáticos dados por E.S. Aznaurova. O tema da pragmática linguística, em sua opinião, é "o estudo da linguagem no aspecto da atividade humana em um amplo contexto social" (Aznaurova 1988: 8). 1 O estudo dos fatos da linguagem no aspecto da atividade humana é considerado o principal postulado da pragmática. Mas, como E. S. Aznaurova, "a amplitude do postulado levou a uma dispersão significativa de tópicos e problemas discutidos nesta área 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 em sua dinâmica, correlacionado com o "eu" do texto criador. homem" (ibid.: 10).

Uma compreensão ampla da pragmática, quando o escopo de seu interesse inclui questões de dêixis, atos de fala, pressuposições, 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 de seu uso" (Pocheptsov 1985: 16) ou "o estudo da relação entre as formas linguísticas (entidades) e os usuários dessas formas" (Yule 1996: 4) se opõe à abordagem quando o único real objeto de estudo no campo da pragmática é considerado realizado no texto

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

Tal compreensão das tarefas da pragmática se reflete em estudos que focam 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 comportamento social e individual das pessoas através da fala estão na vanguarda (Kiseleva 1978). ).

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

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

A consideração abrangente de vários fatores, que são enfatizados na pesquisa pragmática, "nos permite entender melhor as especificidades da linguagem em seu uso real" (Gak 1997: 361) e atesta o potencial excepcional da pragmática.

Como pode ser visto nas definições acima, trazer à tona um determinado grupo de fatores nos permite falar de tipos diferentes ou variantes da pragmática. No início da década de 1970, T. M. Dridze sugeriu com confiança a existência de dois pragmatistas - o "pragmatista do comunicador" e o "pragmático do receptor" (Dridze 1972: 34-35). J. Yule, já no final da década de 1990, concretiza o conceito de usuário ("usuário") e dá uma ampla definição de pragmática, que leva em conta a posição do remetente, a posição do destinatário e define diferentes opções de pragmática, dependendo do ângulo de pesquisa. A pragmática de J. Yule "trata do estudo do significado tal como é relatado pelo falante (ou escritor) e interpretado pelo ouvinte (ou leitor), o que nos permite falar sobre: ​​(1) a pragmática como o significado do falante ( a pragmática é o estudo do significado do falante); (2) a pragmática é o estudo do significado contextual; (3) pragmática da implicação (pragmática é o estudo de como mais é comunicado 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 como são formuladas por N.D. Arutyunova. O autor identifica quatro problemas principais, incluindo um conjunto de questões relacionadas com o sujeito falante, o destinatário, a sua interação na comunicação e a situação da comunicação.

Em conexão com o sujeito do discurso, 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 falante em relação ao que está relatando.

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

Em relação às relações entre os participantes da comunicação, estudam-se: (1) as formas de comunicação verbal; (2) aspecto social e de etiqueta da fala; (3) a relação entre os participantes na comunicação em certos atos de fala (ou seja, relações de papéis).

Em conexão com a situação da comunicação na pragmática, são investigados: (1) a interpretação dos signos dêiticos, bem como os componentes indiciais no significado das palavras; (2) a influência da situação de fala nos tópicos e 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 em N.D. Arutyunova, é impossível não notar que a pragmática da implicação apontada por Yul está incluída em N.D. Arutyunova em uma ampla gama de questões estudadas em conexão com o assunto do discurso, e a pragmática do significado contextual de Yul nada mais é do que uma gama estreita de questões consideradas em conexão com o destinatário do discurso. Em geral, observamos isomorfismo na definição de um conjunto de questões básicas, o 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 na 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 do frase" (enunciado), etc. tendo em mente, em primeiro lugar, as características de uso de entidades linguísticas em determinadas situações pragmáticas e condições de funcionamento e, em segundo lugar, a realização de significado no contexto sob a influência de vários parâmetros pragmáticos. caso, podemos falar sobre "pragmática externa", e no segundo - sobre "pragmática interna" (às vezes chamada de pragmática)" 1 (Gorshunov 1999: 5-6). Acreditamos que a proposta explicitamente de Yu.V. A divisão da pragmática feita por Gorshunov em "externa" e "interna", contida implicitamente em vários trabalhos, é de interesse teórico e mais uma vez confirma todos os fundamentos para falar do significado pragmático como parte do significado linguístico.

A compreensão da "pragmática interna" como socialmente consciente e fixada pelo uso no nível do sistema de informação pragmática permite três interpretações: (1) a informação semântica é considerada como parte da informação pragmática-comunicativo; (2) ambos os componentes são considerados iguais, autônomos, mas cumprindo seus propósitos em estreita relação um com o outro, ou (3) a informação pragmática é considerada embutida 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 para todos - em que usamos palavras, o significado pode ser definido da seguinte forma: o significado de uma palavra é seu uso na língua" (citado após Arutyunov 1976: 44). A teoria do significado com essa abordagem perde seu caráter denotativo e torna-se uma teoria comunicativa do significado, que se relacionava não apenas com o significado do enunciado, mas também com o significado das palavras nele incluídas. Para a linguística, esse tipo de teoria, que não faz uma diferença fundamental entre o significado de uma palavra, uma frase e um enunciado, dificilmente pode ser eficaz (para mais detalhes, ver Arutyunova 1976: 39-45).

No âmbito da segunda abordagem, há tentativas de atribuir significados independentes de contexto de unidades linguísticas ao âmbito da semântica e ao âmbito da pragmática - as funções de fala de enunciados linguísticos e situacionalmente

M.V. Nikitin define pragmasemântica como o estudo daquela parte do significado total de declarações e textos que se relaciona com as intenções do discurso, ou seja, àquelas tarefas pragmáticas que o falante resolve através da fala (Nikitin 1996. 619). qua a definição da linguagem de interpretação usada nas Escolas de Semântica de Moscou e Polonesa como uma "linguagem pragmasemântica" em Sannikov 1989. Ver também a esse respeito Pocheschov (Jr.) 1984; Stalker 1972.

O lado condicionado das proposições neles expressas. Alguns pesquisadores definem os limites da pragmática examinando os aspectos do significado que não são cobertos pela teoria semântica (Levinson 1983). Ao mesmo tempo, ao propor tal distinção, reconhece-se o fato de que ainda não foi desenvolvida uma teoria adequada (semântica ou pragmática) que permita uma resposta inequívoca à questão de onde termina a semântica e começa a pragmática (ver, por exemplo, , Bulygiya 1981; A interface semântica/pragmática... 1999).

Por outro lado, muitos pesquisadores apontam que os resultados mais adequados podem ser alcançados se a semântica e a pragmática forem consideradas partes inter-relacionadas 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 semântica sem levar em conta a pragmática estão fadadas ao fracasso (Sgall 1986: 45).

De grande interesse sobre a relação entre pragmática e semântica é o ponto de vista de Yu.D. Apresiano. Compreendendo a pragmática de forma bastante ampla, o autor acredita que apenas a informação pragmática que é lexicalizada ou gramaticalizada, ou seja, é de interesse linguístico. 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 relação falando e ouvindo os objetos descritos e uns aos outros" (Sannikov 1989: 84).

Muito em comum com o conceito de Yu.D. Apresyan tem uma visão pragmática V.I. Zabotkina (Zabotkina 1989; 1993). Reconhecendo a presença de uma complexa relação dialética 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, sobre as condições reais de consumo e sobre o esperado efeito do impacto sobre o ouvinte. Ou seja, trata-se de componentes pragmáticos que se fixam devido ao uso na estrutura semântica da palavra, refletem os parâmetros de seu uso em situações tipificadas de comunicação e garantem a marcação pragmática da palavra ao nível do sistema.

A. Vezhbitskaya e seus seguidores (E.V. Paducheva e outros) resolvem o problema da fronteira entre semântica e pragmática da maneira mais radical. 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 única da pragmática, ou simplesmente a pragmática é uma das partes em que o autor divide a tarefa de descrever a semântica de uma língua . “Os significados linguísticos são, em princípio, pragmáticos: com uma pessoa, com uma situação de fala, não alguns elementos expressivos especialmente destacados estão associados na língua, mas em geral o significado da grande maioria das palavras e unidades gramaticais"(Paducheva 1996: 222). Os limites da pragmática, tal como são entendidos na obra de Wierzbicka 1991, são delineados precisamente a partir da natureza do sentido, quando esses elementos linguísticos caem na competência da pragmática, na qual o os componentes da instalação (subjetivos, expressivos e outros) dominam os denotativos, ou seja, os elementos linguísticos de qualquer tipo formal, unidos apenas pelo fato de carregarem predominantemente "informações pragmáticas" (Paducheva 1996: 223).

Sabe-se que as funções desempenhadas por eles estão intimamente relacionadas aos significados das unidades linguísticas, pois o estudo das funções de uma forma ou de outra abrange a análise de seu significado: “O significado está diretamente subordinado à função que a unidade correspondente executa; é formado dependendo da finalidade desta unidade" (Arutyunova 1976: 44). Distinguindo as funções semânticas e estruturais da língua, alguns linguistas apontam para uma relação complexa entre as funções semântico e n 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 de linguagem e o enunciado como um todo para os participantes do ato de fala e suas condições (Boidarko 1987: 8- 9). Ou seja, é bastante 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 ampla e multifacetada definição de D. Crystal. A pragmática é a ciência "que estuda a linguagem do ponto de vista da pessoa que a usa, em termos de seleção de unidades linguísticas, restrições ao seu uso na comunicação social e o efeito de influenciar 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 discutível (Gorshunov 2000). O estudo, desenvolvimento e refinamento de componentes pragmáticos já estabelecidos, identificando as características de sua interação e impacto no destinatário em vários 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 da linguagem unidades.

O desenvolvimento da pragmática provavelmente ainda não acabou. Ainda há muitas questões discutíveis. Estas são questões sobre a relação entre pragmática e

qua com uma 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 sobre os outros” (Crystal 1997: 120) da sociolinguística, psicolinguística, estilística, retórica, com a qual a pragmática tem extensas áreas de intersecção de interesses de pesquisa. um signo linguístico, em um enunciado, vive e age como uma personalidade linguística, usando a linguagem para atingir seus objetivos, para transmitir sua atitude em relação à realidade, ao conteúdo da mensagem, aos parceiros de comunicação, para influenciá-los.

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

» Andrew Hunt e David Thomas são provavelmente conhecidos de todos que estão envolvidos em programação, e muitos deles são principalmente de menções em coleções e citações em artigos mais modernos. Considerando que esta coleção Conselho prático para desenvolvedores em breve comemorará seu vigésimo aniversário, o fato de ainda ser citado como fonte de informações valiosas é respeitado. 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 workflow. Muitos dos pontos técnicos mencionados no texto estão de fato desatualizados, mas as abordagens básicas de desenvolvimento, teste, interação dentro da equipe e com o público continuam relevantes.

Abaixo você encontrará uma sinopse dos quatro primeiros capítulos; tratam do conceito de autoeducação do autor, dos fundamentos de uma abordagem pragmática da programação e das regras de seleção de ferramentas. O livro é muito conveniente para leitura de "ponto": o material é apresentado na forma de parágrafos-dicas separados, fornecidos com referências cruzadas. Fora deste resumo, há exemplos de linguagens específicas, análises de casos da prática do autor, esses mesmos links, exercícios de reforço e algumas analogias engraçadas que animam o texto - por isso recomendo que você leia o original se alguma das teses lhe interessar . Gostar de ler!

Dica 1: Cuide do seu artesanato

Não adianta desenvolver software se você não se importa com a qualidade do trabalho. Isso deve ser feito não apenas no curto prazo, em relação a projetos específicos, mas também no longo prazo - formando a abordagem e os princípios de trabalho corretos.

O que distingue um programador pragmático?

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

Ao escrever código, você deve se concentrar totalmente no que está fazendo. Nunca entre no modo piloto automático. Pense constantemente, refletindo criticamente sobre seu trabalho em tempo real. Isso é chamado de programação consciente. Levará algum tempo e esforço para dominar, mas a recompensa será o hábito de fazer pequenas melhorias constantemente, melhorando a qualidade do código como um todo 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 fornece suas principais disposições.

Dica 3: Apresente soluções, não desculpas

Uma das pedras angulares 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 os resultados de seu trabalho dependem principalmente dele, e não tem medo de admitir sua ignorância ou erro.

Assumir a responsabilidade pelos resultados significa ser responsável. Se você cometer um erro (e todos nós cometemos), admita-o honestamente e tente sugerir maneiras de corrigi-lo. Não jogue a culpa nos colegas, parceiros, ferramentas ou invente desculpas - isso é uma perda de tempo improdutiva. O mesmo vale para situações em que você se depara com demandas que não consegue atender: não diga apenas “não é possí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 físico para o nível de "desordem" em um sistema. A entropia no universo tende a um máximo, e o mesmo padrão é observado no desenvolvimento. Aumentar o grau de desordem em programas no jargão profissional é chamado de corrupção de software. Existem muitos fatores que contribuem para a corrupção de software, mas o mais importante deles é a cultura do projeto.

De acordo com a teoria das janelas quebradas, soluções descuidadas e áreas problemáticas tendem a se multiplicar. Não deixe "janelas quebradas" (desenhos ruins, bugs, código ruim) sem vigilância. Se não houver tempo para um reparo adequado, pelo menos comente o trecho errado, ou exiba a mensagem "Em construção" ou use dados falsos. É 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 rápido do que qualquer outro fator.

Dica 5: Seja um catalisador para a mudança

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

Dica 6: Fique atento às mudanças

Mantenha seus olhos no quadro geral. Observe constantemente o que está acontecendo ao seu redor, e não apenas o que você está fazendo pessoalmente. A maioria dos desastres no código começa como 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 é coberto de "patches" até que nada resta do original. Muitas vezes, são as pequenas coisas acumuladas que levam à destruição da moral e das equipes. Mas se você capturar esse processo nos estágios iniciais e agir imediatamente (veja o parágrafo anterior), poderá sair com pouco derramamento de sangue.

Dica 7: Faça da qualidade um requisito

A qualidade deve ser uma cláusula contratual no contrato que você faz com seus usuários. Claro, o ideal é que seja o máximo, mas muitas vezes você se encontrará em situações em que terá que se comprometer devido a prazos apertados ou falta de recursos. E aqui é útil se acostumar a criar programas aceitáveis. "Aceitável" não significa "pronto": você apenas dá aos usuários uma opinião na determinação do limite de qualidade que pode ser considerado aceitável. Surpreendentemente, muitos vão preferir usar programas com algumas falhas hoje, ao invés de esperar um ano para que uma versão multimídia seja lançada.

Além disso, os programas às vezes melhoram ao encurtar o período de incubação. No desenvolvimento, há um problema de "refinamento" - restrições externas ajudam a parar no tempo em busca da perfeição.

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

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

Os princípios gerais são:

  1. Invista regularmente. Mesmo que o valor do 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 está em constante mudança. Quanto mais ferramentas você tiver em seu arsenal, mais fácil será para você se adaptar.
  3. Pese os riscos. As tecnologias existem em uma certa faixa - de arriscadas e potencialmente de alto retorno a baixo risco e baixo retorno. Investir tudo em opções arriscadas, cuja taxa pode entrar em colapso de repente, não é melhor ideia, mas também cautela excessiva que não permite que você aproveite oportunidades lucrativas - também. É melhor ficar na linha do meio.
  4. Compre na baixa, venda na alta. Dominar a tecnologia de ponta antes que ela se torne popular é uma tarefa difícil, mas vale a pena: os primeiros a adotar muitas vezes seguem carreiras emocionantes.
  5. Revise e rebalanceie regularmente. A programação é uma indústria muito dinâmica. Esteja preparado para revisar periodicamente seus ativos de forma crítica: abandone opções desatualizadas, restaure aquelas que subiram de preço e preencha nichos vazios.
O processo de aprendizado expandirá seu pensamento, abrindo novas possibilidades para você e novos caminhos criativos. Se você aprendeu algo novo, tente aplicar esse conhecimento ao projeto em que está trabalhando atualmente, com o melhor de sua tecnologia.

Dica 9: Analise criticamente o que você lê e ouve

Você precisa ter certeza de que o conhecimento em seu portfólio é preciso, que não é deturpado por aqueles que se beneficiam dele e que seu valor não é inflado por exageros. Cuidado com os fanáticos que insistem que seu dogma fornece a única resposta correta - é bem possível que em seu projeto isso não se aplique.

Dica 10: O que dizer e como dizer é importante

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

Princípios de uma comunicação eficaz:

  1. Saiba o que você quer dizer: Planeje o que você dirá com antecedência, esboce um plano e algumas estratégias para a melhor forma de transmitir a mensagem. Isso funciona tanto para redigir documentos quanto para negociações importantes.
  2. Conheça seu público: Você se comunica apenas se transmitir informações. Para fazer isso, você precisa estar ciente das necessidades, interesses e habilidades do público. Apresente a informação de uma forma que seja compreensível e interessante para o ouvinte.
  3. Escolha o momento certo: Ponto importante entender o público - entendendo suas prioridades momentâneas. O que você diz não deve ser apenas relevante no conteúdo, mas também oportuno. Se necessário, pergunte diretamente: "É conveniente falar sobre ...?"
  4. Escolha o estilo certo: Determinar o estilo de apresentação do material de acordo com as exigências do público: alguém prefere fatos simples, alguém prefere detalhes, exemplos e longas introduções. Novamente, em caso de dúvida, pergunte.
  5. Conhecido por roupas: Saiba como "servir" adequadamente suas ideias. Tudo deve ser verificado no documento final: ortografia, layout, estilos de texto, design de impressão.
  6. Envolva seu público: Se possível, envolva os futuros leitores no processo de criação de documentos. Use suas idéias. Dessa forma, você obterá o melhor resultado e fortalecerá as relações de trabalho.
  7. Saber ouvir: envolva as pessoas na conversa fazendo perguntas ou fazendo com que resumam o que você disse. Transforme a reunião em um diálogo e você transmitirá melhor o que queria dizer e talvez aprenda algo por si mesmo ao mesmo tempo.
  8. Mantenha 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 é muito mais fácil perdoar um deslize ocasional.

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 pedaço de conhecimento deve ter uma representação única, inequívoca e confiável no sistema. Uma alternativa é apresentar o mesmo item em vários lugares. Isso é inconveniente: se algo for editado em um lugar, as alterações devem ser feitas 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, é uma questão de tempo.

A maioria das duplicações se enquadra em uma das seguintes categorias:

  • Duplicação imposta. 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 várias plataformas com diferentes ambientes, linguagens e bibliotecas, as especificidades da própria linguagem. Em alguns casos, você só pode aceitar, mas em outros você ainda pode encontrar soluções alternativas com filtros, geradores de código ativos, metadados e a abordagem correta para comentar.
  • Duplicação não intencional. Os desenvolvedores não percebem que estão duplicando informações. Isso geralmente acontece como resultado de erros ou inconsistências em um nível profundo (por exemplo, o mesmo atributo é escrito em vários objetos), e a eliminação requer reorganização. Em alguns desses casos, é permitido quebrar o princípio por causa do desempenho, mas apenas dentro da classe.
  • Duplicação ansiosa. Os desenvolvedores fazem a duplicação porque acham que é mais fácil. Isso geralmente acontece copiando pedaços de código. Tudo se resume à autodisciplina - não com 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 no decorrer do trabalho. O caso mais difícil em termos de detecção e resolução. Em alto nível, o problema é resolvido por meio de uma solução de design clara, um gerente técnico forte e uma divisão clara de responsabilidades. No modular - através da comunicação ativa entre desenvolvedores: crie grupos para 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 outra pessoa.
Dica 12: Facilite a reutilização do programa

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 a interação entre objetos que não estão relacionados entre si

Essa 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. Há dois grandes benefícios para este esquema: aumento da produtividade e redução do risco.

Quando as alterações no sistema são localizadas, os tempos de desenvolvimento e teste são reduzidos. Uma vez que um pequeno componente autocontido é projetado, implementado e testado, ele pode simplesmente ser esquecido, em vez de fazer alterações constantemente à medida que novos fragmentos são adicionados ao código.

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

A redução do risco se deve ao fato de fragmentos errôneos serem isolados e não afetarem todo o sistema; consequentemente, também é mais fácil consertá-los ou substituí-los. Como resultado, o sistema se torna mais estável - as áreas problemáticas continuam sendo áreas. Também ajuda que o teste em nível de unidade geralmente seja feito de forma mais completa.

O princípio da ortogonalidade não deve ser observado ao nível das tecnologias individuais, mas deve abranger todos os processos: do design à seleção de ferramentas, do teste à gestão do produto. Minimiza a duplicação e torna o sistema mais flexível e transparente.


Dica 14: Não há 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, por exemplo, ao escolher uma ferramenta de terceiros, padrão de arquitetura, modelo de implantação) terá que ser reconsiderada no futuro sob a influência de fatores externos. O princípio da "duplicação mínima", o princípio do desacoplamento e o uso de metadados tornam o sistema mais reversível.

Dica 15: Use balas rastreadoras para encontrar seu alvo

Quebrando a metáfora: ao criar um novo produto, a equipe de desenvolvimento muitas vezes trabalha cegamente, trabalhando com técnicas, linguagens e bibliotecas desconhecidas. O resultado final pode ser previsto tanto pela previsão rígida baseada em uma análise muito detalhada das tecnologias, quanto pelo "rastreamento" - criando uma série de versões de trabalho simplificadas, experimentais e aprimoradas incrementalmente para reunir os componentes do sistema e verificar como eles funcionam juntos.

Uma alternativa a esta abordagem - o desenvolvimento isolado de módulos individuais, que são montados em conjunto 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 (você pode apresentá-lo aos usuários para mostrar 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 na interação.

Dica 16: Protótipo para aprender

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

Para prototipagem, não é necessário criar um aplicativo de trabalho, às vezes apenas um diagrama em papel ou uma placa é suficiente. Se, no entanto, for necessário, então faz sentido escolher uma linguagem 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 especificar tipos de dados) e ainda criar um fragmento de programa funcional, embora incompleto e lento.

Dica 17: Codifique com o escopo em mente

As linguagens de programação afetam como você pensa sobre um problema e como você interage com o usuário. Cada língua tem características próprias que levam a determinadas soluções ou, inversamente, as impedem. Uma solução estilo Lisp é diferente de uma solução C-thinking e vice-versa. O inverso 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 no campo da programação.

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

Dica 18: Avalie para evitar surpresas

Dar uma estimativa aproximada é uma habilidade, e uma parte essencial dessa habilidade é a capacidade de determinar a precisão aceitável com base no contexto. A unidade de medida que você escolher também deve refletir o grau de precisão (compare: uma tarefa levará duas semanas e uma tarefa levará 75 horas úteis).

A avaliação é realizada em várias etapas. Primeiro, aprofundamos a essência da pergunta formulada e avaliamos a abrangência da área temática; além disso, a própria formulação da pergunta muitas vezes leva a uma resposta. Em seguida, é construído um modelo do problema - uma sequência aproximada de etapas que precisarão passar ao resolvê-lo. O modelo é decomposto em componentes, para cada um dos quais é definido um parâmetro de significância. Com base nesses parâmetros e valores aproximados, os cálculos são feitos. A última etapa é realizada após o fato - a previsão é comparada com o estado real das coisas, em caso de desvios graves, o trabalho é realizado nos erros.

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

Isso pode não ser do agrado da gerência, que geralmente deseja que os números sejam anunciados antes do início do projeto e não sujeitos a alterações. Você terá que transmitir a eles que o cronograma para concluir as tarefas será determinado pela produtividade da equipe e pelas circunstâncias. Ao formalizar esse procedimento e refinar o cronograma durante cada iteração, você pode fornecer ao gerenciamento as estimativas de tempo mais precisas para cada estágio.

Capítulo 3: Kit de ferramentas de acampamento

As ferramentas são um meio de aprimorar seu talento. Quanto melhores eles são e quanto melhor você os possui, mais você pode fazer. Comece com uma caixa de ferramentas versátil e "viajante" que você usará para todas as operações básicas. Este conjunto crescerá à medida que você ganha experiência e atende a requisitos específicos.

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

O melhor formato para o armazenamento permanente do conhecimento é o texto simples, que permite que a informação seja processada tanto manualmente quanto com a ajuda de quaisquer ferramentas disponíveis. O problema com a maioria dos formatos binários é que o contexto necessário para entender 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 podem ser mais lentos. Dependendo da aplicação, uma ou ambas as situações acima podem ser inaceitáveis. Mas mesmo nesses casos, é aceitável salvar metadados que descrevam os dados originais em formato de texto simples.

O texto simples é:

  • Certifique-se de que os dados não estão desatualizados
  • Caminho mais curto para o objetivo
  • Testes mais fáceis
Dica 21: Use 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 da interface gráfica do usuário é que eles funcionam com base no princípio de "o que você vê é o que você obtém". Principal desvantagem interface gráfica pode ser formulada da seguinte forma: "você obtém apenas o que vê". O escopo de tais ferramentas geralmente é limitado às tarefas para as quais foram originalmente concebidas. Se você quiser ir além desse padrão (e mais cedo ou mais tarde você irá), você está fora do caminho com eles.

Faça um pequeno esforço para se familiarizar com o shell e você ficará surpreso com o quanto seu trabalho se torna mais produtivo. Os comandos de linha podem ser confusos, mas são poderosos e concisos. Ao agrupá-los em arquivos de script, você pode criar sequências de comandos para automatizar procedimentos comumente usados.

Dica 22: Use um editor de texto, mas aproveite ao máximo

O processamento de texto deve exigir um mínimo de esforço, por isso é melhor dominar um único editor à perfeição e usá-lo para resolver todas as tarefas de edição: trabalhar com texto de programa, documentação, notas, administração de sistemas, etc. uma vez em vários ambientes de software, traga o trabalho com cada um para um reflexo, já que cada um deles tem seu próprio conjunto de comandos e padrões. Tentando combinar vários editores, você corre o risco de repetir a situação com o pandemônio babilônico.

A escolha do editor é quase uma religião, portanto, nenhuma recomendação específica pode ser feita aqui. No entanto, ao tomar uma decisão, os seguintes parâmetros devem ser considerados:

  • Personalização. Todas as propriedades do editor devem ser personalizáveis, incluindo fontes, cores, tamanhos de janela e teclas de atalho.
  • Expansibilidade. O editor não deve se tornar obsoleto 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 no momento. Você deve ter a opção de "ensinar" a ele 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 de código-fonte

Os sistemas de gerenciamento de código-fonte acompanham todas as alterações feitas no texto e na documentação. Os melhores também podem acompanhar as mudanças nas versões do compilador e do sistema operacional. Com um sistema de gerenciamento de código-fonte configurado corretamente, você sempre pode reverter para uma versão anterior de um programa.

Um sistema de gerenciamento de código-fonte oferece muito mais do que apenas desfazer ações erradas. Um bom sistema permite que você acompanhe as alterações e forneça respostas a perguntas específicas: “Quem fez alterações nesta linha de texto? Qual é a diferença entre a versão que existe agora e a versão que existia na semana passada? Quantas linhas de texto do programa foram alteradas nesta versão? Quais arquivos mudam mais? Esse tipo de informação é inestimável para rastreamento de bugs, auditoria, desempenho e avaliações de qualidade.


Como está a depuração?

Dica 24: Concentre-se em resolver o problema, não em culpar

Passamos para o tópico de correção de bugs - muito sensível e extremamente relevante para o trabalho em equipe. Aqui, como em nenhum outro lugar, a atitude correta é importante. Abrace 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. Continua a ser o seu problema.

Dica 25: Não entre em pânico

É muito importante dar um passo para trá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 em um nível superficial - trabalhe com a causa raiz.

Antes de ver o erro, certifique-se de estar trabalhando em um programa que passou no estágio de compilação de forma limpa - sem avisos. Perder tempo com erros que até o compilador vê não faz sentido. Reúna o máximo de informações possível; se um bug foi relatado por terceiros, pergunte a quem o encontrou em detalhes.

Dica 26: Procure bugs fora do sistema operacional

Comece com a suposição de que tudo está 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, provavelmente é a causa do que aconteceu, por mais absurda que essa afirmação possa parecer. Se você não sabe por onde começar, sempre pode confiar na boa e velha pesquisa binária.

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

Dica 27: Não Assuma - Prove

A surpresa que você tem quando algo dá errado é diretamente proporcional ao nível de fé na correção do programa. Portanto, ao se deparar 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 pedaço de código que causou um erro só porque você "sabe" que funciona bem. Prove primeiro - em um 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 propague, afete outros trechos de código ou ocorra novamente. Se for o resultado de equívocos de alguém, discuta o assunto com toda a equipe.

Dica 28: Aprenda uma linguagem de processamento de texto

De tempos em tempos, temos que realizar algumas transformações que não podem ser feitas com o kit de ferramentas de acampamento. Nesses casos, é necessária uma ferramenta universal de processamento de texto. Usando linguagens de processamento de texto, você pode resolver rapidamente problemas de utilidade e ideias de protótipos que levariam de cinco a dez vezes mais tempo com linguagens convencionais.

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

Dica 29: Escreva o código que codificará para você

Os programadores geralmente são obrigados a executar tarefas semelhantes: fornecer a mesma funcionalidade, mas em um contexto diferente, reproduzir informações ou simplesmente redigitar o mesmo texto infinitamente. É aqui que entram os modelos. Para criá-los, um programador pode construir um gerador de código que pode ser usado pelo resto da vida do projeto praticamente sem custo.

Os geradores de código são ativos e passivos. Os geradores passivos são executados uma vez para obter um resultado, que então se torna independente. Na verdade, eles são modelos personalizados que economizam tempo de digitação e são usados ​​para operações como criar novos arquivos de origem, realizar transformações binárias ou criar tabelas de pesquisa e outros recursos que são muito caros para serem computados.

Geradores de código ativo são usados ​​sempre que há necessidade dos resultados de seu trabalho. 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 qualquer formato que seu aplicativo precise. Isso não é uma duplicação, pois esses formulários são consumíveis e são criados pelo gerador conforme necessário. Quando você precisa organizar o trabalho conjunto de dois ambientes completamente diferentes, você deve considerar o uso de 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 conseguiu escrever um único código perfeito. É improvável que você seja o primeiro. E quando você aceitar isso como um fato, você deixará de perder tempo e energia perseguindo um sonho fantasmagórico.

Dica 31: Projete de acordo com os contratos

A metodologia design-by-contrat propõe construir a interação dos módulos de software com base em seus direitos e obrigações documentados para garantir o correto funcionamento do programa. Correção é entendida como a capacidade de fazer exatamente o que é declarado.

O contrato entre uma sub-rotina e qualquer programa potencialmente chamador pode ser formulado da seguinte forma: "Se o programa chamador satisfizer todas as pré-condições da sub-rotina, então a sub-rotina garante que, ao final de seu trabalho, todas as pós-condições e invariantes serão verdadeiras. " Se uma das partes violar os termos do contrato, uma medida previamente acordada é aplicada, por exemplo, uma exceção é adicionada ou o programa é encerrado. No desenvolvimento, siga os princípios clássicos da celebração de um contrato: ao prescrever pré-condições, seja extremamente cáustico 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 reivindicações e garantias em primeiro plano. Durante a vida de um projeto, simplesmente listar os fatores – qual é a gama de entradas, quais são as condições de contorno, o que pode ser esperado da sub-rotina (ou, mais importante, o que não pode ser esperado dela) – é um grande passo frente. Ao não especificar essas posições, você desliza para a programação baseada na coincidência, na qual muitos projetos falham.

Dica 32: Deixe o programa travar o mais rápido possível

Em muitos casos, encerrar o programa dessa forma é a melhor saída, pois as alternativas terão consequências graves, às vezes irreversíveis. Os pragmáticos encaram a situação assim: se ocorrer um erro, então 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, fechar transações abertas ou interagir com outros processos). No entanto, o princípio básico permanece o mesmo - se o programa detectar que ocorreu um evento considerado impossível, ele perde a viabilidade. A partir deste momento, todas as ações realizadas pelo programa ficam sob suspeita, devendo sua execução ser interrompida o quanto antes. Na maioria dos casos, um programa morto causa muito menos danos do que um quebrado.

Dica 33: Se algo não pode acontecer, use declarações para garantir que não aconteça

Sempre que você começar a pensar como “Claro, isso não pode acontecer”, verifique isso com o código. A maneira mais fácil de fazer isso é usar asserções. A maioria das implementações das linguagens C e C++ possuem algum tipo de macro assert ou _assert que verifica uma condição booleana. Essas macros podem ser de grande valor. Por exemplo, se o ponteiro passado para o seu procedimento nunca deve assumir o valor NULL, anote o cumprimento obrigatório desta condição.

Asserções não devem ser usadas no lugar do tratamento de erros real. Eles só testam para algo que nunca deveria acontecer. Há uma visão de que 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 otimista: o teste provavelmente não revelará tudo o que pode acontecer em condições reais. Mesmo se houver problemas de desempenho, desative apenas as declarações que realmente tenham um impacto significativo no desempenho.

Dica 34: Use Exceções Apenas em Casos Excepcionais

Na prática, no entanto, a verificação de todos os erros concebíveis pode fazer com que o programa fique feio; a lógica normal pode entrar em colapso devido à superlotação com rotinas de tratamento de erros. Exceções ajudarão a implementar tudo de forma mais graciosa.

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

Uma exceção é uma transferência instantânea não local de controle - uma espécie de instrução goto em camadas. Os programas que usam exceções em seu trabalho normal apresentam os mesmos problemas de legibilidade e manutenção que os programas não estruturados clássicos. Eles violam o princípio do encapsulamento: as sub-rotinas e os programas que as chamam são mais fortemente acoplados 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 itens que estão disponíveis em uma base limitada. Na maioria das vezes, o uso de recursos segue um padrão previsível: o recurso é atribuído, usado e depois liberado. No entanto, muitos desenvolvedores não têm um plano claro para alocação e liberação de recursos, o que pode levar à escassez de recursos. A solução aqui é simples: a rotina ou objeto que solicita o recurso deve ser responsável por liberar esse recurso.

Se várias rotinas precisarem de mais de um recurso ao mesmo tempo, mais duas regras serão adicionadas:

  1. Liberar recursos na ordem inversa de como eles foram alocados. Ao mesmo tempo, o aparecimento de recursos “órfãos” pode ser evitado se um deles contiver links para outro.
  2. Ao distribuir o mesmo conjunto de recursos em diferentes locais do programa, é necessário realizar essa operação na mesma ordem. Isso reduz a chance de um impasse.
Em programas que usam estruturas de dados dinâmicas, há momentos em que o esquema de alocação de recursos subjacente não é bom. Nesse caso, o truque é estabelecer uma invariante semântica para alocação de memória.