mini-python-builder

Mini-Python Builder (Backend)

https://github.com/compiler-campusminden/mini-python-builder

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.0%) to scientific vocabulary

Keywords

backend code-generation compiler hacktoberfest open-educational-resources teaching-materials
Last synced: 4 months ago · JSON representation ·

Repository

Mini-Python Builder (Backend)

Basic Info
  • Host: GitHub
  • Owner: Compiler-CampusMinden
  • License: mit
  • Language: Java
  • Default Branch: master
  • Homepage:
  • Size: 332 KB
Statistics
  • Stars: 7
  • Watchers: 2
  • Forks: 5
  • Open Issues: 5
  • Releases: 0
Topics
backend code-generation compiler hacktoberfest open-educational-resources teaching-materials
Created about 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation Codeowners

README.md

Mini-Python Builder (Backend)

Overview

This repository provides

  1. the language definition for Mini Python, and
  2. a Java-based builder, and
  3. a compatible C runtime environment.

The builder emits C code via API calls (analogous to LLVM): To generate C code for a Mini Python program, you call the builder functions while traversing the AST. This generated code can be compiled into an executable application using a standard C compiler and the C runtime environment provided here.

For details please refer to the documentation.

Required software

To work with the builder, you need Java. The actual release does not really matter (Java 9 and newer should work), however JDK 21 LTS is recommended.

To compile the generated C code, you need make and a C compiler (e.g. gcc or clang).

You also need a POSIX-compatible operating system. For details see Verwendung des generierten C-Codes im Mini-Python-CBuilder.

Contributing

Questions, bug reports and feature requests are very welcome.

Please check first whether your request has already been addressed in other (open or closed) topics. Feel free to reopen closed issues if necessary.


License

This work by Florian Warzecha, Sebastian Steinmeyer, Michael Peters, BC George, Carsten Gips, and contributors is licensed under MIT.

Owner

  • Name: Compilerconstruction @ Campus Minden
  • Login: Compiler-CampusMinden
  • Kind: organization

Vorlesung Compilerbau FH Bielefeld

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Mini-Python Builder (Backend)
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Carsten
    family-names: Gips
    email: cagix@hsbi.de
    affiliation: HSBI
    orcid: 'https://orcid.org/0000-0002-4230-9060'
  - family-names: George
    given-names: Birgit Christina
    affiliation: HSBI
    orcid: 'https://orcid.org/0009-0001-6148-9677'
  - family-names: Warzecha
    given-names: Florian
  - given-names: Sebastian
    family-names: Steinmeyer
  - given-names: Michael
    family-names: Peters
repository-code: >-
  https://github.com/Compiler-CampusMinden/Mini-Python-Builder
abstract: >-
  This repository provides a Java-based builder for
  Mini-Python and a matching C runtime. The builder emits
  corresponding C code via API calls (analogous to LLVM).
  Please read the documentation in the docs folder.
keywords:
  - compiler
  - backend
  - code generation
  - oer
license: MIT

GitHub Events

Total
  • Push event: 1
  • Pull request review event: 1
  • Pull request event: 2
  • Fork event: 1
  • Create event: 1
Last Year
  • Push event: 1
  • Pull request review event: 1
  • Pull request event: 2
  • Fork event: 1
  • Create event: 1