BitNotíciasBitNotícias
  • Últimas Notícias
  • Mercado
  • Regulação
  • Web3
  • Onde Investir
    • Criptomoedas Promissoras
    • Criptomoedas com Potencial
    • Memecoins
    • Inteligência Artificial
  • Guias
    • Passo a Passo para Iniciantes
    • Melhor Hard Wallet
    • Melhor Carteira de Criptomoedas
    • Melhor Cartão Cripto
    • Melhor Corretora de Criptomoedas
    • Como Comprar Criptomoedas
    • Glossário
  • Análises
    • Cartões
    • Carteiras
    • Corretoras
Você está lendo: O Evangelho de Satoshi Nakamoto – Cap. 33 vers. 11
Compartilhe
BitNotíciasBitNotícias
Pesquise:
  • Últimas Notícias
  • Mercado
  • Regulação
  • Web3
  • Onde Investir
    • Criptomoedas Promissoras
    • Criptomoedas com Potencial
    • Memecoins
    • Inteligência Artificial
  • Guias
    • Passo a Passo para Iniciantes
    • Melhor Hard Wallet
    • Melhor Carteira de Criptomoedas
    • Melhor Cartão Cripto
    • Melhor Corretora de Criptomoedas
    • Como Comprar Criptomoedas
    • Glossário
  • Análises
    • Cartões
    • Carteiras
    • Corretoras
BitNotícias nas Redes:
© 2019 – 2024 BitNotícias. Todos os direitos reservado
Início > Notícias > O Evangelho de Satoshi Nakamoto – Cap. 33 vers. 11
Notícias

O Evangelho de Satoshi Nakamoto – Cap. 33 vers. 11

Por Leonardo Broering Jahn
Atualizado em: 17/01/2025
Compartilhe
Compartilhe

Boa noite povo!

Continuando com a décima primeira parte da tradução de “A Formal Language for Analyzing Contracts”. No último versículo vimos a décima.

CONTINUA APÓS A PUBLICIDADE

Máquinas de Conexão

Mostrando ainda mais a flexibilidade de nossa linguagem, podemos adicionar sensores e efetores, acrescentando “inteligência” a nossos contratos e aumentando a aplicação legal com restrições tecnológicas.

Primeiro, esboçamos uma especificação para o comportamento de contrato de uma máquina de venda automática:

sellCandy(candyPrice = $0.90) =
    variable moneyAmount = $0.00
    then
        # coins also fall into a temporary till tempTill
    when (nickel)
        add(moneyAmount, $0.05)
    when (dime)
        add(moneyAmount, $0.10)
    when (quarter)
        add(moneyAmount, $0.25)
    when (moneyReturn)
        dropCoins(tempTill, returnTill)
        with moneyAmount = $0.00
    when threshold(moneyAmount, candyPrice)
        when (nickel | dime | quarter)
            redirectNewCoinsTo(returnTill)
        also display(“ready to dispense — please select candy”)
        then when (candySelection)
          dropCandy(candyRacks, candySelection)
          with dropCoins(tempTill, permTill)
          with moneyAmount = $0.00
    continue

CONTINUA APÓS A PUBLICIDADE

Introduzimos aqui um novo recurso de linguagem, uma variável de estado. Nossa variável de estado moneyAmount gera um evento ao ultrapassar o limite de preço de doces de $0,90. Observe que nickel [moeda de 5 centavos], dime [moeda de 10 centavos], etc. são objetos físicos reais que os sensores (gerando eventos “nickel“, “dime” etc.) detectam e tratam separadamente – não são apenas quantias abstratas de dinheiro.

Variáveis de estado podem ser problemáticas e devem ser evitadas, a menos que seja absolutamente necessário, como aqui. Esta é relativamente inofensiva porque o slot de moedas tende a forçar as moedas a entrar uma de cada vez, de modo que não há duas cláusulas tentando alterar a variável de estado ao mesmo tempo. Mesmo se fossem, a operação de adição é o que os matemáticos chamam de “comutativo”, o que significa que não importa em que ordem é feita. Mas se a operação na variável de estado fosse mais complicada ou envolvesse certos outros tipos de operações, não saberíamos se seria comutativo. A ordem em que os eventos ocorreram e alteraram a variável de estado pode importar muito, e poderíamos ter grandes problemas. Portanto, evite variáveis de estado sempre que possível.

Para simplificar, deixamos de fazer troco- nossa máquina precisa ter um desses sinais que você vê às vezes, “somente troco exato”. Se o cliente coloca uma moeda que empurra o valor de, por exemplo, $0,80 a $1,05 – lamento, a máquina o come. Se o cliente colocar US $ 0,90 (ou mais) e adicionar mais moedas, no entanto, a máquina retornará automaticamente as moedas extras. A máquina também retornará tudo o que foi colocado no caixa, se o cliente mudar de idéia e decidir não comprar o doce. Exercício para o leitor: verifique por si mesmo que as descrições de comportamento acima estão corretas conforme o código é escrito.

CONTINUA APÓS A PUBLICIDADE

RedirectNewCoinsTo(returnTill) faz com que outras moedas caiam na rampa de retorno em vez de no sensor que aciona os eventos acima. O leitor deve aqui imaginar como é o mecanismo, pois parte do comportamento é “codificada” em seu mecaninismo, e não explicitamente nesta afirmação.

Pense nos contratos e direitos aninhados como uma árvore invertida – uma hierarquia de cláusulas aninhadas. Os eventos se propagam de cima das “folhas” da árvore em direção à “raiz” no topo. Eles são pegos pelo primeiro evento when que encontram para aquele evento. Nesse caso, uma vez inserida a cláusula when threshold(), a cláusula when (nickel | dime | quarter) substitui as cláusulas when (nickel) e assim por diante acima delas.

Como uma perpetuidade, nossa máquina de venda automática não tem horário ou condição agendada para a execução – portanto, temos uma instrução continue para substituir o implícito then terminate na última linha.

CONTINUA APÓS A PUBLICIDADE

Infelizmente, nem eu nem os fabricantes de máquinas de doces do mundo real temos nenhum código para resolver o caso em que os doces ficam presos na máquina.

Terminada a décima primeira. No versículo seguinte: parte 12. Ricas bençãos!

CONTINUA APÓS A PUBLICIDADE
Wall Street vira o novo inimigo das criptomoedas? Veja o que está por trás dessa ameaça
Criptomoedas vão impulsionar juros compostos e acelerar adoção em 2026
Governo Lula fecha contrato milionário para rastrear Bitcoin e criptomoedas em 2026
Polygon projeta expansão de pagamentos em cripto no Brasil e acelera estratégia para 2026
Brasil entra no mapa global da mineração de Bitcoin com projetos bilionários
TagsEvangelhoSatoshi Nakamoto
Compartilhe este artigo
Facebook Whatsapp Whatsapp Telegram Copiar Link
PorLeonardo Broering Jahn
@leonardobjahn Natural de Florianópolis, SC 27 anos Evangelista Bitcoin Graduando Administração na UFSC Professor particular e tradutor de Inglês
Publicidade

Últimas Notícias

XRP atrai US$ 28,6 milhões em ETFs Enquanto ETPs de criptomoedas perdem US$ 446 milhões na semana
XRP atrai US$ 28,6 milhões em ETFs Enquanto ETPs de criptomoedas perdem US$ 446 milhões na semana
3 min
Tether compra mais 8.888 BTC e entra para o top 5 das maiores carteiras de Bitcoin
Tether compra mais 8.888 BTC e entra para o top 5 das maiores carteiras de Bitcoin
3 min
Solana lidera tendências de 2026 após compras repetidas de baleias, mesmo em cenário de correção
Solana lidera tendências de 2026 após compras repetidas de baleias, mesmo em cenário de correção
3 min

Destaque

  • Últimas Notícias
  • Mercado
  • Regulação
  • Tecnologia
  • Web3
  • Eventos

Reviews

  • Cartões
  • Wallets
  • Exchanges

Guias

  • Investir Agora
  • Comprar Criptomoedas
  • Melhores Corretoras
  • Carteira de Criptomoedas
  • Cartões de Criptomoedas
  • Glossário

Tudo Sobre

  • Bitcoin
  • Ethereum
  • Polygon
  • Solana
  • Mineração
  • Web3

Sobre Nós

  • MediaKit
  • Quem Somos
  • Política Editorial
  • Política de Privacidade
  • Política de Cookies
  • Contato
Cookie Settings
BitNotícias nas Redes:
© 2019 – 2025 BitNotícias. Todos os direitos reservado
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?