<p><strong>tl;dr;</strong> I am being offered a graduate thesis about how to use data about a languages runtime/static analysis of dependencies etc. and feed it back into the development process. And my question is: Has there been any research done on this before? Is this concept called anything specific? Could a company like Jetbrains or similar have done some open-sourced research on this? Right now I am having a hard time finding any results using my current vocabulary.</p>
<p><strong>So</strong> I am being offered a graduate thesis, the thesis is that incorporating data surrounding a programming language can improve the development environment of that language.
I am assuming that I have access to all data and I just have to improve one development environment e.g. an editor and its related tools.
An easy example could be if I had access to the running time of each function in all production environments of people using this, then I could create an extension for the editor of the language that annotated the function with the avg. running time.
Another example could be if you know the dependency tree of all the packages(modules), the usage of all of these packages etc. then if the author changes a package he is notified about the implications i.e. how many packages are being broken and even wilder would be to say that the author is breaking these 5 packages but none of them are used by any code that has been running for over 2 years or similar so it's a risk worth taking.</p>
<p>Has there been any research done on this before? Is this concept called anything specific? Could a company like Jetbrains or similar have done some open-sourced research on this? Right now I am having a hard time finding any results using my current vocabulary.</p>

CC BY-SA 4.0
2022-07-01T08:13:56.067Z
The important question isn't whether such research has been done (it's a safe bet that it has), but whether your prospective advisor is an expert in the field who knows all the previous research. Even if the answers below list some research that you're asking about, that says almost nothing about whether you should take the PhD position.
Andrej Bauer
CC BY-SA 4.0
2022-07-01T08:29:38.413Z
Let me also say this: getting a PhD is a long-term project that requires strong internal motivation and deep personal interest in the topic. That's the first condition. The second condition is having a good relationship with your PhD advisor. All else is a technicality, except for having the academic ability to pull it off (altough I hesitate to mention that, as many people are poor judged of their own academic abilities). The direction and topic of research can be adjusted, the timelines modified, additional money searched for, etc.
Andrej Bauer
CC BY-SA 4.0
2022-07-01T11:25:11.507Z
@AndrejBauer it is not a PhD position, it is the thesis for my graduate degree. I mostly did graduate courses in theoretical algorithms, so I am a little out of touch with the programming language design jargon required to find any research on this topic.
DenLilleMand
CC BY-SA 4.0
2022-07-02T08:14:14.880Z
Ah, depending on the country "graduate" may mean "Ph.D." Well, if you're an undergrad then it does not matter too much, as no original research is required (but is desired). It sounds like a good topic.
Andrej Bauer
CC BY-SA 4.0
2022-07-02T10:35:05.147Z
@AndrejBauer Yeah okay. In my country we have, Bachelor degree (Undergrad), Graduate degree (Graduate)  (This is where I am) and PhD degree (Phd student)
DenLilleMand
CC BY-SA 4.0
2022-07-02T13:48:30.370Z
Given that you mention run-time of functions (somthing that  is very hard to collect in general), could the research you have in mind fall under [profile-guided optimisation](https://en.wikipedia.org/wiki/Profile-guided_optimization)?
Martin Berger
CC BY-SA 4.0
2022-07-03T01:01:16.387Z
@MartinBerger I think I found out what it is I am looking for, I found a PhD thesis 'Data Driven Software Engineering' which describes some of the same types of features I am asked to do. Usually Data Driven could be like the recommender system some streaming service(Netflix, Hbo etc.) would use, but in my case instead of using data from the users choices I use data mined from the software project e.g. module dependencies. Then based on that data I can recommend something to the software dev like 'you can remove this method' etc. Not 100% sure if Profile-guided optimization could be related.
DenLilleMand
<pl.programming-languages><data-mining>
Has there already been research done on how data(e.g. runtime) can improve the development environment of a language?
DenLilleMand
# Has there already been research done on how data(e.g. runtime) can improve the development environment of a language?

(Asked by: username_0 on 2022-06-30)

**tl;dr;** I am being offered a graduate thesis about how to use data about a languages runtime/static analysis of dependencies etc. and feed it back into the development process. And my question is: Has there been any research done on this before? Is this concept called anything specific? Could a company like Jetbrains or similar have done some open-sourced research on this? Right now I am having a hard time finding any results using my current vocabulary.

**So** I am being offered a graduate thesis, the thesis is that incorporating data surrounding a programming language can improve the development environment of that language.
I am assuming that I have access to all data and I just have to improve one development environment e.g. an editor and its related tools.
An easy example could be if I had access to the running time of each function in all production environments of people using this, then I could create an extension for the editor of the language that annotated the function with the avg. running time.
Another example could be if you know the dependency tree of all the packages(modules), the usage of all of these packages etc. then if the author changes a package he is notified about the implications i.e. how many packages are being broken and even wilder would be to say that the author is breaking these 5 packages but none of them are used by any code that has been running for over 2 years or similar so it's a risk worth taking.

Has there been any research done on this before? Is this concept called anything specific? Could a company like Jetbrains or similar have done some open-sourced research on this? Right now I am having a hard time finding any results using my current vocabulary.

**Tags:** pl.programming-languages, data-mining
> **Comments:**
> **username_1**: The important question isn't whether such research has been done (it's a safe bet that it has), but whether your prospective advisor is an expert in the field who knows all the previous research. Even if the answers below list some research that you're asking about, that says almost nothing about whether you should take the PhD position.  
> **username_1**: Let me also say this: getting a PhD is a long-term project that requires strong internal motivation and deep personal interest in the topic. That's the first condition. The second condition is having a good relationship with your PhD advisor. All else is a technicality, except for having the academic ability to pull it off (altough I hesitate to mention that, as many people are poor judged of their own academic abilities). The direction and topic of research can be adjusted, the timelines modified, additional money searched for, etc.  
> **username_0**: @AndrejBauer it is not a PhD position, it is the thesis for my graduate degree. I mostly did graduate courses in theoretical algorithms, so I am a little out of touch with the programming language design jargon required to find any research on this topic.  
> **username_1**: Ah, depending on the country "graduate" may mean "Ph.D." Well, if you're an undergrad then it does not matter too much, as no original research is required (but is desired). It sounds like a good topic.  
> **username_0**: @AndrejBauer Yeah okay. In my country we have, Bachelor degree (Undergrad), Graduate degree (Graduate)  (This is where I am) and PhD degree (Phd student)  
> **username_2**: Given that you mention run-time of functions (somthing that  is very hard to collect in general), could the research you have in mind fall under [profile-guided optimisation](https://en.wikipedia.org/wiki/Profile-guided_optimization)?  
> **username_0**: @MartinBerger I think I found out what it is I am looking for, I found a PhD thesis 'Data Driven Software Engineering' which describes some of the same types of features I am asked to do. Usually Data Driven could be like the recommender system some streaming service(Netflix, Hbo etc.) would use, but in my case instead of using data from the users choices I use data mined from the software project e.g. module dependencies. Then based on that data I can recommend something to the software dev like 'you can remove this method' etc. Not 100% sure if Profile-guided optimization could be related.  

---

## 0 answers

