Git Product home page Git Product logo

kin's Introduction

Kin Logo

Write computer programs in Kinyarwanda!

Getting Started . Why Kin? . VS Code support . Show us what you did!

GitHub . GitHub last commit . Version . Stars . Issues

Description

Kin is a straightforward programming language created with the purpose of aiding Kinyarwanda speakers in easily learning programming.

Important

Kin is designed to enable individuals to write computer programs in Kinyarwanda, the native language of Rwandans. The aim is to facilitate an easy introduction to programming for people. While it is well-suited for teaching or learning programming, its suitability for use in a production environment is not guaranteed.

What does it look like

Bubble sort algorithm implementation ๐Ÿ˜Ž Kin Sample Codes

Hello <name> !

reka name = injiza_amakuru("Enter your name: ")
tangaza_amakuru("Hello ", name, "!")

Get name from console and greet you!

Fun fact!

In Kin, multiple statements can be written on the same line ๐Ÿ˜‚

This will work

reka name = injiza_amakuru("Enter your name: ") tangaza_amakuru("Hello ", name, "!")

Also this will work

tangaza_amakuru("Hello ", injiza_amakuru("Enter your name: "), "!")

Contributing

We still have a long way to go with Kin, we're calling for your contributions! Contributions are welcomed, refer to Contiributing.md for futher info.

Maintainers

This language is maintained by @pacifiquem.

License

This project is under Apache License 2.0 LICENSE.



PACIFIQUE Murangwa - Author

kin's People

Contributors

pacifiquem avatar regisrex avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

kin's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/auto-assign.yml
  • pozil/auto-assign-issue v1
.github/workflows/ci.yml
  • actions/checkout v4
  • actions/setup-node v4
.github/workflows/test-pr.yml
  • actions/checkout v4
  • actions/setup-node v4
npm
package.json
  • chalk ^5.3.0
  • commander ^12.0.0
  • moment ^2.30.1
  • prompt-sync ^4.2.0
  • @types/node ^20.11.9
  • @types/prompt-sync ^4.2.3
  • @typescript-eslint/eslint-plugin ^7.0.0
  • @typescript-eslint/parser ^7.0.0
  • @vitest/coverage-v8 ^1.2.2
  • eslint ^8.56.0
  • eslint-config-prettier ^9.1.0
  • eslint-plugin-prettier ^5.1.3
  • eslint-plugin-vitest ^0.3.20
  • husky ^9.0.10
  • prettier ^3.2.4
  • typescript ^5.3.3
  • vitest ^1.2.2

  • Check this box to trigger a request for Renovate to run again on this repository

``Kin`` usage

Desc

Since our programming language will be interpreted we will need to tell user how he can use it. like list of commands and arguments so that he/she can get started.

Case

We will print usage when a user issues kin,kin help or kin -h commands in his/her terminal.
also when he/she issues unknown command we will print Command *issued-command* not found run *kin help* for usage

Error : `KIN_AMAGAMBO.tandukanya()` method issue

Describe the bug
issue when using the KIN_AMAGAMBO tandukanya method.
i am getting objects array instead of array of strings

To Reproduce
Steps to reproduce the behavior:

  1. make file try.kin
  2. add codes tangaza_amakuru(KIN_AMAGAMBO.tandukanya("hello world", " "))
  3. run kin run ./try.kin
  4. See result ([object Object])

Expected behavior
expected to get a string array.

Screenshots
image

``Kin`` usage

Desc

Since our programming language will be interpreted we will need to tell user how he can use it. like list of commands and arguments so that he/she can get started.

Case

We will print usage when a user issues kin,kin help or kin -h commands in his/her terminal.
also when he/she issues unknown command we will print Command *issued-command* not found run *kin help* for usage

[feature] : recursive functions in Kin

Based on basic behavior, and how Kin manages return-statement, it's not easy to write recursive functions.

we need to optimize this so that it'll be able to interpret recursive functions.

Migrate codebase from ``C`` to ``C++``

This might sound like a crazy idea but yes, we have to migrate our code base from C to C++.
Here is the reason why:

As the codebase scales our codes are getting more messy, and the solution here to introduce Object Oriented Programming Language which is also a low-level and statically typed to help us organize our codes but also help us to consume the beauty of OOP.

This might be a little bit challenging but it will benefit us in future like:

  • Easy maintainance
  • C++ introducing more utility function ...

It was good that we reached here by using only C.

[Bug] : number of arguments can be less than number of parameters.

We don't check if number of arguments to functions are equal to number of parameters of that function.

this leads to errors like Error reading file: Cannot read properties of undefined (reading 'type').

How to fix this

  • For native functions:

in globals.ts inside runtime folder, always check if args.length == number of arguments the native function has to receive

  • For user defined functions

must be fixed in expressions.ts check if arguments, are equal to fn.parameters.length

[Docs] : Kinyarwanda's documentation.

Is your feature request related to a problem? Please describe.

No, add Kinyarwanda documentation to existing documentation.

Describe the solution you'd like

Since kin target the Rwanda, it would be better if the documentation, including readme are in kinyarwanda. I believe this can make it easier for Rwandan to understand this programming language.

Describe alternatives you've considered

Documentation support multiple languages like Kiswahili or French

Additional context
N/A

[Error] : `KIN_AMAGAMBO.ingano()` method.

Describe the bug
issue when using the KIN_AMAGAMBO ingano method getting error (Error reading file: Cannot read properties of undefined (reading 'type'))

To Reproduce
Steps to reproduce the behavior:

  1. make file try.kin
  2. add codes tangaza_amakuru(KIN_AMAGAMBO.ingano("hello"))
  3. run kin run ./try.kin
  4. See error

Expected behavior
could get 5 as result

Screenshots
image

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.