Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support more (modern) programming languages #345

Closed
5 tasks done
tsaglam opened this issue Apr 4, 2022 · 6 comments
Closed
5 tasks done

Support more (modern) programming languages #345

tsaglam opened this issue Apr 4, 2022 · 6 comments
Assignees
Labels
enhancement Issue/PR that involves features, improvements and other changes language PR / Issue deals (partly) with new and/or existing languages for JPlag major Major issue/feature/contribution/change PISE-SS22 Tasks for the PISE practical course (SS22)
Milestone

Comments

@tsaglam
Copy link
Member

tsaglam commented Apr 4, 2022

We want to extend the capabilities of JPlag to support more modern languages.
Thus I propose:

For each frontend, a parser is required that parses the source code. Then, in an abstraction step, a subset of the tokens of the language AST need to be transformed into generic JPlag tokens. These tokens can be then passed as a token list to JPlag.

Steps to take:

  • Understand how language frontends work and how they are designed (look at the C# and Java frontends)
  • Incrementally, add new frontends (from forks or from scratch) and test them
  • New frontends should contain a readme that documents what tokens are extracted and why
  • Add documentation on how to create new frontends
  • (Optionally) modernize the Python frontend

Current state:

  • Rlang
  • Kotlin
  • Golang
  • Scala
  • Rust
@tsaglam tsaglam added enhancement Issue/PR that involves features, improvements and other changes major Major issue/feature/contribution/change language PR / Issue deals (partly) with new and/or existing languages for JPlag PISE-SS22 Tasks for the PISE practical course (SS22) labels Apr 4, 2022
@tsaglam tsaglam added this to the v4.0.0 milestone Apr 4, 2022
@ijaureguialzo
Copy link

Hello, maybe it's not considered a "modern" language, but I would love to see SQL and PL/SQL supported by JPlag.

Thanks for the awesome work.

@chr15t0ph
Copy link

I would love to see JavaScript supported by JPlag.

(I already use jplag for Java courses and would love to have it for JavaScript courses, too.)
Kind regards, Christoph

@tsaglam
Copy link
Member Author

tsaglam commented Apr 12, 2022

I cannot promise that we will find time to add the languages requested here. But in the future, there will be comprehensive documentation on how to add language frontends with relatively low effort.

@ijaureguialzo
Copy link

That would be nice. If there would be some kind of framework, I could spare some time and try to do it myself.

@tsaglam tsaglam pinned this issue May 6, 2022
This was referenced Jun 9, 2022
This was referenced Jul 11, 2022
@tsaglam tsaglam mentioned this issue Jul 27, 2022
@tsaglam tsaglam moved this to In Progress in v4.0.0 Release Aug 22, 2022
@tsaglam tsaglam moved this from In Progress to Done in v4.0.0 Release Sep 19, 2022
@tsaglam
Copy link
Member Author

tsaglam commented Sep 21, 2022

@ijaureguialzo @chr15t0ph we added documentation regarding adding new languages to our wiki:
https://github.com/jplag/JPlag/wiki/4.-Adding-New-Languages

@tsaglam
Copy link
Member Author

tsaglam commented Sep 21, 2022

Closed, as we now collect language requests in #685.

@tsaglam tsaglam closed this as completed Sep 21, 2022
@tsaglam tsaglam unpinned this issue Sep 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Issue/PR that involves features, improvements and other changes language PR / Issue deals (partly) with new and/or existing languages for JPlag major Major issue/feature/contribution/change PISE-SS22 Tasks for the PISE practical course (SS22)
Projects
No open projects
Status: Done
Development

No branches or pull requests

4 participants