Publicidade

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

Por Leonardo Broering Jahn

Boa noite povo

Continuando a tradução de  “A Formal Language for Analyzing Contracts” . No versículo último vimos a parte 14, no de hoje vemos a 15.

CONTINUA APÓS A PUBLICIDADE

Funções Básicas

doOn(right, period) =
    when withinPeriod(p) { right }
# deve executar “right [direito]” dentro de (period [período])
# = obrigação com cupom zero = cupom
#

doOnDemand(right) =
    when choiceOf(Holder) { right }
# deve executar o “right [direito]” a qualquer momento / sob demanda
#

doOn(contract, period) =
    when withinPeriod(p) { contract }
# deve executar “contract [contrato]” dentro de (period [período])
#

CONTINUA APÓS A PUBLICIDADE

doOnDemand(contract) =
    when choiceOf(Holder) { contract }
# deve executar “contract [contrato]” a qualquer momento / sob demanda
#

Mais Exemplos

future(rightA, rightB, p) =
    Holder doOn(rightA, p)   with Counterparty doOn(rightB, p)
#
# [restrição adicional p = p não é mera composição algébrica]
callOptionAmerican(rightA, rightB, t) =
    when withinPeriod(whenWritten, t)
        when choiceOf(Holder)
          Holder rightA  with Counterparty rightB

#
callOptionEuro(rightA, rightB, p) =
      when choiceOf(Holder)
          Holder doOn(rightA, p)
              with Counterparty doOn(rightB, p))
#
putOptionAmerican(rightA,rightB,t) =
    when withinPeriod(whenWritten, t)
        when choiceOf(Holder)
        Holder rightA   with Counterparty rightB

CONTINUA APÓS A PUBLICIDADE

# semântica de eventos precisa armazenar choiceOf até
# ao esperar o próximo when

putOptionEuro(rightA,rightB,p) =
    when choiceOf(Holder)
        Holder doOn(rightB, p)
            with Counterparty doOn(rightA, p))
#
note(right) = demandDeposit(right) =
    Holder doOnDemand(right)
# [distinção entre portador e titular da conta não
# foi introduzido]
#
zeroCouponBond(right,p) = doOn(right, p)
#
callableZeroCouponBond(right,p) =
    when choiceOf(Holder) { right }
    when withinPeriod(p) { right }
#
bond(coupon, principal, schedule) =
    for schedule {
        doOn(coupon, schedule.next)
    } then
    doOn(principal, schedule.next)
bond(coupon, principal, schedule) =
    for schedule {
      doOn(coupon, schedule.next)
    } then
    doOn(principal, schedule.next)

CONTINUA APÓS A PUBLICIDADE

Terminada a parte 15. Se você tá achando os últimos versículos estranhos é porque são bem estranhos mesmo hahaha, o próximo já volta a ser mais “normal”. Abraços e até…

Compartilhe este artigo
@leonardobjahn Natural de Florianópolis, SC 27 anos Evangelista Bitcoin Graduando Administração na UFSC Professor particular e tradutor de Inglês
Sair da versão mobile