Research Proposal: Expressive Power of Programming languages

Thesis Proposal:
Expressive power of programming languages: a comparative study

Compare different modern programming languages to discover genuine expressivity differences between them.

Programming languages can “in principle” perform any calculation that any well known universal Turing machine can perform, but are all programming languages “equivalent” in terms of what they can compute?

Goal: to examine a range of modern real-world programming languages in order to discover how much such languages differ from one another in their fundamental expressive powers (for higher-order datatypes).

Proposal content:
1- Abstract
2- Introduction
3- Background:
———–
Starting with Church-Turing computability theory.
3_1- Mathematical logic
Klenee 1959
Others..
general theory of computation notions
3_2- Programming languages
Programming languages
Expressive powers of programming languages: Matthias Felleisen (1990)
Scott 1975, and others… Noticed that parallel-or is not defined in PCF
Programming Computable Functions PCF

Link 1&2 together: how “computability” in the language considered relate (or not) to the current theoretically understood concepts of computability.
Note: the thesis will focus on 2.

—————————–
4-Approach:
4_1-Problem definition.
4_2-Methodology:
—————–
Features of modern programming languages, features contribute to essential differences in expressive powers between the languages.

4_2_1 Starting from languages specifications, if we can find some specification S (not just a syntax structure) for a program P such that: ∃ P_1 in langaue L_1 satisfies S
∄ P_2 in langaue L_2 satisfies S

4_2_2 – Computation model
Languages C and D to be considered equivalent for some programming task S by ‘simulating’ one language in another.
i.e there should be simulations g : C−>D and d : D−>C for this task S.
g,d should be ‘mutually inverse’

4_2_3- Suite of small programs in various languages that illustrate differences.

Some suggested programming languages: (based on popularity) Java, C, C++, Paython, JavaScript…

Some suggested programming tasks to be covered in the project: parallel or, Coroutines, Trampolining, Exceptions, Backtracking

-Talk about theses languages and tasks suggestion, why them?

——————————

5-Evaluation
Suggested evaluation criteria: to find 3-4 widely used programming languages and selection of task to show that none of 2 are equivalent. It can be Semi-formal evaluation.

———————
6-Output
7-Work plan: tasks and deliverable
8-References

Use the order calculator below and get started! Contact our live support team for any assistance or inquiry.

[order_calculator]