69
Programming Languages

Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

Programming Languages

Page 2: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 3: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

machine code

Page 4: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

01111111 01000101 01001100 01000110 00000010 00000001 00000001 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000001 00000000 00111110 00000000 00000001 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000101000 00000010 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 01000000 00000000 00000000 0000000000000000 00000000 01000000 00000000 00001010 00000000 00000001 0000000001010101 01001000 10001001 11100101 01001000 10000011 11101100 0001000001001000 10111111 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 10110000 00000000 11101000 00000000 00000000 0000000000000000 00110001 11001001 10001001 01000101 11111100 10001001 1100100001001000 10000011 11000100 00010000 01011101 11000011 01101000 0110010101101100 01101100 01101111 00101100 00100000 01110111 01101111 0111001001101100 01100100 00001010 00000000 00000000 01100011 01101100 0110000101101110 01100111 00100000 01110110 01100101 01110010 01110011 01101001...

Page 5: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

source code

Page 6: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

...main: # @main .cfi_startproc# %bb.0: pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset %rbp, -16 movq %rsp, %rbp .cfi_def_cfa_register %rbp subq $16, %rsp movabsq $.L.str, %rdi movb $0, %al callq printf xorl %ecx, %ecx movl %eax, -4(%rbp) # 4-byte Spill movl %ecx, %eax addq $16, %rsp popq %rbp retq.Lfunc_end0: .size main, .Lfunc_end0-main .cfi_endproc # -- End function .type .L.str,@object # @.str .section .rodata.str1.1,"aMS",@progbits,1.L.str: .asciz "hello, world\n" .size .L.str, 14...

Page 7: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

#include <stdio.h>

int main(void){ printf("hello, world\n");}

Page 8: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

compiler

Page 9: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

interpreter

Page 10: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

print("hello, world")

Page 11: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

bytecode

Page 12: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

2 0 LOAD_GLOBAL 0 (print) 3 LOAD_CONST 1 ('hello, world') 6 CALL_FUNCTION 1 (1 positional, 0 keyword pair) 9 POP_TOP 10 LOAD_CONST 0 (None) 13 RETURN_VALUE

Page 13: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

class Hello{ public static void main(String [] args) { System.out.println("hello, world"); }}

Page 14: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

virtual machine

Page 15: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

class Hello { Hello(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return

public static void main(java.lang.String[]); Code: 0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #3 // String hello, world 5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return}

Page 16: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

console.log("hello, world")

Page 17: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

put "hello, world"

Page 18: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

#include <iostream>

int main(){ std::cout << "hello, world" << std::endl;}

Page 19: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

helloworldcollection.de

Page 20: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

● Bash● C● C++● C#● Clojure● Erlang● F#● Go● Haskell● Java● JavaScript● Objective-C● OCaml

● PHP● Python● R● Ruby● Scala● Scheme● SQL● Swift● ...

Page 21: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

wikipedia.org/wiki/List_of_programming_languages

Page 22: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 23: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 24: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 25: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 26: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 27: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 28: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

bool

float

int

str

...

Page 29: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

dict

list

range

set

tuple

...

Page 30: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 31: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

floating-point imprecision

Page 32: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

integer overflow

Page 33: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 3

Page 34: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 4

Page 35: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 5

Page 36: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 6

Page 37: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 7

Page 38: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 8

Page 39: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 9

Page 40: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 10

Page 41: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 9

Page 42: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 2 01

Page 43: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 3 0

Page 44: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

9 9 9

Page 45: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

9 9 01

Page 46: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

9 0 01

Page 47: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

0 0 01

Page 48: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

0 0 01

Page 49: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

0 0 0

Page 50: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 1 1

Page 51: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 1 01

Page 52: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1 0 01

Page 53: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

0 0 01

Page 54: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

0 0 01

Page 55: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

0 0 0

Page 56: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

integer overflow

Page 57: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 58: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 59: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1999

Page 60: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1999

Page 61: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

1900

Page 62: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 63: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 64: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 65: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 66: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 67: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 68: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001
Page 69: Programming Languages - CS50 › law › 2019 › winter › lectures › 1 › lecture1.pdf · Programming Languages. machine code. 01111111 01000101 01001100 01000110 00000010 00000001

Programming Languages