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

auxiliary functions #8

Open
laurayuwen opened this issue Oct 8, 2014 · 0 comments
Open

auxiliary functions #8

laurayuwen opened this issue Oct 8, 2014 · 0 comments

Comments

@laurayuwen
Copy link
Member

Just some thoughts, since Denis mentioned that arrays used a lot of auxiliary functions.

I noticed this issue for some time, auxiliary functions are actually written and designed in abstract syntax, technically, they should also be working on concrete syntax. But there are issues that are not nice:

  1. Unlike the klabel attribute mapping between concrete and abstract syntax, after some one direction rules are executed, (like we do with KListWrap), the paramenters presented in auxiliary functions are no longer valid (it doesn't recognize the new syntax). Sometimes this even affect the implementation of that auxiliary function.
  2. Even after I made changes and got them work as before, they don't look nice. It is not any easier to read auxiliary functions with concrete form parameters than abstract form parameters, if not the other round. It is natural, because as I said before, these functions were born considering the abstract form, and instead of the labeled parameters, I plugged in pieces of java code: little pieces of a normal java sentence, which could be even less recognizable than labels.

It's a dilemma here. If I don't think deep, just trying to plug concrete syntax into aux functions and then debug, the semantics could end up ugly (in many places) even after this substantial change of syntax. However, I don't think it is wise for me to greatly change aux functions. Even now, simply plugging already involves many changes, because of the first reason I mentioned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant