npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@designliquido/birl

v0.1.8

Published

Dialeto de BIRL baseado em Delégua e TypeScript

Downloads

148

Readme

birl

Nossa implementação do dialeto BIRL, usando TypeScript.

Sobre este dialeto

Este dialeto tenta implementar da forma mais fidedigna possível todos os comportamentos de execução de BIRL como foi implementado em [https://birl-language.github.io]. Basicamente, o mecanismo dessa linguagem é traduzir todos os comandos para C, fazer o deploy em um servidor na Heroku e executar. O problema é que a Heroku deixou de ser gratuita há algum tempo, e por causa disso a ferramenta nunca mais funcionou. A ideia do dialeto é puramente preservação e didática.

Inicialmente, este dialeto foi implementado dentro do núcleo de Delégua, já que tínhamos a ideia de (talvez) aproveitar algumas das funcionalidades implementadas em Delégua. Com a incorporação de mais dialetos ao núcleo, a manutenção do monolito começou a trazer impactos ao núcleo como um todo, com instruções que sequer existem em um dialeto tendo que ser implementadas porque outro dialeto a possui. Portanto, este dialeto foi separado do núcleo de Delégua, mas ainda o utiliza como dependência.

Componentes implementados

Este dialeto implementa os seguintes componentes:

  • Lexador: responsável pela análise léxica da linguagem: converte um texto em símbolos (tokens) que são utilizados na avaliação sintática;
  • Avaliador Sintático: responsável por converter símbolos em estruturas de alto nível. Essas estruturas de alto nível podem ser usadas para execução de código, formatação de código, tradução do fonte em outra linguagem de programação e análise semântica;
  • Interpretador: recebe estruturas de alto nível da avaliação sintática e as executa como instruções;
  • Analisador Semântico: recebe estruturas de alto nível e verifica se a execução do código correspondente faz sentido ou não. O código de entrada pode estar perfeitamente escrito quanto ao léxico e sintaxe, mas podem haver problemas como variáveis que não existem, funções que retornam um tipo incorreto, execuções impossíveis como divisões por zero, entre outras heurísticas.

Finalidade educacional

A finalidade educacional deste dialeto serve a dois grandes propósitos:

  • Permitir a qualquer pessoa executar código em BIRL, independente de sistema operacional e dispositivo, e independente de plataformas como a Heroku;
  • Possibilitar a alunos que estejam estudando disciplinas de ciência da computação ou tecnologia da informação, como compiladores, a entender como esses componentes funcionando, já que boa parte deles faz parte do currículo eletivo de diversas instituições de ensino pelo mundo. O material disponível para tal é farto na língua inglesa, mas não na língua portuguesa.

Compatibilidade com JavaScript e Node.js

Este dialeto é distribuído como um pacote do NPM, e é compatível com qualquer versão de JavaScript e Node.js. O código é escrito em TypeScript, mas transpilado para JavaScript ES5, virtualmente compatível com 100% dos navegadores de internet disponíveis atualmente.

Este dialeto pode ser utilizado como base para construir outras aplicações, como sites de internet, aplicativos para dispositivos móveis e até mesmo scripts executados por linha de comando. É também agregado ao pacote de Delégua para Node.js, o que permite a execução de fontes por linha de comando.