0%

Fall 2019 instance of "Foundations of Programming Languages"

In the fall semester of 2019, I had the opportunity to work as a teaching assistant for the course 15-312/15-652 Foundations of Programming Languages, taught by Bob Harper. Today we wrapped up (almost) all of the work. As I have always said, the best way to build clear insight into a subject is perhaps by teaching and explaining it to the others. On the other hand, it was quite a unique experience. In addition to the usual grading and recitation, I invented a few homework problems (the DFA problem in HW2 and the entire KPCF problems) and wrote a few exam questions. There are a few things that went pretty well, and honestly some things just don’t quite go well as we would hope for. For the purpose of this post, I don’t want to (and honestly can’t) go into too much details, but focus on mainly 3 things: the philosophy behind this course, one unfortunate situation, and what it feels like working with Bob.

This is the first part of a two-part post, where I mainly talk about the philosophy of this course, as I understand it. In other words, I seek to answer the question of why study programming languages with my own experience.

Read more »

Introduction

During the summer of 2019, I took an internship at NVidia’s Austin campus working with one of their CUDA compiler teams. Two teams of engineers there work on compiler related projects: the compiler verification team and the compiler development team. The compiler verification team ensures the correctness and consistent behavior of the CUDA compiler toolchain for a large number of applications on all platforms. The development team is in charge of the in-driver CUDA assembler, publicly known as ptxas. I worked under the supervision of Brian Deitrich, and mentored by Rishkul Kulkarni.

Read more »

#KyoAniStrong from Twitter

京都动画第一动画工房于2019年7月18日遭遇纵火恐怖袭击。目前已知有33人遇难,36人不同程度受伤,十多人下落不明。据传大量原稿丢失。京都动画公司体量并不大,目前遇难者接近公司总员工数五分之一,伤难者接近三分之一。此次袭击的严重程度为日本二战以后最为恶劣。

作为动画的观众,虽然我并不是京蜜,说实在对于几位监督并不是十分熟悉,但仍然感到极为心痛。说实在今天在公司一天都没有什么效率,一直在刷Twitter。看到了很多人分享京都动画的作品给他们的生活带来的正面的影响,说实在十分感动。我在这里也希望分享一下我的感受。

Read more »

  • 如果只是想到BAT打工当程序员,是不是一定要是CS科班出身?
  • CS科班出身的程序员是不是理所应当的高人一等?
  • 学校里教的技术很老旧,是不是还不如翘课自学新技术?
  • 培训班和某些大V网课是不是能学到”真本事“?

这样的问题在各大网上平台中被反复地讨论,但时常这样的讨论都以双方发生大量争执而不欢而散。应该强调本文的目的不是对于以上问题给出是或者否的答案。事实上,我对于以上(和其他没有列举的问题)的看法相当复杂。但我仍然认为有必要对这些问题提出一些看法,并且这样的讨论是有意义的。

Read more »

Sigbovik (Special Interest Group on Harry Q. Bovik) is an annual Quasi-conference held on April 1st at CMU for mostly computer science students to have “geek fun”. Papers submitted usually includes silly ideas with (often) serious execution. This year, I and @codeworm96 submitted a paper titled Precise ECG platform on Modern Processors. We won the Most Likely to Void a Warranty award from the program comittee.

Read more »

Recently I’ve been taking VE475 cryptography. This is final CS course I will take here in JI. Frankly, the course is mind challenging, yet informative. It’s time well-spent in short. So there is this challenge, a bonus project, which asks student to write their own ciphers and attack against each other. Attacks are conducted through a web server. Basically you can access a website that allows you preform cryptographic attacks. Now I’ve able to discover a seriers of the security issues that eventually allows me to take full control of the server.

Read more »

This post contains solutions to specific problem used in CMU 15513. If you are taking the course, please do not read further.

In this post, I will introduce you to a bug of the program. At first I thought this is a hardware bug. Then I suspect this is a compiler bug. Yet it turns out, the real issue is undefined behavior in my program. We will see how compiler makes “wrong” optimizations, when undefined behavior is involved.

Read more »