fundo
Na primavera de 2020, eu me experimentei pela primeira vez no desenvolvimento de sites de back-end, escrevi em python e, na frente, tive que usar js e isso me causou rejeição (aqui é necessário esclarecer que não considero js uma linguagem horrível, simplesmente não gostei). Sem hesitar, comecei a escrever um tradutor de python para javascript (e se pesquisasse no Google encontraria isso e aquilo ). este tradutor será discutido.
Diferenças de outros tradutores
Durante o processo de desenvolvimento, li sobre JavaScript e não muito sobre outras linguagens (ruby, lua, php) e percebi que elas têm muito em comum, por exemplo, a presença de condicionais, funções, variáveis, etc. E então pensei por que não adicionar a capacidade de transmitir não apenas em js, mas também em outras línguas.
Os idiomas são adicionados usando funções de manipulador, por exemplo, um manipulador matemático para js se parece com isto:
def bin_op(left, right, op):
return f"({left}{op}{right})"
e para o lisp ficará assim:
def bin_op(left, right, op):
return f"({op} {left} {right})"
E também uma característica distintiva é a capacidade de adicionar macros, por exemplo, divisão inteira em js:
signs = {"//": lambda l, r: f"Math.floor({l}/{r})"}
Quem precisa disso
Uma das opções para usar o projeto é escrever scripts em jogos, já que python é bastante pesado para uma linguagem embarcada, você pode usar a tradução para lua.
Você também pode usá-lo como um linter python com correção de erros nos nomes das funções.
( js pascal) .
, - . : ( python ) .
, , . - , .
java. Java(jvm) - , , : Kotlin, Java, Clojure .
js, go, hello world (c++).
.
if...elif...else, while, for(C for each), . . .
, python. . .
web :
P.S.
.
Apoie o projeto com um asterisco no github
Junte-se ao canal de telegrama