CS374: Principles of Programming Languages

Bill Mongan

Welcome to CS374!

About Me

  • Born in Delaware County, PA
  • Married in Carmel, CA in 2015

About Me

  • Upper Darby High School Class of 2000
  • Drexel University Class of 2005
  • Completed my PhD at Drexel in 2018

Picture of Me

About Me

  • I am a private pilot who loves to travel

About Me

  • We love animals and have two cats
  • … plus some occasional visitors!

About Me

  • I use computing (specifically Machine Learning and Signal Processing)…
    • To improve public health
    • To leverage technology to mitigate side-effects and to improve access to care

What this Course is About

int main(void) {
    int y = 5;
    int y2 = y * y;
    printf("%d squared is %d.", y, y2);
}
  • What does this program do? How did you know what a “statement” is?

What this Course is About

(define square
  (lambda(n)
    (* n n)
  )
)
      
(square 5)
  • How about now?

What this Course is About

movl	$5, -4(%rbp)
movl	-4(%rbp), %eax
imull	%eax, %eax
movl	%eax, -8(%rbp)
movl	$0, %eax
  • What do you think this does?

What this Course is About

li	$2,5
sw	$2,0($fp)
lw	$2,0($fp)
mul	$2,$2,$2
sw	$2,4($fp)
  • How about this? What’s different about this version?

What this Course is About

00100000000010100000000000000101 # li t2 5
10101111110010100000000000000000 # sw
10001111110010100000000000000000 # lw
00000001010010100000000000011000 # mult
00000000000000000101000000010010 # mflo t2
10101111110010100000000000000100 # sw 4(fp)

What this Course is About

  • The evolution of programming languages from assembly language to intermediate languages to our favorite high level languages

  • The provenance of modern conveniences
    • Conditionals and Loops
  • Programming paradigms

  • Algorithms that read, translate, and execute code

Class Logistics and Culture

  • Class website and syllabus: http://www.billmongan.com/Ursinus-CS374
  • Challenging but fun!
  • Communicate with me and the TA’s often - we enjoy it.
  • If you know stuff, use it for good to help others!