Someone's Intermediate Representation

0%

# Dynamics Keywords

Dynamics of a language describes how programs are executed.

• Structural Dynamics: Defines transition system inductively specifies step-by-step process of executing a program.
• Contextual Dynamics: A variation of structural dynamics.
• Equational Dynamics: A collection of rules defining when one program is definitionally equivalent to another.

# PL Phase Distinction

There are 2 phases defined in PLs:

• Static
• Parsing and Type Checking to ensure the program is well-formed.
• Dynamic
• Well-Behaved Execution of well-formed programs.

A language is said to be safe when well-formed and well-behaved execution are both achieved.

Static phase is specified by a statics comprising a set of rules for deriving type judgments stating that an expression is well-formed of a certain type.

Type safety tells us that the predictions about “some aspects of run-time safety by seeing that the types fit well in the program” is correct.

This note will use PFPL expression language E as example.

# Keywords

• Hypothetical Judgments: an entailment between one or more hypotheses and a conclusion.
• Entailment has 2 notions:
• derivability
• General Judgment: the universality or genericity of a judgment.
• General Judgment has 2 forms:
• generic
• parametric

# Framework of Inductive Definitions

This chapter is the development of basic framework of inductive definitions.

An inductive definition consists of a set of rules for deriving judgments.

Judgments are statements about one or more abt’s of some sort.

The rules specify necessary and sufficient conditions for the validity of a judgment, hence fully determine its meaning.

This problem is all about BFS, but it really points out some of my weak points.

I almost cried in the library since this problem had bothered me for such a long time, I tried so hard, and I succeeded after all! Cheers!

Here is a very beautiful solution using dynamic programming with $O(n)$ time complexity.

Personally, I think dynamic programming is very important for a coder. This is not a specific skill but a kind of idea or method of thinking. This helps you get a global optimal result step by step from the easiest condition to the current condition, which is the task we need to solve.

Since I don’t have much experience in coding and I just do it for fun, I hope my code can bring you some happiness and understnading here…

This is just USACO 1.1, easy. But the problem afterwards are hard…

Actually, I unfortunately failed in round1. But I find algorithm hacker cup interesting. I wrote some codes as the solutions for this round. Hope you enjoy it.