Hello,

we are delighted you found contributing to GCC interesting.

On Mon, Mar 03 2025, Gwen Fu via Gcc wrote:
> Dear GCC Community:
> I hope this email finds you well. My name is Gwen Fu(or Pengrui Fu), and I
> am interested in participating in Google Summer of Code 2025 with GCC. I am
> writing to discuss THIS PROJECT("Fortran – run-time argument checking")
> idea and seek your feedback before submitting my formal proposal.
>
> [My Background]
>    I am a  computer science sophomore at Harbin Engineering University,
> with experience in C/C++ programming, GDB debugging experience and
> Experience in programming under the Linux environment. I have manually
> implemented an HTTP server based on the Reactor pattern from scratch under
> Linux. Additionally, I participated in a domestic open-source competition
> in China and contributed to a project by developing a data conversion
> feature (JSON to Excel).
>   Howerver , I must admit that, due to my school curriculum, I have not yet
> studied compiler theory. However, with a light academic workload this
> semester and the wealth of online resources—such as numerous compiler
> principle videos—I am confident I can learn the necessary compiler
> fundamentals for this project within the next month.

Well, while C/C++ coding skills are very important and GDB experience is
also basically essential, most projects, including this one, do require
some rudimentary theoretical background in compilers.  This is a fairly
large and complex computer science area, learning it in a month is
likely to be quite a challenge.

At the very least, you need to learn about the concept of Intermediate
Representation (IR), often also called Intermediate Language (IL) as that is
what most project, including this one, work with and end up modifying.

All good introductory compiler books and courses do at some point explain the
concept but and googling "Intermediate Representation" seems to return some
good looking stuff.

Since I am not a Fortran front-end developer myself, I do not know at
what level of IR this particular project would be implemented, my guess
it is either GENERIC or GIMPLE (both somewhat described in our internals
manual bit they are perhaps better understood from the respective
compiler dumps).

>
> [My understanding ]
> The project requires developing an independent module. During development,
> attention should be paid to decoupling it from the rest of the repository's
> code while maintaining consistency with the original codebase's programming
> style.

I a not sure why you think that or even what you mean by this.  The
project description does mention modules, but those are Fortran modules,
not anything in the compiler implementation (the Fortran Front-end is
written in C++, not in Fortran).

Consistency with the GCC coding style is important, but that is always
so.

>
> [Questions or Request]
> -When studying compiler principles, which aspects should I focus on?

With the limited time, as I wrote above, IR and the specific IRs nedded
for the task.

> - Before beginning the project, I will need to review the repository’s
> source code. Could you please advise which sections are especially
> well-crafted and worth examining closely?

You need to focus on the bits that you want to modify because gcc is
just too big.  The Fortran front-end is in the gcc/fortran/
subdirectory.  I'm CCing the Fortrn development mailing list, people
there may be better able to point you to the bits where calls are
handled.

Good luck!

Martin

Reply via email to