Code Monkey home page Code Monkey logo

circ's Introduction

metaL

homoiconic [meta]programming [L]anguage / [L]ayer

(c) Dmitry Ponyatov <[email protected]> 2020 MIT

github: http:///github.com/ponyatov/metaL

  • object graph database
  • homoiconic metaprogramming language
  • web platform

Idea

  • take Lisp homoiconic nature and port it to Python stack (VM & libs)
  • provide light environment for generative metaprogramming (scripted code generation)
    • writing programs that write other programs
    • system bootstrap via metacircular definition
    • automated source code generation for typical tasks
  • integrate best features from multiple languages:
    • Python dynamics, readable syntax, lib batteries and ease of use
    • Erlang/Elixir network-oriented programming: fault tolerance, fast light VM, transparent clustering, bit arrays (for IoT)
    • Clojure homoiconic extendable language
    • Smalltalk message-based OOP

metaL is not a programming language

metaL is a method of programming in Python, or any other language you prefer. It works over two key features:

  • homoiconic self-modifying executable data structures (EDS)
  • metaprogramming via code generation

All metaL structures should be defined directly in the host language (Python), and there is no syntax parser, as all you need for parsing you already has in your compiler.

The idea of the metaL originates from an idea of the generic code templating. Any mainstream programming language we're using any day at work or for a hobby is limited by its vendors. If we want to use some features from cool but low-used language, we can't do it because it is prohibited by our contractors and teammates.

The idea about code templating is a way of using the power of your own custom language still having no incompatibles with your production team. In most cases, nobody locks you on the IDE you use for development, so if you also add some shadow tool that generates human-readable code in the mainstream language of your team, you'll have a chance to use the power without the risks shown above.

Concept Programming

CP here is a programming model described in the works of Enn Heraldovich Tyugu about model-based software development. It is not mean the term by Alexsandr Stepanov here. The common idea is about making domain models describe the problem in a wide in the form of relation networks, and automatic program (code) synthesis from specifications to solve concrete tasks. This synthesis works over these networks using them as generic knowledge representation.

  • http://www.cs.ioc.ee/~tyugu/
    • Тыугу Э.Х. Концептуальное программирование. М.: Наука, 1984. 255 с
    • М.И.Кахро, А.П.Калья, Энн Харальдович Тыугу Инструментальная система программирования ЕС ЭВМ (ПРИЗ) М.: Финансы и статистика, 1988
    • J. Symbolic Computation (1988) 5, 359-375\ The Programming System PRIZ [sym88]
  • Marvin Minsky A Framework for Representing Knowledge

Links

circ's People

Contributors

ponyatov avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.