WEBVTT

1
00:00:02.590 --> 00:00:03.220
<00:00:02.590>Thank <00:00:02.873>you <00:00:03.157>much.

2
00:00:04.095 --> 00:00:07.835
<00:00:04.094>So <00:00:04.250>then, <00:00:04.406>um, <00:00:04.561>hello <00:00:04.717>everyone. <00:00:04.872>My <00:00:05.028>name <00:00:05.183>is <00:00:05.339>Andrea <00:00:05.494>Tic.

3
00:00:08.235 --> 00:00:11.675
<00:00:08.235>I <00:00:08.375>work <00:00:08.514>as <00:00:08.655>a <00:00:08.795>trainer <00:00:08.934>and <00:00:09.075>consultant <00:00:09.215>for <00:00:09.354>c <00:00:09.495>plus <00:00:09.635>plus,

4
00:00:12.695 --> 00:00:16.475
<00:00:12.695>and <00:00:12.870>obviously <00:00:13.045>I <00:00:13.220>also, <00:00:13.395>um, <00:00:13.570>speak <00:00:13.745>occasionally <00:00:13.920>at <00:00:14.095>conferences.

5
00:00:16.935 --> 00:00:19.995
<00:00:16.935>I'm <00:00:17.168>using <00:00:17.401>c <00:00:17.634>plus <00:00:17.868>plus <00:00:18.101>for, <00:00:18.334>well,

6
00:00:20.515 --> 00:00:22.835
<00:00:20.515>a <00:00:20.690>time <00:00:20.865>longer <00:00:21.040>than <00:00:21.215>I <00:00:21.390>like <00:00:21.565>to <00:00:21.740>admit, <00:00:21.915>um,

7
00:00:23.515 --> 00:00:25.235
<00:00:23.515>probably <00:00:23.715>half <00:00:23.915>my <00:00:24.115>life <00:00:24.315>or <00:00:24.515>a <00:00:24.715>bit <00:00:24.915>more.

8
00:00:25.895 --> 00:00:27.555
<00:00:25.895>Um, <00:00:26.128>so <00:00:26.361>I've, <00:00:26.595>I've <00:00:26.828>seen <00:00:27.061>a <00:00:27.294>lot

9
00:00:27.615 --> 00:00:29.915
<00:00:27.615>and <00:00:27.848>I've <00:00:28.081>seen <00:00:28.314>changing <00:00:28.548>it <00:00:28.781>with, <00:00:29.014>um,

10
00:00:30.095 --> 00:00:31.475
<00:00:30.095>the <00:00:30.509>most <00:00:30.923>recent <00:00:31.337>standards.

11
00:00:32.275 --> 00:00:35.995
<00:00:32.275>I <00:00:32.391>am <00:00:32.508>also <00:00:32.625>the <00:00:32.741>author <00:00:32.858>of <00:00:32.975>a <00:00:33.091>tool <00:00:33.208>called <00:00:33.324>c <00:00:33.441>plus <00:00:33.558>plus <00:00:33.675>Insights,

12
00:00:36.005 --> 00:00:39.755
<00:00:36.005>which <00:00:36.132>allows <00:00:36.259>you <00:00:36.386>to <00:00:36.514>peek <00:00:36.641>a <00:00:36.768>little <00:00:36.895>bit <00:00:37.023>behind <00:00:37.150>the <00:00:37.277>scenes, <00:00:37.405>um,

13
00:00:39.855 --> 00:00:43.635
<00:00:39.855>of <00:00:40.029>what's <00:00:40.205>going <00:00:40.379>on, <00:00:40.555>um, <00:00:40.730>in <00:00:40.904>c <00:00:41.080>plus <00:00:41.254>plus.

14
00:00:44.695 --> 00:00:47.155
<00:00:44.695>But, <00:00:44.928>um, <00:00:45.161>today <00:00:45.395>we <00:00:45.628>are <00:00:45.861>not <00:00:46.095>going

15
00:00:47.175 --> 00:00:51.035
<00:00:47.175>to <00:00:47.291>focus <00:00:47.408>too <00:00:47.525>much <00:00:47.641>on <00:00:47.758>what's <00:00:47.875>going <00:00:47.991>on, <00:00:48.108>so <00:00:48.224>we <00:00:48.341>are <00:00:48.458>focusing <00:00:48.574>on,

16
00:00:51.135 --> 00:00:55.475
<00:00:51.135>uh, <00:00:51.251>the <00:00:51.368>pings <00:00:51.485>of <00:00:51.601>c <00:00:51.718>plus <00:00:51.835>plus, <00:00:51.951>um, <00:00:52.068>just <00:00:52.184>the <00:00:52.301>topic <00:00:52.418>of <00:00:52.535>today.

17
00:00:56.135 --> 00:01:00.715
<00:00:56.135>Now, <00:00:56.290>before <00:00:56.446>we, <00:00:56.601>we <00:00:56.757>dive <00:00:56.912>in <00:00:57.068>into <00:00:57.223>this <00:00:57.379>programming <00:00:57.535>language,

18
00:01:01.365 --> 00:01:06.025
<00:01:01.365>let's, <00:01:01.520>um, <00:01:01.676>for <00:01:01.831>a <00:01:01.987>moment <00:01:02.142>stay <00:01:02.298>with, <00:01:02.453>uh, <00:01:02.609>spoken <00:01:02.765>language,

19
00:01:06.365 --> 00:01:08.985
<00:01:06.365>um, <00:01:06.598>this <00:01:06.831>German, <00:01:07.065>my <00:01:07.298>last <00:01:07.531>name <00:01:07.765>is,

20
00:01:10.285 --> 00:01:13.505
<00:01:10.285>and, <00:01:10.440>um, <00:01:10.596>you <00:01:10.751>can <00:01:10.907>translate <00:01:11.062>it <00:01:11.218>into <00:01:11.373>English <00:01:11.529>as <00:01:11.685>finished,

21
00:01:13.795 --> 00:01:15.945
<00:01:13.795>ready, <00:01:14.261>complete, <00:01:14.728>or <00:01:15.195>completed.

22
00:01:16.685 --> 00:01:20.785
<00:01:16.685>Uh, <00:01:16.825>it <00:01:16.965>brings <00:01:17.105>an <00:01:17.245>awful <00:01:17.385>lot <00:01:17.525>of <00:01:17.665>good <00:01:17.805>jokes <00:01:17.945>with <00:01:18.085>it.

23
00:01:20.885 --> 00:01:24.225
<00:01:20.885>Um, <00:01:21.060>some <00:01:21.235>people <00:01:21.410>get <00:01:21.585>it, <00:01:21.760>some <00:01:21.935>people <00:01:22.110>sometimes <00:01:22.285>don't.

24
00:01:24.245 --> 00:01:26.945
<00:01:24.245>Um, <00:01:24.400>I <00:01:24.556>like <00:01:24.711>to, <00:01:24.867>um, <00:01:25.022>joke <00:01:25.178>around <00:01:25.333>a <00:01:25.489>little <00:01:25.645>bit

25
00:01:26.945 --> 00:01:28.305
<00:01:26.945>with <00:01:27.250>my <00:01:27.557>own <00:01:27.863>last <00:01:28.169>name

26
00:01:30.465 --> 00:01:32.165
<00:01:30.465>and, <00:01:30.815>um, <00:01:31.165>you, <00:01:31.515>you <00:01:31.865>can,

27
00:01:32.275 --> 00:01:35.925
<00:01:32.275>because <00:01:32.430>it's, <00:01:32.586>um, <00:01:32.741>well, <00:01:32.897>it's <00:01:33.052>often <00:01:33.208>used, <00:01:33.363>the <00:01:33.519>adjective <00:01:33.675>in,

28
00:01:35.925 --> 00:01:39.605
<00:01:35.925>in <00:01:36.080>German, <00:01:36.236>you, <00:01:36.391>you <00:01:36.547>find <00:01:36.702>it <00:01:36.858>quite <00:01:37.013>often <00:01:37.169>in <00:01:37.325>use.

29
00:01:40.145 --> 00:01:42.485
<00:01:40.145>So, <00:01:40.378>um, <00:01:40.611>it's <00:01:40.845>easy <00:01:41.078>to <00:01:41.311>make <00:01:41.545>jokes,

30
00:01:42.865 --> 00:01:45.965
<00:01:42.865>but <00:01:43.040>it's <00:01:43.215>also, <00:01:43.390>um, <00:01:43.565>often <00:01:43.740>a, <00:01:43.915>a <00:01:44.090>door <00:01:44.265>opener

31
00:01:45.965 --> 00:01:50.585
<00:01:45.965>because <00:01:46.105>I <00:01:46.245>learned <00:01:46.385>that <00:01:46.525>really <00:01:46.665>a <00:01:46.805>lot <00:01:46.945>of <00:01:47.085>people <00:01:47.225>speak <00:01:47.365>German

32
00:01:50.685 --> 00:01:52.585
<00:01:50.685>by, <00:01:50.965>by <00:01:51.245>recognizing <00:01:51.525>my <00:01:51.805>last <00:01:52.085>name.

33
00:01:53.895 --> 00:01:55.075
<00:01:53.895>So <00:01:54.160>this, <00:01:54.426>this <00:01:54.691>is <00:01:54.957>great.

34
00:01:55.455 --> 00:01:58.515
<00:01:55.455>Um, <00:01:55.595>some <00:01:55.735>people <00:01:55.875>think, <00:01:56.015>um, <00:01:56.155>if <00:01:56.295>I'm <00:01:56.435>on <00:01:56.575>the <00:01:56.715>project, <00:01:56.855>um,

35
00:01:58.615 --> 00:02:01.955
<00:01:58.615>it <00:01:58.848>immediately <00:01:59.081>is <00:01:59.315>fer <00:01:59.548>finished, <00:01:59.781>which, <00:02:00.015>um,

36
00:02:02.535 --> 00:02:03.995
<00:02:02.535>is <00:02:02.797>only <00:02:03.060>true <00:02:03.323>if <00:02:03.586>if <00:02:03.849>we,

37
00:02:04.255 --> 00:02:06.235
<00:02:04.255>if <00:02:04.429>you <00:02:04.604>book <00:02:04.780>me <00:02:04.955>at <00:02:05.130>the <00:02:05.304>very <00:02:05.479>last <00:02:05.655>second.

38
00:02:06.775 --> 00:02:09.635
<00:02:06.775>But, <00:02:06.930>um, <00:02:07.086>then <00:02:07.241>it's <00:02:07.397>still <00:02:07.552>not <00:02:07.708>my <00:02:07.863>contribution, <00:02:08.019>so, <00:02:08.175>um,

39
00:02:09.885 --> 00:02:11.645
<00:02:09.884>don't, <00:02:10.351>don't <00:02:10.818>believe <00:02:11.285>that.

40
00:02:13.435 --> 00:02:17.925
<00:02:13.435>There's <00:02:13.590>another <00:02:13.746>thing <00:02:13.901>you, <00:02:14.057>you <00:02:14.212>probably <00:02:14.368>should <00:02:14.523>know <00:02:14.679>about <00:02:14.835>me

41
00:02:17.945 --> 00:02:20.725
<00:02:17.945>and <00:02:18.144>my <00:02:18.345>last <00:02:18.545>name, <00:02:18.745>especially <00:02:18.945>that <00:02:19.144>I'm <00:02:19.345>about

42
00:02:20.725 --> 00:02:23.165
<00:02:20.725>to <00:02:20.900>give <00:02:21.075>a <00:02:21.250>talk <00:02:21.424>about <00:02:21.600>the <00:02:21.775>programming <00:02:21.950>language <00:02:22.125>now.

43
00:02:23.745 --> 00:02:26.565
<00:02:23.745>Um, <00:02:24.211>my <00:02:24.678>last <00:02:25.145>name,

44
00:02:27.985 --> 00:02:30.845
<00:02:27.985>it <00:02:28.140>took <00:02:28.296>me <00:02:28.451>almost <00:02:28.607>30 <00:02:28.762>years <00:02:28.918>a <00:02:29.073>little <00:02:29.229>bit <00:02:29.385>more,

45
00:02:30.945 --> 00:02:35.445
<00:02:30.945>but <00:02:31.120>a <00:02:31.295>few, <00:02:31.470>well <00:02:31.644>discount, <00:02:31.820>um, <00:02:31.995>maybe <00:02:32.170>years <00:02:32.345>10.

46
00:02:35.595 --> 00:02:39.005
<00:02:35.595>It's <00:02:35.828>roughly <00:02:36.061>30 <00:02:36.295>years <00:02:36.528>until <00:02:36.761>I <00:02:36.995>learned

47
00:02:39.115 --> 00:02:42.525
<00:02:39.115>that <00:02:39.315>I <00:02:39.515>mispronounce <00:02:39.715>my <00:02:39.915>own <00:02:40.115>last <00:02:40.315>name, <00:02:40.515>okay?

48
00:02:42.825 --> 00:02:47.245
<00:02:42.825>And <00:02:42.941>I <00:02:43.058>still <00:02:43.174>do <00:02:43.291>as <00:02:43.408>of <00:02:43.524>today <00:02:43.641>because <00:02:43.758>I <00:02:43.875>say <00:02:43.991>fer, <00:02:44.108>where <00:02:44.225>more

49
00:02:47.245 --> 00:02:48.405
<00:02:47.245>or <00:02:47.394>less <00:02:47.543>a <00:02:47.692>hard <00:02:47.841>K <00:02:47.990>at <00:02:48.139>the <00:02:48.289>end,

50
00:02:48.945 --> 00:02:53.205
<00:02:48.945>but <00:02:49.120>in <00:02:49.295>proper <00:02:49.470>German, <00:02:49.644>it's <00:02:49.820>ish <00:02:49.995>at <00:02:50.170>the <00:02:50.345>end,

51
00:02:53.825 --> 00:02:57.265
<00:02:53.825>it <00:02:54.024>turns <00:02:54.225>out <00:02:54.424>that, <00:02:54.625>um, <00:02:54.825>my <00:02:55.024>own <00:02:55.225>girlfriend

52
00:02:57.835 --> 00:03:01.645
<00:02:57.835>pronounces <00:02:58.010>my <00:02:58.185>own <00:02:58.360>last <00:02:58.535>name <00:02:58.710>better <00:02:58.885>than <00:02:59.060>I <00:02:59.235>do.

53
00:03:02.225 --> 00:03:06.005
<00:03:02.225>So <00:03:02.424>what <00:03:02.625>shall <00:03:02.825>I <00:03:03.025>say <00:03:03.225>that's <00:03:03.424>probably <00:03:03.625>worse?

54
00:03:06.005 --> 00:03:08.085
<00:03:06.005>Knowing <00:03:06.471>about <00:03:06.938>the <00:03:07.405>guy

55
00:03:08.085 --> 00:03:10.605
<00:03:08.085>who <00:03:08.285>now <00:03:08.485>talks <00:03:08.685>about <00:03:08.885>the <00:03:09.085>programming <00:03:09.285>language <00:03:09.485>he

56
00:03:10.605 --> 00:03:11.685
<00:03:10.605>was <00:03:10.929>not <00:03:11.253>raised <00:03:11.577>with.

57
00:03:12.065 --> 00:03:16.725
<00:03:12.065>So, <00:03:12.192>um, <00:03:12.319>the, <00:03:12.446>the <00:03:12.574>1 <00:03:12.701>0 <00:03:12.828>1 <00:03:12.955>things <00:03:13.083>of <00:03:13.210>c <00:03:13.337>plus <00:03:13.465>plus

58
00:03:16.945 --> 00:03:21.685
<00:03:16.945>or <00:03:17.072>the <00:03:17.199>101 <00:03:17.326>things, <00:03:17.454>or <00:03:17.581>as <00:03:17.708>you <00:03:17.835>may <00:03:17.963>have <00:03:18.090>done <00:03:18.217>the <00:03:18.345>math

59
00:03:21.705 --> 00:03:26.325
<00:03:21.704>and <00:03:21.844>realize <00:03:21.984>that <00:03:22.124>101 <00:03:22.265>things <00:03:22.404>are <00:03:22.545>a <00:03:22.684>little <00:03:22.825>bit, <00:03:22.964>um, <00:03:23.105>much

60
00:03:26.465 --> 00:03:27.645
<00:03:26.465>for <00:03:26.996>45 <00:03:27.527>minutes.

61
00:03:28.425 --> 00:03:32.485
<00:03:28.425>So <00:03:28.552>the <00:03:28.679>1 <00:03:28.806>0 <00:03:28.934>1, <00:03:29.061>maybe <00:03:29.188>that's, <00:03:29.315>um, <00:03:29.443>what <00:03:29.570>we <00:03:29.697>are <00:03:29.825>doing.

62
00:03:33.025 --> 00:03:36.885
<00:03:33.025>But <00:03:33.165>essentially <00:03:33.305>we <00:03:33.445>will <00:03:33.585>talk <00:03:33.725>about <00:03:33.865>five <00:03:34.005>things <00:03:34.145>about <00:03:34.285>c <00:03:34.425>plus

63
00:03:36.885 --> 00:03:39.445
<00:03:36.885>plus, <00:03:37.118>which <00:03:37.351>make, <00:03:37.584>uh, <00:03:37.818>this <00:03:38.051>language <00:03:38.285>great.

64
00:03:39.625 --> 00:03:42.245
<00:03:39.625>So <00:03:39.765>it's <00:03:39.905>binary <00:03:40.045>1 <00:03:40.185>0 <00:03:40.325>1. <00:03:40.465>Sorry <00:03:40.605>if <00:03:40.745>I <00:03:40.885>tricked <00:03:41.025>you.

65
00:03:42.705 --> 00:03:46.725
<00:03:42.704>Um, <00:03:42.860>45 <00:03:43.016>minutes <00:03:43.171>are <00:03:43.327>not <00:03:43.482>enough <00:03:43.638>to <00:03:43.793>justify <00:03:43.949>any <00:03:44.105>language,

66
00:03:46.925 --> 00:03:49.605
<00:03:46.925>I <00:03:47.065>think, <00:03:47.205>and, <00:03:47.345>um, <00:03:47.485>for <00:03:47.625>sure <00:03:47.765>not <00:03:47.905>one <00:03:48.045>on <00:03:48.185>one <00:03:48.325>things.

67
00:03:50.105 --> 00:03:54.365
<00:03:50.105>So <00:03:50.260>let's, <00:03:50.416>um, <00:03:50.571>let's <00:03:50.727>see <00:03:50.882>what <00:03:51.038>the <00:03:51.193>five <00:03:51.349>things <00:03:51.505>are.

68
00:03:54.745 --> 00:03:57.205
<00:03:54.745>But <00:03:55.025>before <00:03:55.305>that, <00:03:55.585>a <00:03:55.865>little <00:03:56.145>bit

69
00:03:57.205 --> 00:03:59.565
<00:03:57.204>of <00:03:57.438>history <00:03:57.671>about <00:03:57.904>c <00:03:58.138>plus <00:03:58.371>plus <00:03:58.605>itself.

70
00:04:00.385 --> 00:04:03.005
<00:04:00.385>It <00:04:00.734>was <00:04:01.084>developed <00:04:01.435>in <00:04:01.785>1979

71
00:04:03.705 --> 00:04:05.645
<00:04:03.705>by <00:04:03.985>pianist <00:04:04.265>TRO <00:04:04.545>at <00:04:04.825>Bell <00:04:05.105>Labs.

72
00:04:06.265 --> 00:04:08.645
<00:04:06.265>Uh, <00:04:06.498>at <00:04:06.731>the <00:04:06.964>time, <00:04:07.198>his <00:04:07.431>attention <00:04:07.665>was

73
00:04:08.665 --> 00:04:12.325
<00:04:08.665>to <00:04:08.840>create <00:04:09.015>a <00:04:09.190>flexible <00:04:09.364>language, <00:04:09.540>which <00:04:09.715>was <00:04:09.890>like <00:04:10.065>C

74
00:04:13.025 --> 00:04:17.085
<00:04:13.025>but <00:04:13.180>with <00:04:13.336>more <00:04:13.491>higher <00:04:13.647>level <00:04:13.802>features, <00:04:13.958>which <00:04:14.113>still <00:04:14.269>is <00:04:14.425>close

75
00:04:17.105 --> 00:04:20.085
<00:04:17.105>to <00:04:17.260>hardware <00:04:17.416>and <00:04:17.571>very <00:04:17.727>efficient <00:04:17.882>that <00:04:18.038>that <00:04:18.193>was <00:04:18.349>the <00:04:18.505>goal.

76
00:04:20.745 --> 00:04:24.445
<00:04:20.745>And <00:04:20.920>one <00:04:21.095>reason <00:04:21.269>for <00:04:21.445>that <00:04:21.620>was <00:04:21.795>that <00:04:21.970>piano <00:04:22.145>during,

77
00:04:24.685 --> 00:04:25.885
<00:04:24.685>I <00:04:24.955>think <00:04:25.225>his <00:04:25.495>master <00:04:25.765>thesis

78
00:04:26.025 --> 00:04:29.245
<00:04:26.025>or <00:04:26.164>something <00:04:26.304>like <00:04:26.445>this, <00:04:26.585>had, <00:04:26.724>um, <00:04:26.864>to <00:04:27.005>work <00:04:27.145>on <00:04:27.284>a <00:04:27.424>project.

79
00:04:29.745 --> 00:04:33.365
<00:04:29.745>And <00:04:29.872>I <00:04:29.999>think <00:04:30.126>at <00:04:30.254>the <00:04:30.381>time <00:04:30.508>he <00:04:30.635>used <00:04:30.763>small <00:04:30.890>talk, <00:04:31.017>maybe, <00:04:31.145>uh,

80
00:04:33.465 --> 00:04:35.325
<00:04:33.465>or <00:04:33.745>similar <00:04:34.025>to, <00:04:34.305>to <00:04:34.585>solve, <00:04:34.865>um,

81
00:04:36.725 --> 00:04:38.705
<00:04:36.725>the <00:04:37.005>project <00:04:37.285>there <00:04:37.565>to <00:04:37.845>implement <00:04:38.125>it.

82
00:04:39.205 --> 00:04:44.145
<00:04:39.205>And <00:04:39.344>he <00:04:39.484>later <00:04:39.625>said <00:04:39.765>that <00:04:39.905>it <00:04:40.044>was <00:04:40.185>the <00:04:40.325>wrong <00:04:40.465>language <00:04:40.604>for

83
00:04:44.925 --> 00:04:46.425
<00:04:44.925>the <00:04:45.195>problem <00:04:45.465>or <00:04:45.735>for <00:04:46.005>the <00:04:46.275>solution.

84
00:04:47.045 --> 00:04:51.105
<00:04:47.045>And <00:04:47.200>he <00:04:47.356>word <00:04:47.511>to <00:04:47.667>himself <00:04:47.822>that <00:04:47.978>he <00:04:48.133>would <00:04:48.289>never <00:04:48.445>again,

85
00:04:51.545 --> 00:04:54.305
<00:04:51.545>approach <00:04:51.778>anything <00:04:52.011>with <00:04:52.245>the <00:04:52.478>wrong <00:04:52.711>language, <00:04:52.945>only

86
00:04:54.305 --> 00:04:55.425
<00:04:54.305>with <00:04:54.641>the <00:04:54.977>proper <00:04:55.313>language.

87
00:04:55.925 --> 00:04:58.985
<00:04:55.925>And <00:04:56.052>so <00:04:56.179>it <00:04:56.306>turned <00:04:56.434>out <00:04:56.561>that <00:04:56.688>a <00:04:56.815>couple <00:04:56.943>of <00:04:57.070>years <00:04:57.197>later, <00:04:57.325>um,

88
00:04:59.175 --> 00:05:03.785
<00:04:59.175>less <00:04:59.302>than <00:04:59.429>he, <00:04:59.556>I <00:04:59.684>think <00:04:59.811>hope <00:04:59.938>he <00:05:00.065>was <00:05:00.193>about <00:05:00.320>to <00:05:00.447>approach <00:05:00.575>another,

89
00:05:04.325 --> 00:05:07.745
<00:05:04.325>uh, <00:05:04.604>implementation, <00:05:04.885>and <00:05:05.164>he <00:05:05.445>stopped <00:05:05.724>there

90
00:05:07.805 --> 00:05:11.825
<00:05:07.805>and <00:05:07.945>said, <00:05:08.085>okay, <00:05:08.225>I <00:05:08.365>need <00:05:08.505>the <00:05:08.645>proper <00:05:08.785>language <00:05:08.925>to <00:05:09.065>solve <00:05:09.205>this.

91
00:05:12.645 --> 00:05:17.265
<00:05:12.645>So <00:05:12.772>he <00:05:12.899>came <00:05:13.026>up <00:05:13.154>with <00:05:13.281>what <00:05:13.408>initially <00:05:13.535>was <00:05:13.663>called <00:05:13.790>C <00:05:13.917>with <00:05:14.044>classes

92
00:05:18.085 --> 00:05:21.065
<00:05:18.085>around <00:05:18.551>79, <00:05:19.018>which <00:05:19.484>more

93
00:05:21.065 --> 00:05:23.545
<00:05:21.065>or <00:05:21.298>less <00:05:21.531>was <00:05:21.765>c <00:05:21.998>plus <00:05:22.231>a <00:05:22.465>couple

94
00:05:23.565 --> 00:05:26.345
<00:05:23.565>of <00:05:24.031>object <00:05:24.498>oriented <00:05:24.965>extensions.

95
00:05:26.965 --> 00:05:31.145
<00:05:26.965>Um, <00:05:27.140>I <00:05:27.315>think <00:05:27.489>first <00:05:27.664>version <00:05:27.840>used <00:05:28.015>the <00:05:28.190>pre-processor <00:05:28.364>to,

96
00:05:31.145 --> 00:05:32.185
<00:05:31.145>to <00:05:31.457>add <00:05:31.769>the <00:05:32.081>stuff,

97
00:05:32.285 --> 00:05:35.705
<00:05:32.284>and <00:05:32.440>later <00:05:32.596>he <00:05:32.751>wrote <00:05:32.907>the <00:05:33.062>first <00:05:33.218>compiler <00:05:33.373>called <00:05:33.529>C <00:05:33.684>Front,

98
00:05:36.195 --> 00:05:37.705
<00:05:36.195>which <00:05:36.874>still <00:05:37.554>more

99
00:05:37.705 --> 00:05:40.825
<00:05:37.705>or <00:05:37.844>less <00:05:37.984>transformed, <00:05:38.125>um, <00:05:38.265>c <00:05:38.405>plus <00:05:38.544>plus <00:05:38.685>code <00:05:38.825>in <00:05:38.965>C <00:05:39.104>code

100
00:05:40.845 --> 00:05:44.225
<00:05:40.845>and <00:05:41.125>then, <00:05:41.405>um, <00:05:41.685>compiled <00:05:41.965>it, <00:05:42.245>which

101
00:05:45.325 --> 00:05:48.425
<00:05:45.325>is <00:05:45.465>probably <00:05:45.604>one <00:05:45.745>of <00:05:45.885>the <00:05:46.025>reasons <00:05:46.164>why <00:05:46.305>c <00:05:46.445>plus <00:05:46.585>plus <00:05:46.724>was

102
00:05:48.445 --> 00:05:51.705
<00:05:48.445>so <00:05:48.620>successful <00:05:48.795>because <00:05:48.969>at <00:05:49.145>the <00:05:49.320>time <00:05:49.495>C <00:05:49.670>was <00:05:49.844>already

103
00:05:52.635 --> 00:05:54.665
<00:05:52.635>relatively <00:05:53.335>good <00:05:54.034>established.

104
00:05:55.125 --> 00:05:59.925
<00:05:55.125>And <00:05:55.241>so <00:05:55.358>you <00:05:55.475>didn't <00:05:55.591>need <00:05:55.708>a <00:05:55.825>bunch <00:05:55.941>of <00:05:56.058>new <00:05:56.175>tools, <00:05:56.291>just, <00:05:56.408>um, <00:05:56.525>one,

105
00:06:00.465 --> 00:06:02.485
<00:06:00.465>um, <00:06:00.931>series <00:06:01.398>classes, <00:06:01.864>processor

106
00:06:02.485 --> 00:06:05.565
<00:06:02.485>or <00:06:02.685>compiler, <00:06:02.885>which <00:06:03.085>then <00:06:03.285>use <00:06:03.485>the <00:06:03.685>C <00:06:03.885>infrastructure

107
00:06:06.105 --> 00:06:07.645
<00:06:06.105>to <00:06:06.382>compile <00:06:06.659>it, <00:06:06.936>to <00:06:07.213>link <00:06:07.491>it,

108
00:06:07.665 --> 00:06:11.805
<00:06:07.665>and <00:06:07.840>you <00:06:08.015>have <00:06:08.190>your <00:06:08.365>binary <00:06:08.540>that's, <00:06:08.715>um, <00:06:08.890>brilliant <00:06:09.065>today.

109
00:06:12.575 --> 00:06:15.365
<00:06:12.575>Maybe <00:06:12.775>we <00:06:12.974>sometimes <00:06:13.175>wish <00:06:13.375>for <00:06:13.575>a <00:06:13.775>different <00:06:13.974>linker,

110
00:06:15.465 --> 00:06:18.045
<00:06:15.465>but <00:06:15.664>we <00:06:15.864>still <00:06:16.065>have, <00:06:16.265>um, <00:06:16.465>the <00:06:16.664>C <00:06:16.864>linker

111
00:06:19.005 --> 00:06:22.405
<00:06:19.005>C <00:06:19.238>plus <00:06:19.471>plus <00:06:19.705>itself <00:06:19.938>was <00:06:20.171>inspired <00:06:20.405>by

112
00:06:22.915 --> 00:06:26.165
<00:06:22.915>various <00:06:23.090>different <00:06:23.265>languages <00:06:23.440>PNA <00:06:23.615>had <00:06:23.790>seen <00:06:23.965>at <00:06:24.140>the <00:06:24.315>time

113
00:06:26.785 --> 00:06:29.805
<00:06:26.785>and <00:06:26.940>which <00:06:27.096>were <00:06:27.251>interesting <00:06:27.407>or, <00:06:27.562>or <00:06:27.718>used <00:06:27.873>at <00:06:28.029>the <00:06:28.185>time.

114
00:06:29.865 --> 00:06:33.205
<00:06:29.865>So <00:06:30.098>it's <00:06:30.331>similar, <00:06:30.565>it's <00:06:30.798>PCP, <00:06:31.031>LGO <00:06:31.265>68

115
00:06:33.585 --> 00:06:37.325
<00:06:33.585>and <00:06:33.760>ada, <00:06:33.935>all <00:06:34.109>of <00:06:34.284>them <00:06:34.460>influence <00:06:34.635>c <00:06:34.810>plus <00:06:34.984>plus

116
00:06:37.425 --> 00:06:38.965
<00:06:37.425>and <00:06:37.702>a <00:06:37.979>couple <00:06:38.256>of <00:06:38.533>more, <00:06:38.811>probably

117
00:06:42.985 --> 00:06:44.105
<00:06:42.985>c <00:06:43.321>plus <00:06:43.657>plus <00:06:43.993>itself.

118
00:06:44.685 --> 00:06:48.585
<00:06:44.685>Um, <00:06:44.885>was <00:06:45.085>born, <00:06:45.285>you <00:06:45.485>can <00:06:45.685>say <00:06:45.885>in <00:06:46.085>1982

119
00:06:48.725 --> 00:06:50.585
<00:06:48.725>as <00:06:48.958>a <00:06:49.191>successor <00:06:49.425>of <00:06:49.658>C <00:06:49.891>with <00:06:50.125>classes.

120
00:06:51.375 --> 00:06:54.265
<00:06:51.375>When <00:06:51.608>he <00:06:51.841>started <00:06:52.075>c <00:06:52.308>with <00:06:52.541>classes, <00:06:52.775>he

121
00:06:55.085 --> 00:06:57.145
<00:06:55.085>really <00:06:55.551>didn't <00:06:56.018>think <00:06:56.484>about

122
00:06:57.245 --> 00:07:01.145
<00:06:57.245>or <00:06:57.400>had <00:06:57.556>developing <00:06:57.711>a <00:06:57.867>whole <00:06:58.022>new <00:06:58.178>programming <00:06:58.333>language <00:06:58.489>in <00:06:58.645>mind.

123
00:07:01.765 --> 00:07:06.425
<00:07:01.765>It <00:07:01.920>was <00:07:02.076>just <00:07:02.231>grading <00:07:02.387>the <00:07:02.542>proper <00:07:02.698>language <00:07:02.853>to <00:07:03.009>solve <00:07:03.164>his,

124
00:07:06.685 --> 00:07:10.275
<00:07:06.685>um, <00:07:06.918>particular, <00:07:07.151>um, <00:07:07.385>issue <00:07:07.618>at <00:07:07.851>the <00:07:08.085>time.

125
00:07:12.015 --> 00:07:13.395
<00:07:12.015>And <00:07:12.263>it <00:07:12.511>was <00:07:12.760>a <00:07:13.008>different <00:07:13.257>time.

126
00:07:13.395 --> 00:07:16.475
<00:07:13.395>Developing <00:07:13.628>new <00:07:13.861>programming <00:07:14.094>languages <00:07:14.328>was, <00:07:14.561>I <00:07:14.794>think,

127
00:07:16.865 --> 00:07:18.475
<00:07:16.865>much <00:07:17.145>harder <00:07:17.425>than <00:07:17.705>it <00:07:17.985>is <00:07:18.265>today.

128
00:07:19.095 --> 00:07:22.595
<00:07:19.095>Um, <00:07:19.222>today <00:07:19.349>we, <00:07:19.476>we <00:07:19.604>can <00:07:19.731>well <00:07:19.858>come <00:07:19.985>up <00:07:20.113>with <00:07:20.240>a <00:07:20.367>new <00:07:20.495>grammar,

129
00:07:22.745 --> 00:07:25.035
<00:07:22.745>implement <00:07:22.978>the <00:07:23.211>front <00:07:23.445>end, <00:07:23.678>uh, <00:07:23.911>for <00:07:24.145>it,

130
00:07:25.035 --> 00:07:29.195
<00:07:25.035>and <00:07:25.175>then <00:07:25.315>use <00:07:25.455>LLVM <00:07:25.595>to <00:07:25.735>well <00:07:25.875>have <00:07:26.015>the <00:07:26.155>back <00:07:26.295>end <00:07:26.435>there,

131
00:07:29.425 --> 00:07:31.195
<00:07:29.425>compile <00:07:29.658>it <00:07:29.891>into <00:07:30.125>binary <00:07:30.358>and <00:07:30.591>so <00:07:30.825>on.

132
00:07:31.535 --> 00:07:36.075
<00:07:31.535>Um, <00:07:31.690>it's <00:07:31.846>easier, <00:07:32.001>um, <00:07:32.157>at <00:07:32.312>least <00:07:32.468>if <00:07:32.623>you <00:07:32.779>can <00:07:32.935>manage

133
00:07:36.075 --> 00:07:39.515
<00:07:36.075>to <00:07:36.230>write <00:07:36.386>your, <00:07:36.541>your <00:07:36.697>own <00:07:36.852>par <00:07:37.008>and <00:07:37.163>your <00:07:37.319>own <00:07:37.474>crema.

134
00:07:40.135 --> 00:07:41.875
<00:07:40.135>But <00:07:40.414>today <00:07:40.695>we <00:07:40.974>are <00:07:41.255>seeing <00:07:41.534>more

135
00:07:41.875 --> 00:07:44.155
<00:07:41.875>and <00:07:42.155>more <00:07:42.435>programming <00:07:42.715>languages <00:07:42.995>appear <00:07:43.275>and,

136
00:07:44.175 --> 00:07:45.395
<00:07:44.175>and <00:07:44.394>I <00:07:44.614>think <00:07:44.833>that <00:07:45.053>that's <00:07:45.272>good,

137
00:07:45.395 --> 00:07:48.275
<00:07:45.395>but <00:07:45.570>at <00:07:45.745>the <00:07:45.919>time, <00:07:46.094>it, <00:07:46.270>it <00:07:46.445>was, <00:07:46.620>um, <00:07:46.794>yeah,

138
00:07:48.495 --> 00:07:49.795
<00:07:48.495>it <00:07:48.885>was <00:07:49.275>more <00:07:49.665>difficult.

139
00:07:50.455 --> 00:07:53.795
<00:07:50.455>So <00:07:50.688>at <00:07:50.921>some <00:07:51.155>point <00:07:51.388>he <00:07:51.621>realized, <00:07:51.854>um,

140
00:07:54.065 --> 00:07:57.355
<00:07:54.065>that <00:07:54.265>he <00:07:54.465>had <00:07:54.665>created <00:07:54.865>a <00:07:55.065>single <00:07:55.265>programming <00:07:55.465>language,

141
00:07:57.475 --> 00:08:01.475
<00:07:57.475>a <00:07:57.615>new <00:07:57.755>one <00:07:57.895>at <00:07:58.035>this <00:07:58.175>point, <00:07:58.315>and <00:07:58.455>more <00:07:58.595>and <00:07:58.735>more <00:07:58.875>people,

142
00:08:01.815 --> 00:08:03.595
<00:08:01.815>and <00:08:02.048>we <00:08:02.281>are <00:08:02.515>talking <00:08:02.748>about <00:08:02.981>about <00:08:03.215>millions,

143
00:08:03.595 --> 00:08:06.075
<00:08:03.595>we <00:08:03.828>are <00:08:04.061>talking <00:08:04.295>about <00:08:04.528>10 <00:08:04.761>or <00:08:04.995>20

144
00:08:06.255 --> 00:08:08.595
<00:08:06.255>or <00:08:06.488>maybe <00:08:06.721>a <00:08:06.955>hundred <00:08:07.188>jumped <00:08:07.421>in, <00:08:07.655>um,

145
00:08:08.595 --> 00:08:12.715
<00:08:08.595>because <00:08:08.770>they <00:08:08.945>found <00:08:09.120>it <00:08:09.295>also <00:08:09.470>useful <00:08:09.645>for <00:08:09.820>their <00:08:09.995>projects.

146
00:08:13.255 --> 00:08:16.275
<00:08:13.255>So <00:08:13.455>it <00:08:13.655>was <00:08:13.855>like <00:08:14.055>spreading <00:08:14.255>around <00:08:14.455>and <00:08:14.655>more

147
00:08:16.275 --> 00:08:17.635
<00:08:16.275>and <00:08:16.479>more <00:08:16.683>people <00:08:16.887>got <00:08:17.091>used <00:08:17.294>to <00:08:17.498>it.

148
00:08:18.615 --> 00:08:23.305
<00:08:18.615>And <00:08:18.815>then <00:08:19.015>later <00:08:19.215>at <00:08:19.415>the <00:08:19.615>end <00:08:19.815>of <00:08:20.015>the

149
00:08:23.825 --> 00:08:25.465
<00:08:23.825>eighties, <00:08:24.525>someone <00:08:25.224>suggested,

150
00:08:25.485 --> 00:08:28.305
<00:08:25.485>or <00:08:25.718>beginning <00:08:25.951>of <00:08:26.185>the <00:08:26.418>nineties, <00:08:26.651>someone <00:08:26.885>suggested

151
00:08:28.335 --> 00:08:29.985
<00:08:28.335>that <00:08:28.685>it <00:08:29.034>should <00:08:29.385>be <00:08:29.734>standardized,

152
00:08:30.125 --> 00:08:33.465
<00:08:30.125>it <00:08:30.280>should <00:08:30.436>be <00:08:30.591>an <00:08:30.747>ISO <00:08:30.902>standard, <00:08:31.058>which <00:08:31.213>is <00:08:31.369>probably <00:08:31.525>one

153
00:08:33.465 --> 00:08:36.425
<00:08:33.465>of <00:08:33.620>the <00:08:33.776>reasons <00:08:33.931>why <00:08:34.087>c <00:08:34.242>plus <00:08:34.398>plus, <00:08:34.553>um, <00:08:34.709>sticks <00:08:34.865>out

154
00:08:36.425 --> 00:08:39.585
<00:08:36.424>because <00:08:36.599>you, <00:08:36.775>you <00:08:36.949>have, <00:08:37.125>uh, <00:08:37.299>ISO <00:08:37.474>standardized <00:08:37.650>language <00:08:37.824>here,

155
00:08:39.615 --> 00:08:43.185
<00:08:39.615>like <00:08:39.770>c <00:08:39.926>and <00:08:40.081>um, <00:08:40.237>it <00:08:40.392>took <00:08:40.548>the <00:08:40.703>UN <00:08:40.859>acquired <00:08:41.015>while

156
00:08:43.485 --> 00:08:47.265
<00:08:43.485>to <00:08:43.951>really <00:08:44.418>standardize <00:08:44.885>it.

157
00:08:47.325 --> 00:08:49.825
<00:08:47.325>Um, <00:08:47.605>it <00:08:47.885>first <00:08:48.165>happened <00:08:48.445>in <00:08:48.725>1998,

158
00:08:51.055 --> 00:08:54.985
<00:08:51.055>then <00:08:51.194>there <00:08:51.334>was <00:08:51.474>a <00:08:51.614>long <00:08:51.755>time <00:08:51.895>where <00:08:52.035>the <00:08:52.175>language, <00:08:52.314>at <00:08:52.454>least

159
00:08:55.105 --> 00:08:57.885
<00:08:55.105>for <00:08:55.280>outsiders, <00:08:55.455>seem <00:08:55.630>not <00:08:55.805>to <00:08:55.980>move, <00:08:56.155>not <00:08:56.330>to <00:08:56.505>evolve.

160
00:08:58.065 --> 00:09:01.685
<00:08:58.065>Um, <00:08:58.265>until <00:08:58.465>2011, <00:08:58.665>we <00:08:58.865>got <00:08:59.065>a <00:08:59.265>new <00:08:59.465>standard.

161
00:09:02.385 --> 00:09:04.565
<00:09:02.385>And <00:09:02.851>ever <00:09:03.318>since <00:09:03.785>then,

162
00:09:04.785 --> 00:09:07.325
<00:09:04.785>we <00:09:04.985>get <00:09:05.185>a <00:09:05.385>new <00:09:05.584>standard <00:09:05.785>every <00:09:05.985>three <00:09:06.185>years.

163
00:09:07.705 --> 00:09:11.325
<00:09:07.705>So <00:09:07.905>it's <00:09:08.105>like <00:09:08.305>your, <00:09:08.505>um, <00:09:08.705>agile <00:09:08.905>development <00:09:09.105>cycle.

164
00:09:11.995 --> 00:09:13.205
<00:09:11.995>It's <00:09:12.267>a <00:09:12.539>release <00:09:12.811>rain <00:09:13.084>model.

165
00:09:13.415 --> 00:09:15.125
<00:09:13.415>Everything <00:09:13.765>that's <00:09:14.115>ready <00:09:14.464>gets <00:09:14.814>shipped

166
00:09:15.185 --> 00:09:18.165
<00:09:15.185>and <00:09:15.340>everything <00:09:15.496>that's <00:09:15.651>not <00:09:15.807>ready <00:09:15.962>well <00:09:16.118>takes <00:09:16.273>the <00:09:16.429>next <00:09:16.584>train.

167
00:09:18.705 --> 00:09:21.525
<00:09:18.705>So, <00:09:18.905>but <00:09:19.105>you <00:09:19.305>have <00:09:19.505>this, <00:09:19.705>um, <00:09:19.905>precise <00:09:20.105>window

168
00:09:21.585 --> 00:09:23.685
<00:09:21.585>of <00:09:21.865>three <00:09:22.145>years <00:09:22.425>when <00:09:22.705>you <00:09:22.985>know

169
00:09:23.685 --> 00:09:27.405
<00:09:23.685>that <00:09:23.812>you <00:09:23.939>will <00:09:24.066>get <00:09:24.194>a <00:09:24.321>new <00:09:24.448>standard <00:09:24.575>and <00:09:24.703>for, <00:09:24.830>for <00:09:24.957>its <00:09:25.084>effort.

170
00:09:27.545 --> 00:09:29.165
<00:09:27.545>Um, <00:09:28.245>in <00:09:28.944>2018,

171
00:09:29.775 --> 00:09:33.325
<00:09:29.775>piano <00:09:29.975>received <00:09:30.175>a <00:09:30.375>Charles <00:09:30.574>Stock <00:09:30.775>Reaper <00:09:30.975>price, <00:09:31.175>um,

172
00:09:33.705 --> 00:09:35.045
<00:09:33.705>for <00:09:34.911>conceptualizing

173
00:09:35.145 --> 00:09:38.285
<00:09:35.145>and <00:09:35.378>developing <00:09:35.611>DC <00:09:35.845>plus <00:09:36.078>plus <00:09:36.311>programming <00:09:36.545>language.

174
00:09:38.345 --> 00:09:42.085
<00:09:38.345>So <00:09:38.472>this <00:09:38.599>is, <00:09:38.726>uh, <00:09:38.854>the <00:09:38.981>best <00:09:39.108>you <00:09:39.235>can <00:09:39.363>get <00:09:39.490>in <00:09:39.617>computer <00:09:39.745>science.

175
00:09:42.285 --> 00:09:45.005
<00:09:42.285>I <00:09:42.985>think. <00:09:43.685>Um,

176
00:09:45.005 --> 00:09:47.645
<00:09:45.005>this <00:09:45.180>picture <00:09:45.355>here <00:09:45.530>illustrates <00:09:45.705>a <00:09:45.880>little <00:09:46.055>bit <00:09:46.230>the, <00:09:46.405>um,

177
00:09:48.155 --> 00:09:49.925
<00:09:48.155>various <00:09:49.555>steps.

178
00:09:50.485 --> 00:09:52.285
<00:09:50.485>C <00:09:50.765>plus <00:09:51.045>plus <00:09:51.325>has <00:09:51.605>taken <00:09:51.885>the,

179
00:09:52.345 --> 00:09:55.045
<00:09:52.345>the <00:09:52.578>programming <00:09:52.811>languages <00:09:53.045>it <00:09:53.278>was <00:09:53.511>influenced <00:09:53.745>by

180
00:09:55.145 --> 00:09:56.165
<00:09:55.145>or <00:09:55.603>it <00:09:56.063>influenced.

181
00:09:56.665 --> 00:10:00.205
<00:09:56.665>So <00:09:56.781>if <00:09:56.898>you <00:09:57.015>look <00:09:57.131>at <00:09:57.248>the <00:09:57.365>very <00:09:57.481>left, <00:09:57.598>then <00:09:57.714>there <00:09:57.831>you <00:09:57.948>see <00:09:58.064>similar

182
00:10:00.305 --> 00:10:03.885
<00:10:00.305>and <00:10:00.505>BCPL, <00:10:00.704>they <00:10:00.905>influenced <00:10:01.104>first <00:10:01.305>C <00:10:01.505>was <00:10:01.704>classes.

183
00:10:04.305 --> 00:10:08.485
<00:10:04.305>Um, <00:10:04.460>BCPL <00:10:04.616>on <00:10:04.771>the <00:10:04.927>other <00:10:05.082>hand <00:10:05.238>influenced <00:10:05.393>B <00:10:05.549>and <00:10:05.704>GaN

184
00:10:08.485 --> 00:10:13.165
<00:10:08.485>and <00:10:08.625>Richie <00:10:08.765>C, <00:10:08.905>which <00:10:09.045>then <00:10:09.185>led <00:10:09.325>to <00:10:09.465>classic <00:10:09.605>C, <00:10:09.745>which, <00:10:09.885>um,

185
00:10:13.425 --> 00:10:17.205
<00:10:13.425>is <00:10:13.552>what <00:10:13.679>CVIS <00:10:13.806>classes <00:10:13.934>was <00:10:14.061>based <00:10:14.188>on <00:10:14.315>when <00:10:14.443>it <00:10:14.570>was <00:10:14.697>developed, <00:10:14.824>um,

186
00:10:17.505 --> 00:10:19.805
<00:10:17.505>around, <00:10:18.205>um, <00:10:18.905>1979.

187
00:10:20.385 --> 00:10:25.065
<00:10:20.385>And <00:10:20.540>then <00:10:20.696>in, <00:10:20.851>yeah, <00:10:21.007>1985, <00:10:21.162>a <00:10:21.318>little <00:10:21.473>bit <00:10:21.629>later <00:10:21.785>maybe

188
00:10:25.205 --> 00:10:28.625
<00:10:25.205>or <00:10:25.345>earlier <00:10:25.485>we, <00:10:25.625>we <00:10:25.765>talk <00:10:25.905>about <00:10:26.045>the <00:10:26.185>early <00:10:26.325>c <00:10:26.465>plus <00:10:26.605>plus,

189
00:10:29.765 --> 00:10:30.795
<00:10:29.765>which <00:10:30.228>then <00:10:30.692>lead

190
00:10:31.135 --> 00:10:34.595
<00:10:31.135>or <00:10:31.290>lead <00:10:31.446>to <00:10:31.601>something <00:10:31.757>that's <00:10:31.912>called <00:10:32.068>ARM <00:10:32.223>C <00:10:32.379>plus <00:10:32.535>plus.

191
00:10:35.295 --> 00:10:38.675
<00:10:35.295>And <00:10:35.435>I <00:10:35.574>think <00:10:35.714>today <00:10:35.854>it's <00:10:35.995>a <00:10:36.135>little <00:10:36.275>bit <00:10:36.415>of <00:10:36.555>unfortunate <00:10:36.694>acronym

192
00:10:38.675 --> 00:10:42.275
<00:10:38.675>because, <00:10:38.830>um, <00:10:38.986>every <00:10:39.141>time <00:10:39.297>I <00:10:39.452>talk <00:10:39.608>to <00:10:39.763>people <00:10:39.919>about <00:10:40.074>arm,

193
00:10:42.745 --> 00:10:44.635
<00:10:42.745>they <00:10:43.095>are <00:10:43.445>about <00:10:43.795>a <00:10:44.145>microprocessor.

194
00:10:45.015 --> 00:10:48.475
<00:10:45.015>Um, <00:10:45.189>but <00:10:45.365>at <00:10:45.540>that <00:10:45.715>time, <00:10:45.890>it, <00:10:46.064>um, <00:10:46.240>was <00:10:46.415>meant

195
00:10:48.575 --> 00:10:52.035
<00:10:48.575>as <00:10:48.750>the <00:10:48.925>architecture <00:10:49.100>reference <00:10:49.275>manual <00:10:49.450>of <00:10:49.625>c <00:10:49.800>plus <00:10:49.975>plus.

196
00:10:52.855 --> 00:10:55.875
<00:10:52.855>It <00:10:53.088>was <00:10:53.321>a <00:10:53.555>very <00:10:53.788>good <00:10:54.021>document <00:10:54.255>documenting

197
00:10:57.295 --> 00:11:01.155
<00:10:57.295>the <00:10:57.422>language, <00:10:57.549>what <00:10:57.676>you <00:10:57.804>can <00:10:57.931>do <00:10:58.058>with <00:10:58.185>it <00:10:58.313>or <00:10:58.440>how <00:10:58.567>it <00:10:58.694>works,

198
00:11:01.615 --> 00:11:04.395
<00:11:01.615>and <00:11:01.790>was <00:11:01.965>used <00:11:02.140>for <00:11:02.315>a <00:11:02.490>very, <00:11:02.665>very <00:11:02.840>long <00:11:03.015>time

199
00:11:05.045 --> 00:11:09.235
<00:11:05.045>until <00:11:05.219>c <00:11:05.395>plus <00:11:05.569>plus <00:11:05.745>was <00:11:05.920>standardized <00:11:06.094>in, <00:11:06.270>um, <00:11:06.444>1998

200
00:11:10.255 --> 00:11:14.355
<00:11:10.255>as <00:11:10.455>a <00:11:10.655>reference <00:11:10.855>for <00:11:11.055>compiler <00:11:11.255>vendors <00:11:11.455>for <00:11:11.655>implementations,

201
00:11:15.055 --> 00:11:18.875
<00:11:15.055>um, <00:11:15.162>for <00:11:15.270>how <00:11:15.378>to <00:11:15.485>use <00:11:15.593>c <00:11:15.701>plus <00:11:15.808>plus, <00:11:15.916>uh, <00:11:16.024>or <00:11:16.131>what <00:11:16.239>the <00:11:16.347>rules <00:11:16.454>are.

202
00:11:19.255 --> 00:11:22.235
<00:11:19.255>So <00:11:19.488>this <00:11:19.721>was <00:11:19.955>a <00:11:20.188>foundational <00:11:20.421>document <00:11:20.655>maybe

203
00:11:22.335 --> 00:11:26.115
<00:11:22.335>and <00:11:22.490>without <00:11:22.646>it, <00:11:22.801>um, <00:11:22.957>it's <00:11:23.112>hard <00:11:23.268>to <00:11:23.423>say <00:11:23.579>always, <00:11:23.735>um,

204
00:11:26.655 --> 00:11:28.835
<00:11:26.655>if <00:11:26.935>you <00:11:27.214>influenced <00:11:27.495>the <00:11:27.775>the <00:11:28.055>past,

205
00:11:29.495 --> 00:11:33.425
<00:11:29.495>but <00:11:29.695>I <00:11:29.895>think <00:11:30.095>it <00:11:30.295>was <00:11:30.495>an <00:11:30.695>influential <00:11:30.895>document

206
00:11:33.445 --> 00:11:36.505
<00:11:33.445>and <00:11:33.645>with <00:11:33.845>obit, <00:11:34.045>the <00:11:34.245>language <00:11:34.445>may <00:11:34.645>not <00:11:34.845>have

207
00:11:36.695 --> 00:11:38.145
<00:11:36.695>that <00:11:37.021>success <00:11:37.347>that <00:11:37.673>it <00:11:38.000>has.

208
00:11:38.805 --> 00:11:41.465
<00:11:38.805>And <00:11:38.960>then <00:11:39.116>we <00:11:39.271>can <00:11:39.427>see <00:11:39.582>that <00:11:39.738>um, <00:11:39.893>c <00:11:40.049>plus <00:11:40.204>plus

209
00:11:41.525 --> 00:11:43.785
<00:11:41.525>and <00:11:41.805>C <00:11:42.084>still <00:11:42.365>influence <00:11:42.645>each <00:11:42.925>other.

210
00:11:44.465 --> 00:11:45.625
<00:11:44.465>C <00:11:44.813>also <00:11:45.161>moves <00:11:45.509>on.

211
00:11:45.805 --> 00:11:49.825
<00:11:45.805>Um, <00:11:45.944>the, <00:11:46.084>the <00:11:46.224>graphic <00:11:46.364>here <00:11:46.505>only <00:11:46.645>goes <00:11:46.785>until <00:11:46.925>C <00:11:47.064>plus <00:11:47.204>plus

212
00:11:49.965 --> 00:11:52.385
<00:11:49.965>or <00:11:50.315>C <00:11:50.665>11 <00:11:51.015>in <00:11:51.365>2011,

213
00:11:52.805 --> 00:11:56.285
<00:11:52.805>but, <00:11:52.979>um, <00:11:53.155>imagine <00:11:53.329>it <00:11:53.505>that <00:11:53.680>it's <00:11:53.854>just <00:11:54.030>going <00:11:54.204>forward.

214
00:11:56.505 --> 00:12:01.045
<00:11:56.505>Um, <00:11:56.632>c <00:11:56.759>still <00:11:56.886>evolves, <00:11:57.014>um, <00:11:57.141>as <00:11:57.268>well <00:11:57.395>as <00:11:57.523>c <00:11:57.650>plus <00:11:57.777>plus <00:11:57.905>does.

215
00:12:04.095 --> 00:12:06.835
<00:12:04.095>So <00:12:04.250>here <00:12:04.406>you <00:12:04.561>can <00:12:04.717>see <00:12:04.872>especially <00:12:05.028>in <00:12:05.183>the <00:12:05.339>beginning, <00:12:05.495>that

216
00:12:06.835 --> 00:12:10.595
<00:12:06.835>that <00:12:07.010>C <00:12:07.185>was <00:12:07.360>classes <00:12:07.535>was <00:12:07.710>influenced <00:12:07.885>by <00:12:08.060>multiple <00:12:08.235>languages.

217
00:12:10.615 --> 00:12:14.035
<00:12:10.615>Not <00:12:10.790>all <00:12:10.965>are <00:12:11.140>here. <00:12:11.315>You <00:12:11.490>can <00:12:11.665>see <00:12:11.840>this, <00:12:12.015>um,

218
00:12:14.655 --> 00:12:19.405
<00:12:14.655>at <00:12:14.810>a <00:12:14.966>different <00:12:15.121>point, <00:12:15.277>and <00:12:15.432>this <00:12:15.588>is <00:12:15.743>here, <00:12:15.899>this <00:12:16.055>is

219
00:12:20.525 --> 00:12:24.565
<00:12:20.525>comments <00:12:20.665>in <00:12:20.805>c <00:12:20.944>plus <00:12:21.084>plus <00:12:21.225>you <00:12:21.365>have <00:12:21.505>two <00:12:21.645>ways <00:12:21.785>of <00:12:21.925>commenting.

220
00:12:24.785 --> 00:12:28.085
<00:12:24.785>Six, <00:12:24.940>the <00:12:25.096>first <00:12:25.251>one <00:12:25.407>is <00:12:25.562>known <00:12:25.718>as <00:12:25.873>a <00:12:26.029>C <00:12:26.185>style.

221
00:12:28.105 --> 00:12:32.765
<00:12:28.105>If <00:12:28.260>you <00:12:28.416>Google <00:12:28.571>it, <00:12:28.727>um, <00:12:28.882>it <00:12:29.038>goes <00:12:29.193>until <00:12:29.349>the <00:12:29.505>end,

222
00:12:33.225 --> 00:12:34.405
<00:12:33.225>um, <00:12:33.579>of <00:12:33.933>the <00:12:34.287>command.

223
00:12:34.545 --> 00:12:37.205
<00:12:34.545>So <00:12:34.700>when <00:12:34.856>you <00:12:35.011>hit <00:12:35.167>the <00:12:35.322>star <00:12:35.478>slash <00:12:35.633>that's <00:12:35.789>the <00:12:35.944>end

224
00:12:37.205 --> 00:12:39.485
<00:12:37.205>of <00:12:37.380>the <00:12:37.555>command, <00:12:37.730>which <00:12:37.905>is <00:12:38.080>started <00:12:38.255>by <00:12:38.430>slash <00:12:38.605>star,

225
00:12:40.545 --> 00:12:43.045
<00:12:40.545>can <00:12:40.719>have <00:12:40.895>new <00:12:41.069>alliance <00:12:41.245>in <00:12:41.420>there, <00:12:41.594>everything <00:12:41.770>you <00:12:41.944>want.

226
00:12:43.225 --> 00:12:46.725
<00:12:43.225>Um, <00:12:43.400>the <00:12:43.575>last, <00:12:43.750>um, <00:12:43.925>star <00:12:44.100>slash <00:12:44.275>terminates <00:12:44.450>this <00:12:44.625>command,

227
00:12:48.855 --> 00:12:50.955
<00:12:48.855>and <00:12:49.088>this <00:12:49.321>is <00:12:49.555>what <00:12:49.788>C <00:12:50.021>still <00:12:50.255>uses

228
00:12:51.775 --> 00:12:55.955
<00:12:51.775>and <00:12:51.930>c <00:12:52.086>plus <00:12:52.241>plus <00:12:52.397>came <00:12:52.552>up <00:12:52.708>with <00:12:52.863>simply <00:12:53.019>slash <00:12:53.175>slash.

229
00:12:56.265 --> 00:12:58.955
<00:12:56.265>This <00:12:56.420>is <00:12:56.576>known <00:12:56.731>as <00:12:56.887>a <00:12:57.042>c <00:12:57.198>plus <00:12:57.353>plus <00:12:57.509>style <00:12:57.665>command.

230
00:12:59.695 --> 00:13:02.915
<00:12:59.695>And <00:12:59.835>um, <00:12:59.975>it <00:13:00.115>only <00:13:00.255>goes <00:13:00.395>until <00:13:00.535>the <00:13:00.675>end <00:13:00.815>of <00:13:00.955>the <00:13:01.095>line.

231
00:13:03.255 --> 00:13:05.395
<00:13:03.255>So <00:13:03.455>they <00:13:03.655>serve <00:13:03.855>a <00:13:04.055>little <00:13:04.255>bit <00:13:04.455>different <00:13:04.655>purposes,

232
00:13:05.395 --> 00:13:08.195
<00:13:05.395>but <00:13:05.628>the <00:13:05.861>c <00:13:06.095>plus <00:13:06.328>plus <00:13:06.561>style, <00:13:06.795>um,

233
00:13:08.305 --> 00:13:11.475
<00:13:08.305>command <00:13:08.444>wave <00:13:08.584>is <00:13:08.724>often <00:13:08.864>a <00:13:09.005>bit <00:13:09.145>shorter <00:13:09.285>on <00:13:09.425>unless <00:13:09.564>we're <00:13:09.704>both,

234
00:13:12.655 --> 00:13:16.235
<00:13:12.655>and <00:13:12.855>the <00:13:13.055>interesting <00:13:13.255>fact <00:13:13.454>about <00:13:13.655>these <00:13:13.855>two <00:13:14.055>is

235
00:13:18.115 --> 00:13:21.405
<00:13:18.115>both <00:13:18.348>command <00:13:18.581>styles <00:13:18.815>go <00:13:19.048>back <00:13:19.281>to <00:13:19.515>PCPL,

236
00:13:22.705 --> 00:13:27.055
<00:13:22.705>while <00:13:22.905>C <00:13:23.105>picked <00:13:23.305>only <00:13:23.505>the <00:13:23.705>above <00:13:23.905>version, <00:13:24.105>what's

237
00:13:27.775 --> 00:13:31.695
<00:13:27.775>nowadays <00:13:27.930>known <00:13:28.086>as <00:13:28.241>C <00:13:28.397>style <00:13:28.552>command <00:13:28.708>C <00:13:28.863>plus <00:13:29.019>plus <00:13:29.175>picked

238
00:13:32.585 --> 00:13:35.285
<00:13:32.585>the <00:13:32.760>other <00:13:32.935>one, <00:13:33.110>the <00:13:33.285>c <00:13:33.460>plus <00:13:33.635>plus <00:13:33.810>style <00:13:33.985>command,

239
00:13:35.505 --> 00:13:38.525
<00:13:35.505>but <00:13:35.738>also <00:13:35.971>supported <00:13:36.205>the <00:13:36.438>C <00:13:36.671>style <00:13:36.905>command.

240
00:13:39.045 --> 00:13:43.645
<00:13:39.045>I <00:13:39.185>think, <00:13:39.324>um, <00:13:39.464>today, <00:13:39.604>um, <00:13:39.745>c <00:13:39.885>compilers <00:13:40.025>are <00:13:40.165>not <00:13:40.305>that, <00:13:40.444>um,

241
00:13:44.295 --> 00:13:46.845
<00:13:44.295>picky <00:13:44.574>and <00:13:44.854>they, <00:13:45.135>um, <00:13:45.415>also <00:13:45.694>use

242
00:13:47.385 --> 00:13:49.885
<00:13:47.385>or <00:13:47.618>accept <00:13:47.851>c <00:13:48.085>plus <00:13:48.318>plus <00:13:48.551>style <00:13:48.785>commands

243
00:13:50.495 --> 00:13:52.205
<00:13:50.495>maybe <00:13:50.775>except <00:13:51.055>if <00:13:51.335>you <00:13:51.615>are, <00:13:51.895>um,

244
00:13:52.415 --> 00:13:55.525
<00:13:52.415>using <00:13:52.589>a <00:13:52.765>CC <00:13:52.939>strict <00:13:53.115>mode <00:13:53.290>or <00:13:53.464>something <00:13:53.640>like <00:13:53.814>this.

245
00:13:55.905 --> 00:13:59.725
<00:13:55.905>But <00:13:56.060>they <00:13:56.216>can <00:13:56.371>see <00:13:56.527>anchors <00:13:56.682>both <00:13:56.838>go <00:13:56.993>back <00:13:57.149>to <00:13:57.305>BCPL.

246
00:13:59.985 --> 00:14:04.205
<00:13:59.985>Um, <00:14:00.125>I <00:14:00.265>don't <00:14:00.405>know <00:14:00.545>why <00:14:00.685>C <00:14:00.825>picked <00:14:00.965>only <00:14:01.105>the <00:14:01.245>one <00:14:01.385>version

247
00:14:04.665 --> 00:14:07.725
<00:14:04.665>and <00:14:04.805>c <00:14:04.944>plus <00:14:05.084>plus <00:14:05.224>added <00:14:05.365>the <00:14:05.505>other <00:14:05.645>version <00:14:05.785>to <00:14:05.925>its <00:14:06.064>language.

248
00:14:08.145 --> 00:14:12.085
<00:14:08.145>But <00:14:08.285>um, <00:14:08.425>in <00:14:08.564>the <00:14:08.704>BCPL <00:14:08.845>manual, <00:14:08.985>both <00:14:09.125>were <00:14:09.265>still <00:14:09.405>there, <00:14:09.545>so

249
00:14:12.675 --> 00:14:14.915
<00:14:12.675>well <00:14:13.375>that's <00:14:14.074>history.

250
00:14:17.015 --> 00:14:20.915
<00:14:17.015>Now <00:14:17.170>let's <00:14:17.326>go <00:14:17.481>to <00:14:17.637>the <00:14:17.792>one <00:14:17.948>of <00:14:18.103>always <00:14:18.259>things <00:14:18.415>about

251
00:14:21.185 --> 00:14:22.595
<00:14:21.185>what <00:14:21.502>makes <00:14:21.819>c <00:14:22.136>plus <00:14:22.454>plus.

252
00:14:22.645 --> 00:14:27.605
<00:14:22.645>Great <00:14:23.345>for <00:14:24.045>starters,

253
00:14:27.825 --> 00:14:31.525
<00:14:27.825>um, <00:14:27.965>c <00:14:28.105>plus <00:14:28.245>plus <00:14:28.385>is <00:14:28.525>there <00:14:28.665>for <00:14:28.805>more <00:14:28.945>than <00:14:29.085>30 <00:14:29.225>years,

254
00:14:32.185 --> 00:14:35.765
<00:14:32.185>and <00:14:32.418>that's <00:14:32.651>a <00:14:32.885>really, <00:14:33.118>really <00:14:33.351>long <00:14:33.584>time.

255
00:14:35.985 --> 00:14:38.485
<00:14:35.985>If <00:14:36.218>you <00:14:36.451>look <00:14:36.685>at <00:14:36.918>computer <00:14:37.151>science <00:14:37.385>history,

256
00:14:39.275 --> 00:14:42.605
<00:14:39.275>what <00:14:39.449>changed <00:14:39.625>in <00:14:39.800>the <00:14:39.975>last <00:14:40.150>30 <00:14:40.324>years, <00:14:40.500>it's <00:14:40.675>tremendous.

257
00:14:43.105 --> 00:14:47.005
<00:14:43.105>So <00:14:43.260>having <00:14:43.416>a <00:14:43.571>language <00:14:43.727>that's <00:14:43.882>there <00:14:44.038>for <00:14:44.193>that <00:14:44.349>many <00:14:44.505>years,

258
00:14:48.095 --> 00:14:49.725
<00:14:48.095>there <00:14:48.375>must <00:14:48.655>be <00:14:48.935>something <00:14:49.215>on <00:14:49.495>it.

259
00:14:49.985 --> 00:14:54.945
<00:14:49.985>The <00:14:50.125>same <00:14:50.265>goes <00:14:50.405>for <00:14:50.545>C <00:14:50.685>because <00:14:50.825>it's <00:14:50.965>so <00:14:51.105>long <00:14:51.245>out <00:14:51.385>there

260
00:14:55.405 --> 00:14:58.425
<00:14:55.405>and <00:14:55.638>because <00:14:55.871>c <00:14:56.105>plus <00:14:56.338>plus <00:14:56.571>is <00:14:56.805>still,

261
00:15:00.305 --> 00:15:05.005
<00:15:00.305>it <00:15:00.479>comes <00:15:00.655>with <00:15:00.829>some <00:15:01.005>very <00:15:01.180>little, <00:15:01.354>um, <00:15:01.530>resource <00:15:01.704>requirements

262
00:15:05.605 --> 00:15:07.445
<00:15:05.605>compared <00:15:05.885>to <00:15:06.165>cpl, <00:15:06.445>uh, <00:15:06.725>to <00:15:07.005>C

263
00:15:07.865 --> 00:15:10.245
<00:15:07.865>or <00:15:08.145>to <00:15:08.425>Java, <00:15:08.705>which <00:15:08.985>come <00:15:09.265>with,

264
00:15:10.245 --> 00:15:12.765
<00:15:10.245>with <00:15:10.445>virtual <00:15:10.645>machines <00:15:10.845>they <00:15:11.045>have <00:15:11.245>a <00:15:11.445>different <00:15:11.645>power,

265
00:15:12.985 --> 00:15:14.445
<00:15:12.985>but <00:15:13.204>they <00:15:13.423>have <00:15:13.642>different <00:15:13.861>needs <00:15:14.080>for <00:15:14.299>that.

266
00:15:15.385 --> 00:15:18.805
<00:15:15.385>So <00:15:15.585>because <00:15:15.785>c <00:15:15.985>plus <00:15:16.185>plus <00:15:16.385>still <00:15:16.585>boils <00:15:16.785>down

267
00:15:18.865 --> 00:15:22.325
<00:15:18.865>or <00:15:18.992>can <00:15:19.119>boil <00:15:19.246>down <00:15:19.374>to <00:15:19.501>C, <00:15:19.628>so <00:15:19.755>it's <00:15:19.883>very <00:15:20.010>close <00:15:20.137>to <00:15:20.265>hardware

268
00:15:23.185 --> 00:15:26.805
<00:15:23.185>you <00:15:23.324>find <00:15:23.464>for <00:15:23.604>probably <00:15:23.744>every <00:15:23.885>device <00:15:24.025>out <00:15:24.165>there <00:15:24.305>in <00:15:24.444>the <00:15:24.584>planet,

269
00:15:28.605 --> 00:15:29.845
<00:15:28.605>c <00:15:28.977>plus <00:15:29.349>plus <00:15:29.721>compiler.

270
00:15:30.925 --> 00:15:34.145
<00:15:30.925>And <00:15:31.125>that <00:15:31.324>makes <00:15:31.525>this <00:15:31.724>language <00:15:31.925>highly <00:15:32.125>usable <00:15:32.324>even

271
00:15:34.485 --> 00:15:36.265
<00:15:34.485>for <00:15:34.951>this <00:15:35.418>IOT <00:15:35.885>projects.

272
00:15:36.805 --> 00:15:39.705
<00:15:36.805>So <00:15:37.038>the <00:15:37.271>tiniest <00:15:37.505>device, <00:15:37.738>the <00:15:37.971>largest <00:15:38.204>device,

273
00:15:40.645 --> 00:15:42.825
<00:15:40.645>you <00:15:40.845>can <00:15:41.045>put <00:15:41.245>c <00:15:41.444>plus <00:15:41.645>plus <00:15:41.845>on <00:15:42.045>there,

274
00:15:43.105 --> 00:15:47.465
<00:15:43.105>C <00:15:43.280>plus <00:15:43.455>plus <00:15:43.630>currently <00:15:43.805>flies, <00:15:43.980>um, <00:15:44.155>in <00:15:44.330>outer <00:15:44.505>space

275
00:15:48.045 --> 00:15:51.505
<00:15:48.045>on <00:15:48.278>a <00:15:48.511>mass <00:15:48.745>rover, <00:15:48.978>it's <00:15:49.211>in <00:15:49.444>cars,

276
00:15:52.815 --> 00:15:53.985
<00:15:52.815>it's <00:15:53.166>in <00:15:53.517>mobile <00:15:53.868>phones.

277
00:15:55.845 --> 00:15:57.265
<00:15:55.845>You <00:15:56.164>probably <00:15:56.484>find <00:15:56.803>it <00:15:57.123>everywhere

278
00:16:00.765 --> 00:16:02.615
<00:16:00.765>that <00:16:01.045>it <00:16:01.324>is <00:16:01.605>an <00:16:01.885>ISO <00:16:02.165>standard

279
00:16:05.085 --> 00:16:07.305
<00:16:05.085>may <00:16:05.435>have <00:16:05.785>helped <00:16:06.135>the <00:16:06.485>availability

280
00:16:07.965 --> 00:16:11.615
<00:16:07.965>and <00:16:08.245>it <00:16:08.525>can <00:16:08.805>help <00:16:09.085>shaping <00:16:09.365>it

281
00:16:11.925 --> 00:16:16.335
<00:16:11.925>because <00:16:12.125>you <00:16:12.324>have <00:16:12.525>a <00:16:12.724>document <00:16:12.925>which <00:16:13.125>specifically <00:16:13.324>says

282
00:16:17.005 --> 00:16:19.495
<00:16:17.005>what <00:16:17.355>the <00:16:17.705>language <00:16:18.055>gives <00:16:18.405>you,

283
00:16:20.315 --> 00:16:22.135
<00:16:20.315>how <00:16:20.548>it <00:16:20.781>should <00:16:21.015>behave <00:16:21.248>on <00:16:21.481>the <00:16:21.715>end.

284
00:16:22.135 --> 00:16:25.375
<00:16:22.135>You <00:16:22.290>can't <00:16:22.446>check <00:16:22.601>this <00:16:22.757>and <00:16:22.912>there's <00:16:23.068>a <00:16:23.223>process <00:16:23.379>behind <00:16:23.535>that.

285
00:16:25.375 --> 00:16:27.895
<00:16:25.375>It's, <00:16:25.550>it's <00:16:25.725>not <00:16:25.900>so <00:16:26.075>easy <00:16:26.250>to <00:16:26.425>change <00:16:26.600>the <00:16:26.775>things,

286
00:16:28.915 --> 00:16:31.695
<00:16:28.915>but <00:16:29.148>um, <00:16:29.381>can <00:16:29.615>always <00:16:29.848>log <00:16:30.081>it <00:16:30.314>up.

287
00:16:32.195 --> 00:16:37.015
<00:16:32.195>That's <00:16:32.545>very <00:16:32.895>helpful <00:16:33.245>with <00:16:33.595>the

288
00:16:38.225 --> 00:16:39.835
<00:16:38.225>fact <00:16:38.925>that <00:16:39.625>probably

289
00:16:39.895 --> 00:16:43.075
<00:16:39.895>for <00:16:40.050>every <00:16:40.206>device <00:16:40.361>out <00:16:40.517>there <00:16:40.672>there <00:16:40.828>is <00:16:40.983>a <00:16:41.139>C <00:16:41.295>compiler.

290
00:16:43.495 --> 00:16:46.195
<00:16:43.495>You <00:16:43.728>also <00:16:43.961>find <00:16:44.195>c <00:16:44.428>plus <00:16:44.661>plus <00:16:44.895>used

291
00:16:46.855 --> 00:16:48.955
<00:16:46.855>in <00:16:47.135>a <00:16:47.415>wide <00:16:47.695>variety <00:16:47.975>of <00:16:48.255>devices.

292
00:16:49.355 --> 00:16:52.595
<00:16:49.355>I <00:16:49.530>already <00:16:49.705>named <00:16:49.880>it, <00:16:50.055>um, <00:16:50.230>in <00:16:50.405>cars, <00:16:50.580>mobile <00:16:50.755>phones

293
00:16:53.685 --> 00:16:54.825
<00:16:53.685>on <00:16:54.026>a <00:16:54.369>mouse <00:16:54.711>rover.

294
00:16:55.725 --> 00:16:57.185
<00:16:55.725>The <00:16:55.987>one <00:16:56.250>comes <00:16:56.513>with <00:16:56.776>the <00:16:57.039>other.

295
00:16:57.245 --> 00:16:59.265
<00:16:57.245>If <00:16:57.420>you <00:16:57.595>can <00:16:57.770>use <00:16:57.945>it, <00:16:58.120>you <00:16:58.295>will <00:16:58.470>use <00:16:58.645>it.

296
00:16:59.485 --> 00:17:03.225
<00:16:59.485>And <00:16:59.660>because <00:16:59.835>it <00:17:00.010>comes <00:17:00.185>with <00:17:00.360>nearly <00:17:00.535>no <00:17:00.710>resource <00:17:00.885>requirements,

297
00:17:03.845 --> 00:17:06.865
<00:17:03.845>you <00:17:04.045>can <00:17:04.245>put <00:17:04.444>it <00:17:04.645>on <00:17:04.845>all <00:17:05.045>these <00:17:05.245>devices

298
00:17:07.445 --> 00:17:11.665
<00:17:07.444>and <00:17:07.585>you're <00:17:07.724>still <00:17:07.865>close <00:17:08.004>to <00:17:08.145>hardware, <00:17:08.284>you <00:17:08.425>still <00:17:08.564>can <00:17:08.704>be <00:17:08.845>fast,

299
00:17:12.005 --> 00:17:15.105
<00:17:12.005>you're <00:17:12.132>still <00:17:12.259>under <00:17:12.386>the <00:17:12.514>full <00:17:12.641>control <00:17:12.768>of <00:17:12.895>what <00:17:13.023>you <00:17:13.150>like <00:17:13.277>to <00:17:13.405>do.

300
00:17:15.485 --> 00:17:18.425
<00:17:15.484>But <00:17:15.640>you <00:17:15.796>can <00:17:15.951>also <00:17:16.107>add <00:17:16.262>abstraction, <00:17:16.418>which <00:17:16.573>we'll <00:17:16.729>see <00:17:16.885>later

301
00:17:21.485 --> 00:17:25.915
<00:17:21.484>maybe <00:17:21.625>because <00:17:21.764>of <00:17:21.905>its <00:17:22.044>uh, <00:17:22.185>more <00:17:22.324>than <00:17:22.464>30 <00:17:22.604>years <00:17:22.744>of <00:17:22.885>history.

302
00:17:27.035 --> 00:17:29.635
<00:17:27.035>C <00:17:27.210>plus <00:17:27.385>plus <00:17:27.560>comes <00:17:27.735>with <00:17:27.910>a <00:17:28.085>very <00:17:28.260>large <00:17:28.435>ecosystem.

303
00:17:30.295 --> 00:17:35.155
<00:17:30.295>So <00:17:30.450>you <00:17:30.606>find <00:17:30.761>libraries, <00:17:30.917>you <00:17:31.072>find <00:17:31.228>textbooks, <00:17:31.383>you <00:17:31.539>find <00:17:31.695>experts

304
00:17:35.325 --> 00:17:39.075
<00:17:35.325>among <00:17:35.558>the <00:17:35.791>world <00:17:36.025>which <00:17:36.258>can <00:17:36.491>train <00:17:36.725>you,

305
00:17:39.075 --> 00:17:42.755
<00:17:39.075>which <00:17:39.191>can <00:17:39.308>educate <00:17:39.425>you <00:17:39.541>in <00:17:39.658>c <00:17:39.775>plus <00:17:39.891>plus, <00:17:40.008>which <00:17:40.125>you <00:17:40.241>can <00:17:40.358>hire <00:17:40.475>for

306
00:17:43.365 --> 00:17:46.635
<00:17:43.365>consulting, <00:17:43.598>for <00:17:43.831>development <00:17:44.065>in <00:17:44.298>c <00:17:44.531>plus <00:17:44.765>plus

307
00:17:46.645 --> 00:17:47.795
<00:17:46.645>added <00:17:46.990>to <00:17:47.335>your <00:17:47.680>team.

308
00:17:49.385 --> 00:17:51.765
<00:17:49.385>The <00:17:49.560>libraries <00:17:49.735>that <00:17:49.910>are <00:17:50.085>out <00:17:50.260>there, <00:17:50.435>they <00:17:50.610>help <00:17:50.785>you

309
00:17:52.025 --> 00:17:53.765
<00:17:52.025>to <00:17:52.491>develop <00:17:52.958>things <00:17:53.425>quickly

310
00:17:54.315 --> 00:17:58.485
<00:17:54.315>because <00:17:54.548>maybe <00:17:54.781>there's <00:17:55.015>already <00:17:55.248>someone <00:17:55.481>out <00:17:55.715>there

311
00:17:58.585 --> 00:18:02.125
<00:17:58.585>who <00:17:58.725>wrote <00:17:58.865>the <00:17:59.005>library, <00:17:59.145>which <00:17:59.285>you <00:17:59.425>are <00:17:59.565>about <00:17:59.705>to <00:17:59.845>write <00:17:59.985>to,

312
00:18:02.625 --> 00:18:03.885
<00:18:02.625>um, <00:18:02.851>use <00:18:03.078>it <00:18:03.305>in <00:18:03.532>your <00:18:03.759>product.

313
00:18:04.065 --> 00:18:07.525
<00:18:04.065>So <00:18:04.205>if <00:18:04.345>the <00:18:04.485>license <00:18:04.625>fits, <00:18:04.765>you <00:18:04.905>can <00:18:05.045>just <00:18:05.185>use <00:18:05.325>that <00:18:05.465>one.

314
00:18:08.125 --> 00:18:11.845
<00:18:08.125>A <00:18:08.241>lot <00:18:08.358>of <00:18:08.475>the <00:18:08.591>game <00:18:08.708>engines <00:18:08.825>are <00:18:08.941>written <00:18:09.058>in <00:18:09.175>c <00:18:09.291>plus <00:18:09.408>plus, <00:18:09.525>um,

315
00:18:12.075 --> 00:18:15.645
<00:18:12.075>even <00:18:12.250>other <00:18:12.425>newer <00:18:12.600>languages <00:18:12.775>which <00:18:12.950>have <00:18:13.125>the <00:18:13.300>great <00:18:13.475>benefits,

316
00:18:16.965 --> 00:18:20.655
<00:18:16.965>they <00:18:17.139>cannot <00:18:17.314>compete <00:18:17.490>with <00:18:17.665>that <00:18:17.840>because <00:18:18.014>they <00:18:18.189>are <00:18:18.365>new.

317
00:18:22.295 --> 00:18:24.535
<00:18:22.295>Somebody <00:18:22.495>has <00:18:22.695>to <00:18:22.895>develop <00:18:23.095>all <00:18:23.295>that <00:18:23.495>ecosystem <00:18:23.695>around.

318
00:18:25.175 --> 00:18:27.975
<00:18:25.175>C <00:18:25.315>plus <00:18:25.455>plus <00:18:25.595>in <00:18:25.735>all <00:18:25.875>fairness, <00:18:26.014>is <00:18:26.155>is <00:18:26.294>not <00:18:26.435>that <00:18:26.575>good

319
00:18:27.975 --> 00:18:30.575
<00:18:27.975>with <00:18:28.324>dependency <00:18:28.675>management <00:18:29.024>and <00:18:29.375>things.

320
00:18:30.795 --> 00:18:35.205
<00:18:30.795>So <00:18:30.970>it's <00:18:31.145>getting <00:18:31.320>the <00:18:31.495>right <00:18:31.670>library, <00:18:31.845>getting <00:18:32.020>it <00:18:32.195>compiled.

321
00:18:35.225 --> 00:18:39.365
<00:18:35.225>And <00:18:35.341>so, <00:18:35.458>um, <00:18:35.574>this <00:18:35.691>is <00:18:35.808>nothing <00:18:35.925>that <00:18:36.041>c <00:18:36.158>plus <00:18:36.274>plus <00:18:36.391>is <00:18:36.508>very <00:18:36.625>strong

322
00:18:39.365 --> 00:18:41.925
<00:18:39.365>with, <00:18:39.565>so <00:18:39.765>other <00:18:39.965>languages <00:18:40.165>are <00:18:40.365>much <00:18:40.565>better <00:18:40.765>there.

323
00:18:42.425 --> 00:18:45.605
<00:18:42.425>Um, <00:18:42.705>but <00:18:42.985>we <00:18:43.264>evolve <00:18:43.544>also <00:18:43.825>there

324
00:18:47.105 --> 00:18:51.975
<00:18:47.105>and <00:18:47.260>it <00:18:47.416>depends <00:18:47.571>probably <00:18:47.727>in, <00:18:47.882>in <00:18:48.038>which <00:18:48.193>industry <00:18:48.349>you <00:18:48.505>are.

325
00:18:52.195 --> 00:18:56.415
<00:18:52.195>Um, <00:18:52.311>I <00:18:52.428>worked <00:18:52.544>for <00:18:52.661>a <00:18:52.778>very <00:18:52.895>long <00:18:53.011>time <00:18:53.128>in <00:18:53.245>in <00:18:53.361>the <00:18:53.478>medical <00:18:53.595>sector

326
00:18:57.355 --> 00:19:01.845
<00:18:57.355>and <00:18:57.705>backwards <00:18:58.055>compatibility <00:18:58.405>is <00:18:58.755>highly,

327
00:19:02.545 --> 00:19:04.645
<00:19:02.545>highly <00:19:02.895>wanted <00:19:03.245>there <00:19:03.595>and <00:19:03.945>needed

328
00:19:05.545 --> 00:19:07.205
<00:19:05.545>and <00:19:05.895>c <00:19:06.245>plus <00:19:06.595>plus <00:19:06.945>comes

329
00:19:07.275 --> 00:19:10.245
<00:19:07.275>with <00:19:07.555>an <00:19:07.835>incredible <00:19:08.115>backwards <00:19:08.395>compatibility <00:19:08.675>record.

330
00:19:11.145 --> 00:19:13.325
<00:19:11.145>So, <00:19:11.495>um, <00:19:11.845>I <00:19:12.195>know <00:19:12.545>that

331
00:19:13.915 --> 00:19:18.205
<00:19:13.915>some <00:19:14.090>compilers <00:19:14.264>still <00:19:14.440>support <00:19:14.615>the <00:19:14.790>earliest <00:19:14.965>c <00:19:15.139>plus <00:19:15.315>plus.

332
00:19:18.665 --> 00:19:20.485
<00:19:18.665>Um, <00:19:18.945>you <00:19:19.225>could <00:19:19.504>write <00:19:19.784>their <00:19:20.065>rules.

333
00:19:21.145 --> 00:19:24.805
<00:19:21.145>So <00:19:21.345>they <00:19:21.545>basically <00:19:21.745>go <00:19:21.945>back <00:19:22.145>to <00:19:22.345>C <00:19:22.545>front,

334
00:19:25.165 --> 00:19:27.205
<00:19:25.165>I <00:19:25.445>think <00:19:25.725>it <00:19:26.004>was <00:19:26.284>2.0, <00:19:26.565>um,

335
00:19:27.575 --> 00:19:30.605
<00:19:27.575>where <00:19:27.775>they <00:19:27.975>still <00:19:28.175>have <00:19:28.375>customers <00:19:28.575>maintaining <00:19:28.775>that <00:19:28.975>code

336
00:19:32.015 --> 00:19:33.025
<00:19:32.015>because <00:19:32.469>it <00:19:32.924>works.

337
00:19:33.845 --> 00:19:37.985
<00:19:33.845>Why <00:19:34.000>shall <00:19:34.156>we <00:19:34.311>change <00:19:34.467>code <00:19:34.622>that <00:19:34.778>runs <00:19:34.933>for <00:19:35.089>30 <00:19:35.245>years?

338
00:19:38.365 --> 00:19:42.885
<00:19:38.365>If <00:19:38.492>it <00:19:38.619>still <00:19:38.746>works, <00:19:38.874>don't <00:19:39.001>change <00:19:39.128>it. <00:19:39.255>And <00:19:39.383>you <00:19:39.510>can <00:19:39.637>do <00:19:39.765>that.

339
00:19:44.005 --> 00:19:48.065
<00:19:44.005>You <00:19:44.160>can <00:19:44.316>use <00:19:44.471>old <00:19:44.627>libraries, <00:19:44.782>uh, <00:19:44.938>written <00:19:45.093>10 <00:19:45.249>years <00:19:45.405>ago,

340
00:19:48.165 --> 00:19:49.225
<00:19:48.165>20 <00:19:48.641>years <00:19:49.119>ago

341
00:19:49.685 --> 00:19:53.865
<00:19:49.685>and <00:19:49.825>link <00:19:49.965>it <00:19:50.105>to <00:19:50.245>your <00:19:50.385>newest <00:19:50.524>code, <00:19:50.665>compile <00:19:50.804>it <00:19:50.945>with <00:19:51.085>uh,

342
00:19:54.185 --> 00:19:55.465
<00:19:54.185>a <00:19:54.569>more <00:19:54.953>recent <00:19:55.337>compiler.

343
00:19:55.465 --> 00:20:00.425
<00:19:55.465>It's <00:19:55.639>backwards <00:19:55.814>comparable <00:19:55.990>with <00:19:56.165>few <00:19:56.340>exceptions <00:19:56.514>of <00:19:56.689>course, <00:19:56.865>but

344
00:20:00.425 --> 00:20:02.065
<00:20:00.425>and <00:20:00.705>large <00:20:00.985>you <00:20:01.264>can <00:20:01.544>do <00:20:01.825>that

345
00:20:03.045 --> 00:20:05.245
<00:20:03.045>and <00:20:03.511>that's <00:20:03.978>highly <00:20:04.445>interesting

346
00:20:05.385 --> 00:20:09.045
<00:20:05.385>for <00:20:05.540>all <00:20:05.696>the <00:20:05.851>industries <00:20:06.007>which <00:20:06.162>have <00:20:06.318>to <00:20:06.473>maintain <00:20:06.629>their <00:20:06.785>code

347
00:20:09.065 --> 00:20:11.645
<00:20:09.065>or <00:20:09.298>their <00:20:09.531>devices <00:20:09.765>for <00:20:09.998>very <00:20:10.231>long <00:20:10.465>time.

348
00:20:12.305 --> 00:20:15.845
<00:20:12.305>If <00:20:12.480>you <00:20:12.655>as <00:20:12.830>a <00:20:13.005>car <00:20:13.180>manufacturer <00:20:13.355>guarantee <00:20:13.530>your <00:20:13.705>customers

349
00:20:16.195 --> 00:20:19.045
<00:20:16.195>that <00:20:16.475>the <00:20:16.754>car <00:20:17.034>runs <00:20:17.314>for <00:20:17.595>10

350
00:20:19.105 --> 00:20:23.525
<00:20:19.105>or <00:20:19.245>20 <00:20:19.385>years, <00:20:19.525>then <00:20:19.665>we <00:20:19.805>have <00:20:19.945>to <00:20:20.085>be <00:20:20.225>somehow <00:20:20.365>backwards <00:20:20.505>computable

351
00:20:23.835 --> 00:20:26.445
<00:20:23.835>because <00:20:24.068>well, <00:20:24.301>you <00:20:24.535>don't <00:20:24.768>want <00:20:25.001>to <00:20:25.235>develop

352
00:20:26.515 --> 00:20:31.165
<00:20:26.515>that <00:20:26.715>entire <00:20:26.915>car <00:20:27.115>software <00:20:27.315>system <00:20:27.515>every <00:20:27.715>10 <00:20:27.915>years

353
00:20:32.425 --> 00:20:37.155
<00:20:32.425>from <00:20:32.565>scratch <00:20:32.705>and <00:20:32.845>it <00:20:32.985>still <00:20:33.125>runs <00:20:33.264>on <00:20:33.405>systems <00:20:33.544>10 <00:20:33.685>years <00:20:33.825>ago.

354
00:20:37.625 --> 00:20:40.995
<00:20:37.625>Usually <00:20:37.780>we <00:20:37.936>need <00:20:38.091>more <00:20:38.247>resources <00:20:38.402>so <00:20:38.558>that <00:20:38.713>will <00:20:38.869>not <00:20:39.025>work.

355
00:20:41.415 --> 00:20:45.745
<00:20:41.415>So <00:20:41.590>the <00:20:41.764>backward <00:20:41.940>compatibility <00:20:42.115>is <00:20:42.290>a <00:20:42.465>important <00:20:42.639>factor <00:20:42.815>here.

356
00:20:46.245 --> 00:20:50.155
<00:20:46.245>So <00:20:46.594>availability <00:20:46.945>in <00:20:47.294>general <00:20:47.645>is

357
00:20:50.185 --> 00:20:51.835
<00:20:50.185>what <00:20:50.465>c <00:20:50.745>plus <00:20:51.024>plus <00:20:51.304>brings <00:20:51.585>you.

358
00:20:52.225 --> 00:20:54.355
<00:20:52.225>It's <00:20:52.425>there <00:20:52.625>you <00:20:52.824>find <00:20:53.024>somebody <00:20:53.225>to <00:20:53.425>talk <00:20:53.625>to,

359
00:20:54.535 --> 00:20:58.875
<00:20:54.535>you <00:20:54.690>si <00:20:54.846>find <00:20:55.001>somebody <00:20:55.157>who <00:20:55.312>already <00:20:55.468>has <00:20:55.623>seen <00:20:55.779>that <00:20:55.935>um,

360
00:20:59.165 --> 00:21:00.955
<00:20:59.165>issue <00:20:59.445>you <00:20:59.725>are <00:21:00.004>currently <00:21:00.284>dealing <00:21:00.565>with

361
00:21:00.975 --> 00:21:02.275
<00:21:00.975>or <00:21:01.208>has <00:21:01.443>a <00:21:01.677>solution <00:21:01.911>for <00:21:02.145>it.

362
00:21:02.625 --> 00:21:05.025
<00:21:02.625>This <00:21:03.091>is <00:21:03.558>tremendously <00:21:04.025>helpful.

363
00:21:07.775 --> 00:21:12.255
<00:21:07.775>I <00:21:07.975>already <00:21:08.175>said <00:21:08.375>abstraction <00:21:08.575>and <00:21:08.775>close <00:21:08.975>to <00:21:09.175>hardware.

364
00:21:12.615 --> 00:21:15.935
<00:21:12.615>C <00:21:12.742>plus <00:21:12.869>plus <00:21:12.996>brings <00:21:13.124>you <00:21:13.251>both. <00:21:13.378>No, <00:21:13.505>this <00:21:13.633>is <00:21:13.760>our <00:21:13.887>second <00:21:14.015>fact.

365
00:21:17.985 --> 00:21:19.645
<00:21:17.985>You <00:21:18.264>can <00:21:18.544>be <00:21:18.824>close <00:21:19.104>to <00:21:19.385>hardware,

366
00:21:19.705 --> 00:21:21.765
<00:21:19.705>but <00:21:19.985>you <00:21:20.264>also <00:21:20.544>can <00:21:20.824>add <00:21:21.105>abstractions.

367
00:21:22.105 --> 00:21:26.525
<00:21:22.105>And <00:21:22.280>my <00:21:22.455>example <00:21:22.630>here <00:21:22.805>is <00:21:22.980>and <00:21:23.155>versus <00:21:23.330>end, <00:21:23.505>end

368
00:21:26.545 --> 00:21:28.285
<00:21:26.545>or <00:21:27.011>ref <00:21:27.478>versus <00:21:27.945>ref.

369
00:21:28.345 --> 00:21:31.395
<00:21:28.345>Ref, <00:21:28.625>the <00:21:28.905>first <00:21:29.185>form <00:21:29.465>is <00:21:29.745>binary,

370
00:21:32.015 --> 00:21:33.875
<00:21:32.015>the <00:21:32.365>second <00:21:32.715>one <00:21:33.065>is <00:21:33.415>bullion.

371
00:21:34.725 --> 00:21:37.385
<00:21:34.725>So <00:21:34.899>in <00:21:35.074>c <00:21:35.250>plus <00:21:35.425>plus <00:21:35.600>you <00:21:35.774>can <00:21:35.949>express <00:21:36.125>both.

372
00:21:38.325 --> 00:21:42.025
<00:21:38.325>You <00:21:38.525>can <00:21:38.725>work <00:21:38.925>with <00:21:39.125>bits <00:21:39.325>in <00:21:39.525>your <00:21:39.725>integer,

373
00:21:42.365 --> 00:21:43.425
<00:21:42.365>you <00:21:42.683>can <00:21:43.001>flip <00:21:43.319>them

374
00:21:43.895 --> 00:21:48.585
<00:21:43.895>because <00:21:44.035>you <00:21:44.175>are <00:21:44.315>using <00:21:44.455>them <00:21:44.595>as <00:21:44.735>a <00:21:44.875>mirror <00:21:45.014>to <00:21:45.155>a <00:21:45.295>register

375
00:21:49.415 --> 00:21:53.635
<00:21:49.415>can <00:21:49.555>flip <00:21:49.695>them <00:21:49.835>single <00:21:49.975>bit <00:21:50.115>wise, <00:21:50.254>multiple <00:21:50.395>bits <00:21:50.534>if <00:21:50.675>you <00:21:50.815>like.

376
00:21:55.055 --> 00:21:57.555
<00:21:55.055>You <00:21:55.255>don't <00:21:55.455>have <00:21:55.655>to <00:21:55.855>modify <00:21:56.055>the <00:21:56.255>entire <00:21:56.455>indigent,

377
00:21:57.555 --> 00:21:59.035
<00:21:57.555>you <00:21:57.888>can <00:21:58.221>only <00:21:58.554>flip <00:21:58.887>bits.

378
00:21:59.255 --> 00:22:01.155
<00:21:59.255>And <00:21:59.488>then <00:21:59.721>of <00:21:59.955>course <00:22:00.188>as <00:22:00.421>probably <00:22:00.655>every

379
00:22:01.705 --> 00:22:03.635
<00:22:01.705>programming <00:22:02.054>language <00:22:02.405>on <00:22:02.754>this <00:22:03.105>planet,

380
00:22:04.415 --> 00:22:06.355
<00:22:04.415>you <00:22:04.764>can <00:22:05.115>express <00:22:05.465>bullion <00:22:05.815>conditions.

381
00:22:06.655 --> 00:22:09.755
<00:22:06.655>You <00:22:06.855>can <00:22:07.055>say <00:22:07.254>A <00:22:07.455>and <00:22:07.655>B <00:22:07.855>or <00:22:08.055>C,

382
00:22:12.985 --> 00:22:15.845
<00:22:12.985>but <00:22:13.140>you <00:22:13.296>can <00:22:13.451>also <00:22:13.607>go <00:22:13.762>down <00:22:13.918>to <00:22:14.073>the <00:22:14.229>bit <00:22:14.385>level.

383
00:22:16.425 --> 00:22:19.685
<00:22:16.425>And <00:22:16.625>that's <00:22:16.825>something <00:22:17.024>not <00:22:17.225>all <00:22:17.425>languages <00:22:17.625>provide <00:22:17.825>you

384
00:22:20.105 --> 00:22:23.485
<00:22:20.105>for <00:22:20.280>good <00:22:20.455>reasons <00:22:20.630>probably, <00:22:20.805>but <00:22:20.980>c <00:22:21.155>plus <00:22:21.330>plus <00:22:21.505>does.

385
00:22:26.295 --> 00:22:29.995
<00:22:26.295>The <00:22:26.495>other <00:22:26.695>part <00:22:26.895>of <00:22:27.095>extraction <00:22:27.295>is <00:22:27.495>what, <00:22:27.695>um,

386
00:22:30.045 --> 00:22:32.875
<00:22:30.045>other <00:22:30.278>programming <00:22:30.511>languages <00:22:30.745>of <00:22:30.978>course <00:22:31.211>also <00:22:31.445>have.

387
00:22:34.375 --> 00:22:36.115
<00:22:34.375>We <00:22:34.841>can <00:22:35.308>encapsulate <00:22:35.775>things.

388
00:22:36.215 --> 00:22:40.675
<00:22:36.215>So <00:22:36.331>here <00:22:36.448>I <00:22:36.564>have <00:22:36.681>a <00:22:36.798>very <00:22:36.915>simple <00:22:37.031>hello <00:22:37.148>world <00:22:37.264>in <00:22:37.381>c <00:22:37.498>plus <00:22:37.615>plus

389
00:22:41.745 --> 00:22:42.925
<00:22:41.745>it <00:22:42.275>uses <00:22:42.807>cout

390
00:22:43.945 --> 00:22:48.805
<00:22:43.945>and <00:22:44.120>then <00:22:44.294>a <00:22:44.470>string <00:22:44.645>literal <00:22:44.820>hello <00:22:44.995>C <00:22:45.169>plus <00:22:45.345>plus

391
00:22:50.105 --> 00:22:54.165
<00:22:50.105>and <00:22:50.338>that <00:22:50.571>run <00:22:50.805>gets <00:22:51.038>passed <00:22:51.271>to <00:22:51.505>cout.

392
00:22:54.385 --> 00:22:58.365
<00:22:54.385>And <00:22:54.560>then <00:22:54.735>we <00:22:54.910>are <00:22:55.085>passing <00:22:55.260>end <00:22:55.435>L <00:22:55.610>which <00:22:55.785>stands

393
00:22:58.425 --> 00:23:00.405
<00:22:58.425>for <00:22:58.891>endline <00:22:59.358>in <00:22:59.825>it.

394
00:23:00.785 --> 00:23:03.445
<00:23:00.785>And <00:23:01.065>we <00:23:01.345>don't <00:23:01.625>need <00:23:01.905>to <00:23:02.185>know

395
00:23:05.045 --> 00:23:07.755
<00:23:05.045>where <00:23:05.325>Cout <00:23:05.605>writes <00:23:05.885>our <00:23:06.165>string <00:23:06.445>to.

396
00:23:08.295 --> 00:23:11.275
<00:23:08.295>We <00:23:08.450>don't <00:23:08.606>need <00:23:08.761>to <00:23:08.917>worry <00:23:09.072>about <00:23:09.228>how <00:23:09.383>to <00:23:09.539>implement <00:23:09.695>this.

397
00:23:11.735 --> 00:23:14.195
<00:23:11.735>Is <00:23:11.909>it <00:23:12.084>a <00:23:12.260>terminal? <00:23:12.435>Is <00:23:12.610>it <00:23:12.784>a <00:23:12.959>serial <00:23:13.135>interface?

398
00:23:15.955 --> 00:23:20.415
<00:23:15.955>We <00:23:16.095>are <00:23:16.235>just <00:23:16.375>writing <00:23:16.514>it <00:23:16.655>to <00:23:16.794>our <00:23:16.935>outstream, <00:23:17.074>whatever <00:23:17.215>that <00:23:17.355>is.

399
00:23:21.075 --> 00:23:24.935
<00:23:21.075>And <00:23:21.250>the <00:23:21.425>abstraction <00:23:21.600>behind <00:23:21.775>it <00:23:21.950>makes <00:23:22.125>it <00:23:22.300>work, <00:23:22.475>okay.

400
00:23:25.195 --> 00:23:28.495
<00:23:25.195>But <00:23:25.302>if <00:23:25.410>you <00:23:25.518>like, <00:23:25.625>we <00:23:25.733>we <00:23:25.841>can <00:23:25.948>also <00:23:26.056>go <00:23:26.164>down <00:23:26.271>there <00:23:26.379>and <00:23:26.487>say, <00:23:26.595>hey,

401
00:23:28.495 --> 00:23:30.215
<00:23:28.495>because <00:23:28.844>it's <00:23:29.195>a <00:23:29.544>serial <00:23:29.895>communication,

402
00:23:30.715 --> 00:23:33.495
<00:23:30.715>we <00:23:30.915>can <00:23:31.115>do <00:23:31.314>things <00:23:31.514>differently <00:23:31.715>for <00:23:31.915>more <00:23:32.115>speed,

403
00:23:33.515 --> 00:23:36.175
<00:23:33.515>for <00:23:33.795>more <00:23:34.075>robustness, <00:23:34.355>whatever <00:23:34.635>we <00:23:34.915>like,

404
00:23:36.805 --> 00:23:40.925
<00:23:36.805>it's <00:23:37.155>in <00:23:37.505>our <00:23:37.855>hands <00:23:38.205>abstraction.

405
00:23:43.095 --> 00:23:46.325
<00:23:43.095>If <00:23:43.250>you <00:23:43.406>like <00:23:43.561>the <00:23:43.717>abstraction <00:23:43.872>more <00:23:44.028>to <00:23:44.183>the <00:23:44.339>bit <00:23:44.495>level

406
00:23:46.465 --> 00:23:49.125
<00:23:46.465>or <00:23:46.639>to <00:23:46.814>the <00:23:46.990>register <00:23:47.165>level, <00:23:47.340>then <00:23:47.514>we <00:23:47.689>can <00:23:47.865>do

407
00:23:49.125 --> 00:23:50.125
<00:23:49.125>with <00:23:49.425>something <00:23:49.725>like <00:23:50.025>this.

408
00:23:50.785 --> 00:23:52.405
<00:23:50.785>And <00:23:51.135>this <00:23:51.485>is <00:23:51.835>very <00:23:52.185>close

409
00:23:52.585 --> 00:23:54.965
<00:23:52.585>to <00:23:52.785>C <00:23:52.985>here <00:23:53.185>you <00:23:53.385>can <00:23:53.585>see <00:23:53.785>the <00:23:53.985>similarities

410
00:23:54.965 --> 00:23:56.765
<00:23:54.965>between <00:23:55.245>C <00:23:55.524>and <00:23:55.804>c <00:23:56.084>plus <00:23:56.365>plus.

411
00:23:56.785 --> 00:23:57.885
<00:23:56.785>And <00:23:57.115>the <00:23:57.445>only <00:23:57.775>difference

412
00:23:58.145 --> 00:24:01.405
<00:23:58.145>or <00:23:58.285>the <00:23:58.425>only <00:23:58.565>thing <00:23:58.705>that <00:23:58.845>makes <00:23:58.985>um, <00:23:59.125>this <00:23:59.264>code <00:23:59.405>snippet <00:23:59.545>here,

413
00:24:02.045 --> 00:24:05.525
<00:24:02.045>c <00:24:02.161>plus <00:24:02.278>plus <00:24:02.395>is <00:24:02.511>in <00:24:02.628>line <00:24:02.745>number <00:24:02.861>two, <00:24:02.978>the <00:24:03.095>re <00:24:03.211>the <00:24:03.328>bread <00:24:03.445>cast.

414
00:24:06.145 --> 00:24:09.045
<00:24:06.145>Um, <00:24:06.285>this <00:24:06.425>is <00:24:06.565>a <00:24:06.705>c <00:24:06.845>plus <00:24:06.985>plus <00:24:07.125>style <00:24:07.264>cast <00:24:07.405>in <00:24:07.545>C,

415
00:24:09.425 --> 00:24:14.045
<00:24:09.425>you <00:24:09.600>would <00:24:09.774>just <00:24:09.950>name <00:24:10.125>the <00:24:10.300>type, <00:24:10.475>um, <00:24:10.649>in <00:24:10.825>parentheses

416
00:24:14.185 --> 00:24:15.605
<00:24:14.185>and <00:24:14.610>that's <00:24:15.037>your <00:24:15.463>cast.

417
00:24:16.465 --> 00:24:18.325
<00:24:16.465>So, <00:24:16.698>but <00:24:16.931>what <00:24:17.165>we <00:24:17.398>have <00:24:17.631>here <00:24:17.865>is

418
00:24:18.435 --> 00:24:21.725
<00:24:18.435>that <00:24:18.590>we <00:24:18.746>basically <00:24:18.901>say <00:24:19.057>we <00:24:19.212>have <00:24:19.368>a <00:24:19.523>eight <00:24:19.679>bit <00:24:19.835>register

419
00:24:22.705 --> 00:24:26.125
<00:24:22.705>and <00:24:22.845>this <00:24:22.985>is <00:24:23.125>at <00:24:23.264>the <00:24:23.405>address <00:24:23.544>given <00:24:23.685>in <00:24:23.824>line <00:24:23.965>number <00:24:24.105>two.

420
00:24:27.065 --> 00:24:31.485
<00:24:27.065>And <00:24:27.240>we <00:24:27.415>like <00:24:27.590>our <00:24:27.765>pointer <00:24:27.940>here, <00:24:28.115>our <00:24:28.290>user <00:24:28.465>zero

421
00:24:32.135 --> 00:24:35.405
<00:24:32.135>being <00:24:32.335>initialized <00:24:32.535>with <00:24:32.735>the <00:24:32.935>address <00:24:33.135>of <00:24:33.335>that <00:24:33.535>register.

422
00:24:35.665 --> 00:24:40.565
<00:24:35.665>So <00:24:35.805>my <00:24:35.945>variable <00:24:36.085>user <00:24:36.225>zero <00:24:36.365>points <00:24:36.504>to <00:24:36.645>that <00:24:36.784>register <00:24:36.925>and <00:24:37.065>reads.

423
00:24:41.625 --> 00:24:45.485
<00:24:41.625>That's <00:24:41.780>the <00:24:41.936>reason <00:24:42.091>why <00:24:42.247>we <00:24:42.402>need <00:24:42.558>this <00:24:42.713>volatile <00:24:42.869>keyword <00:24:43.025>here.

424
00:24:45.785 --> 00:24:48.725
<00:24:45.785>It <00:24:45.940>comes <00:24:46.096>from <00:24:46.251>C <00:24:46.407>and <00:24:46.562>it <00:24:46.718>practically <00:24:46.873>tells <00:24:47.029>the <00:24:47.185>compiler

425
00:24:48.795 --> 00:24:52.295
<00:24:48.795>that <00:24:48.970>it <00:24:49.145>has <00:24:49.320>to <00:24:49.495>read <00:24:49.670>and <00:24:49.845>write <00:24:50.020>this <00:24:50.195>address

426
00:24:52.435 --> 00:24:55.535
<00:24:52.435>or <00:24:52.590>the <00:24:52.746>data <00:24:52.901>behind <00:24:53.057>this <00:24:53.212>address <00:24:53.368>each <00:24:53.523>and <00:24:53.679>every <00:24:53.835>time.

427
00:24:55.795 --> 00:24:59.815
<00:24:55.795>No <00:24:55.950>optimizations, <00:24:56.106>no <00:24:56.261>caching <00:24:56.417>a <00:24:56.572>lot <00:24:56.728>because <00:24:56.883>it's <00:24:57.039>a <00:24:57.195>register.

428
00:25:00.465 --> 00:25:04.375
<00:25:00.465>Maybe <00:25:00.698>it's <00:25:00.931>changed <00:25:01.165>by <00:25:01.398>the <00:25:01.631>outside <00:25:01.865>world

429
00:25:04.375 --> 00:25:08.015
<00:25:04.375>because <00:25:04.530>an <00:25:04.686>interrupt <00:25:04.841>happened <00:25:04.997>and <00:25:05.152>the <00:25:05.308>interrupt <00:25:05.463>flag <00:25:05.619>is <00:25:05.775>set.

430
00:25:08.485 --> 00:25:12.095
<00:25:08.485>This <00:25:08.718>doesn't <00:25:08.951>happen, <00:25:09.185>um, <00:25:09.418>within <00:25:09.651>the <00:25:09.885>program,

431
00:25:12.315 --> 00:25:13.415
<00:25:12.315>it <00:25:12.645>happens <00:25:12.975>from <00:25:13.305>outside.

432
00:25:13.435 --> 00:25:14.975
<00:25:13.435>And <00:25:13.781>compilers <00:25:14.128>wouldn't <00:25:14.474>see <00:25:14.821>this

433
00:25:15.555 --> 00:25:18.175
<00:25:15.555>and <00:25:15.730>they <00:25:15.905>would <00:25:16.080>say, <00:25:16.255>Hey, <00:25:16.430>there <00:25:16.605>is <00:25:16.780>no <00:25:16.955>change

434
00:25:18.175 --> 00:25:21.935
<00:25:18.175>because <00:25:18.350>you <00:25:18.524>haven't <00:25:18.700>changed <00:25:18.875>um, <00:25:19.050>that <00:25:19.225>specific <00:25:19.399>memory <00:25:19.575>region.

435
00:25:22.675 --> 00:25:26.855
<00:25:22.675>But <00:25:22.850>volatile <00:25:23.024>tells <00:25:23.200>the <00:25:23.375>compiler, <00:25:23.550>no, <00:25:23.725>um, <00:25:23.899>please <00:25:24.075>read

436
00:25:26.875 --> 00:25:30.375
<00:25:26.875>and <00:25:27.015>write <00:25:27.155>it <00:25:27.295>every <00:25:27.435>time <00:25:27.575>because <00:25:27.715>it <00:25:27.855>changes <00:25:27.995>from <00:25:28.135>the <00:25:28.275>outside.

437
00:25:30.955 --> 00:25:34.815
<00:25:30.955>And <00:25:31.071>then <00:25:31.188>in <00:25:31.304>line <00:25:31.421>number <00:25:31.538>four <00:25:31.655>we <00:25:31.771>can <00:25:31.888>say <00:25:32.004>that, <00:25:32.121>um, <00:25:32.238>we <00:25:32.355>like

438
00:25:34.815 --> 00:25:38.935
<00:25:34.815>to <00:25:34.970>flip <00:25:35.126>a <00:25:35.281>bit <00:25:35.437>in <00:25:35.592>that <00:25:35.748>register <00:25:35.903>with <00:25:36.059>number <00:25:36.215>four.

439
00:25:39.035 --> 00:25:40.615
<00:25:39.035>We <00:25:39.235>like <00:25:39.435>to <00:25:39.635>set <00:25:39.835>it <00:25:40.035>to <00:25:40.235>one <00:25:40.435>and

440
00:25:40.615 --> 00:25:42.815
<00:25:40.615>and <00:25:40.815>leave <00:25:41.015>the <00:25:41.215>others <00:25:41.415>intact <00:25:41.615>as <00:25:41.815>they <00:25:42.015>are.

441
00:25:43.315 --> 00:25:47.335
<00:25:43.315>And <00:25:43.470>we <00:25:43.626>assign, <00:25:43.781>um, <00:25:43.937>that <00:25:44.092>whole <00:25:44.248>thing <00:25:44.403>to <00:25:44.559>the <00:25:44.715>value

442
00:25:47.355 --> 00:25:51.495
<00:25:47.355>of <00:25:47.588>this <00:25:47.821>register <00:25:48.055>effectively <00:25:48.288>modifying <00:25:48.521>this <00:25:48.755>register,

443
00:25:51.725 --> 00:25:56.215
<00:25:51.725>setting <00:25:51.899>that <00:25:52.074>single <00:25:52.250>bit <00:25:52.425>at <00:25:52.600>position <00:25:52.774>four <00:25:52.949>to <00:25:53.125>one.

444
00:25:58.095 --> 00:26:02.475
<00:25:58.095>You <00:25:58.211>can <00:25:58.328>do <00:25:58.445>that <00:25:58.561>and <00:25:58.678>you <00:25:58.795>can <00:25:58.911>write <00:25:59.028>it <00:25:59.145>a <00:25:59.261>little <00:25:59.378>bit <00:25:59.495>nicer.

445
00:26:02.655 --> 00:26:07.035
<00:26:02.655>Of <00:26:02.795>course <00:26:02.935>the <00:26:03.075>magic <00:26:03.215>numbers <00:26:03.355>here, <00:26:03.495>uh, <00:26:03.635>well <00:26:03.774>they <00:26:03.915>are <00:26:04.055>not

446
00:26:07.035 --> 00:26:09.755
<00:26:07.035>so <00:26:07.210>nice, <00:26:07.385>but <00:26:07.560>even <00:26:07.735>with <00:26:07.910>all <00:26:08.085>the <00:26:08.260>magic <00:26:08.435>numbers,

447
00:26:10.625 --> 00:26:12.915
<00:26:10.625>it's <00:26:10.905>probably <00:26:11.185>hard <00:26:11.465>to <00:26:11.745>read <00:26:12.025>code

448
00:26:13.455 --> 00:26:15.955
<00:26:13.455>and <00:26:13.921>maybe <00:26:14.388>you, <00:26:14.855>um,

449
00:26:16.105 --> 00:26:18.675
<00:26:16.105>find <00:26:16.338>yourself <00:26:16.571>at <00:26:16.805>some <00:26:17.038>point <00:26:17.271>forgetting <00:26:17.505>the

450
00:26:18.915 --> 00:26:20.195
<00:26:18.915>volatile <00:26:19.299>and <00:26:19.683>then <00:26:20.067>debugging.

451
00:26:20.335 --> 00:26:23.515
<00:26:20.335>Why <00:26:20.510>the <00:26:20.685>heck <00:26:20.860>doesn't <00:26:21.035>my <00:26:21.210>code <00:26:21.385>see <00:26:21.560>the <00:26:21.735>change?

452
00:26:23.615 --> 00:26:24.875
<00:26:23.615>The <00:26:23.993>C <00:26:24.371>view <00:26:24.749>announces.

453
00:26:25.535 --> 00:26:27.275
<00:26:25.535>So <00:26:25.768>you <00:26:26.001>can <00:26:26.235>add <00:26:26.468>abstraction <00:26:26.701>to <00:26:26.935>it

454
00:26:27.275 --> 00:26:28.795
<00:26:27.275>because <00:26:27.503>if <00:26:27.731>you <00:26:27.959>use <00:26:28.187>it <00:26:28.415>more <00:26:28.643>often

455
00:26:29.495 --> 00:26:32.915
<00:26:29.495>or <00:26:29.669>if <00:26:29.844>you <00:26:30.020>have <00:26:30.195>users <00:26:30.370>which <00:26:30.544>should <00:26:30.719>do <00:26:30.895>that,

456
00:26:33.055 --> 00:26:36.955
<00:26:33.055>but <00:26:33.255>um, <00:26:33.455>they <00:26:33.655>don't <00:26:33.855>necessarily <00:26:34.055>like <00:26:34.255>to <00:26:34.455>deal

457
00:26:37.055 --> 00:26:41.355
<00:26:37.055>or <00:26:37.182>should <00:26:37.309>have <00:26:37.436>to <00:26:37.564>deal <00:26:37.691>with <00:26:37.818>with <00:26:37.945>all <00:26:38.073>the <00:26:38.200>basic <00:26:38.327>stuff <00:26:38.455>here.

458
00:26:42.215 --> 00:26:45.805
<00:26:42.215>We <00:26:42.331>can <00:26:42.448>write <00:26:42.564>a <00:26:42.681>class, <00:26:42.798>we <00:26:42.915>can <00:26:43.031>write <00:26:43.148>a <00:26:43.264>class <00:26:43.381>called <00:26:43.498>user <00:26:43.615>art.

459
00:26:45.945 --> 00:26:48.805
<00:26:45.945>We <00:26:46.085>create <00:26:46.225>a <00:26:46.365>new <00:26:46.504>object <00:26:46.645>in <00:26:46.784>line <00:26:46.925>number <00:26:47.064>one, <00:26:47.205>user <00:26:47.345>zero,

460
00:26:49.425 --> 00:26:51.085
<00:26:49.425>and <00:26:49.891>then <00:26:50.358>we <00:26:50.825>can,

461
00:26:51.545 --> 00:26:55.205
<00:26:51.545>and <00:26:51.685>that's <00:26:51.825>a <00:26:51.965>cool <00:26:52.105>thing <00:26:52.245>about <00:26:52.385>c <00:26:52.525>plus <00:26:52.665>plus <00:26:52.805>we <00:26:52.945>can

462
00:26:55.485 --> 00:26:56.765
<00:26:55.485>overload <00:26:56.061>the <00:26:56.637>operators.

463
00:26:57.185 --> 00:27:01.085
<00:26:57.185>So <00:26:57.325>what <00:26:57.465>you <00:26:57.605>see <00:26:57.745>here <00:26:57.885>is <00:26:58.024>that <00:26:58.165>we <00:26:58.304>are <00:26:58.445>operate, <00:26:58.585>uh,

464
00:27:01.405 --> 00:27:06.245
<00:27:01.405>overloading <00:27:01.580>in <00:27:01.754>line <00:27:01.930>number <00:27:02.105>two, <00:27:02.280>the <00:27:02.455>operator <00:27:02.629>for <00:27:02.805>bullion

465
00:27:06.345 --> 00:27:10.765
<00:27:06.345>or <00:27:06.695>and <00:27:07.045>directly <00:27:07.395>assign <00:27:07.745>it.

466
00:27:11.305 --> 00:27:14.325
<00:27:11.305>And <00:27:11.445>so <00:27:11.585>this <00:27:11.725>expression <00:27:11.865>on <00:27:12.005>line <00:27:12.145>number <00:27:12.285>two <00:27:12.425>is <00:27:12.565>equal <00:27:12.705>to

467
00:27:14.395 --> 00:27:17.195
<00:27:14.395>what <00:27:14.628>we <00:27:14.861>had <00:27:15.095>before <00:27:15.328>behind <00:27:15.561>the <00:27:15.795>scenes.

468
00:27:17.295 --> 00:27:22.275
<00:27:17.295>We <00:27:17.495>implement <00:27:17.695>the <00:27:17.895>same <00:27:18.095>stuff <00:27:18.295>in <00:27:18.495>this <00:27:18.695>operator.

469
00:27:23.375 --> 00:27:28.155
<00:27:23.375>And <00:27:23.515>then <00:27:23.655>at <00:27:23.795>abstraction <00:27:23.935>level <00:27:24.075>we <00:27:24.215>can <00:27:24.355>use <00:27:24.495>it <00:27:24.635>like <00:27:24.775>here.

470
00:27:28.735 --> 00:27:31.755
<00:27:28.735>If <00:27:28.935>you <00:27:29.135>prefer <00:27:29.334>a <00:27:29.534>more <00:27:29.735>spoken <00:27:29.935>approach, <00:27:30.135>then

471
00:27:31.775 --> 00:27:34.435
<00:27:31.775>of <00:27:31.975>course <00:27:32.175>you <00:27:32.375>can <00:27:32.575>implement <00:27:32.775>your <00:27:32.975>own <00:27:33.175>method.

472
00:27:35.185 --> 00:27:37.455
<00:27:35.185>Let's <00:27:35.360>call <00:27:35.534>it <00:27:35.710>set <00:27:35.885>like <00:27:36.060>in <00:27:36.235>line <00:27:36.409>number <00:27:36.585>four,

473
00:27:37.455 --> 00:27:39.255
<00:27:37.455>which <00:27:37.735>does <00:27:38.014>the <00:27:38.294>exact <00:27:38.574>same <00:27:38.855>thing.

474
00:27:40.185 --> 00:27:42.965
<00:27:40.185>You <00:27:40.418>can <00:27:40.651>provide <00:27:40.885>both <00:27:41.118>if <00:27:41.351>you <00:27:41.585>like.

475
00:27:42.985 --> 00:27:47.315
<00:27:42.985>So <00:27:43.218>this <00:27:43.451>is <00:27:43.685>what <00:27:43.918>you <00:27:44.151>can <00:27:44.385>do

476
00:27:47.315 --> 00:27:49.035
<00:27:47.315>with <00:27:47.595>abstraction <00:27:47.875>in <00:27:48.155>c <00:27:48.435>plus <00:27:48.715>plus.

477
00:27:49.415 --> 00:27:52.595
<00:27:49.415>And <00:27:49.648>one <00:27:49.881>of <00:27:50.115>the, <00:27:50.348>um, <00:27:50.581>exceptional <00:27:50.815>things,

478
00:27:52.695 --> 00:27:55.675
<00:27:52.695>if <00:27:52.835>I <00:27:52.975>look <00:27:53.115>at <00:27:53.254>a <00:27:53.395>couple <00:27:53.534>of <00:27:53.675>our <00:27:53.814>programming <00:27:53.955>languages <00:27:54.095>is

479
00:27:55.675 --> 00:27:59.115
<00:27:55.675>that <00:27:55.875>you <00:27:56.075>can <00:27:56.274>overload <00:27:56.475>operators <00:27:56.675>both <00:27:56.875>in <00:27:57.075>operators.

480
00:27:59.135 --> 00:28:02.035
<00:27:59.135>Not <00:27:59.310>all <00:27:59.485>programming <00:27:59.660>languages <00:27:59.835>allow <00:28:00.010>us <00:28:00.185>to <00:28:00.360>do <00:28:00.535>that

481
00:28:02.615 --> 00:28:04.275
<00:28:02.615>for <00:28:02.895>good <00:28:03.175>reasons <00:28:03.455>for <00:28:03.735>this <00:28:04.015>language.

482
00:28:04.935 --> 00:28:08.675
<00:28:04.935>But <00:28:05.110>c <00:28:05.284>plus <00:28:05.460>plus <00:28:05.635>allows <00:28:05.810>you <00:28:05.985>to <00:28:06.159>overload <00:28:06.335>nearly,

483
00:28:09.295 --> 00:28:10.635
<00:28:09.295>um, <00:28:09.898>every <00:28:10.501>operator.

484
00:28:10.785 --> 00:28:12.115
<00:28:10.785>There's <00:28:11.383>one <00:28:11.982>exception

485
00:28:13.785 --> 00:28:18.605
<00:28:13.785>and <00:28:13.925>that <00:28:14.065>gives <00:28:14.205>you <00:28:14.345>the <00:28:14.485>ability <00:28:14.625>to <00:28:14.765>to <00:28:14.905>write <00:28:15.045>code, <00:28:15.185>um,

486
00:28:19.115 --> 00:28:20.845
<00:28:19.115>that <00:28:19.395>comes <00:28:19.675>with <00:28:19.955>this <00:28:20.235>abstraction <00:28:20.515>level.

487
00:28:21.585 --> 00:28:25.485
<00:28:21.585>And <00:28:21.818>you <00:28:22.051>can <00:28:22.285>express <00:28:22.518>the <00:28:22.751>same <00:28:22.985>things

488
00:28:26.105 --> 00:28:29.355
<00:28:26.105>as <00:28:26.338>on <00:28:26.571>this <00:28:26.805>slide, <00:28:27.038>but <00:28:27.271>much <00:28:27.505>nicer.

489
00:28:29.775 --> 00:28:31.275
<00:28:29.775>And <00:28:30.112>especially <00:28:30.450>if <00:28:30.787>you <00:28:31.125>have

490
00:28:31.275 --> 00:28:33.515
<00:28:31.275>to <00:28:31.475>repeat <00:28:31.675>this <00:28:31.875>pattern <00:28:32.075>all <00:28:32.275>over <00:28:32.475>the <00:28:32.675>place,

491
00:28:34.155 --> 00:28:36.955
<00:28:34.155>wrapping <00:28:34.295>it <00:28:34.435>in <00:28:34.575>a <00:28:34.715>clause <00:28:34.855>and <00:28:34.995>uh, <00:28:35.135>making <00:28:35.274>this <00:28:35.415>operator <00:28:35.555>here

492
00:28:37.375 --> 00:28:41.435
<00:28:37.375>or <00:28:37.575>your <00:28:37.775>own <00:28:37.975>set <00:28:38.175>function <00:28:38.375>helps <00:28:38.575>very <00:28:38.775>much.

493
00:28:41.775 --> 00:28:43.195
<00:28:41.775>It <00:28:42.030>makes <00:28:42.286>your <00:28:42.541>code <00:28:42.797>more <00:28:43.053>readable

494
00:28:43.615 --> 00:28:46.635
<00:28:43.615>and <00:28:43.965>uh, <00:28:44.315>the <00:28:44.665>maintainability <00:28:45.015>increases.

495
00:28:49.365 --> 00:28:52.335
<00:28:49.365>What <00:28:49.565>else <00:28:49.765>do <00:28:49.965>we <00:28:50.165>have? <00:28:50.365>Static <00:28:50.565>type <00:28:50.765>safety.

496
00:28:52.995 --> 00:28:54.295
<00:28:52.995>Um, <00:28:53.385>that's <00:28:53.775>a <00:28:54.165>feature

497
00:28:54.315 --> 00:28:57.655
<00:28:54.315>that's <00:28:54.595>common <00:28:54.875>in <00:28:55.155>today's <00:28:55.435>programming <00:28:55.715>languages.

498
00:28:59.075 --> 00:29:02.995
<00:28:59.075>Um, <00:28:59.250>script <00:28:59.425>languages <00:28:59.600>on <00:28:59.775>the <00:28:59.950>other <00:29:00.125>hand, <00:29:00.300>they <00:29:00.475>prefer

499
00:29:03.055 --> 00:29:04.715
<00:29:03.055>to <00:29:03.405>be <00:29:03.755>not <00:29:04.105>type <00:29:04.455>safe.

500
00:29:05.015 --> 00:29:09.235
<00:29:05.015>And <00:29:05.190>all <00:29:05.365>the <00:29:05.540>time <00:29:05.715>I <00:29:05.890>am <00:29:06.065>switch <00:29:06.240>to <00:29:06.415>something

501
00:29:09.265 --> 00:29:10.755
<00:29:09.265>that <00:29:09.712>isn't <00:29:10.159>type <00:29:10.606>safe.

502
00:29:11.355 --> 00:29:14.395
<00:29:11.355>I <00:29:11.471>enjoy <00:29:11.588>at <00:29:11.705>the <00:29:11.821>beginning <00:29:11.938>because <00:29:12.055>I <00:29:12.171>can <00:29:12.288>just <00:29:12.405>do <00:29:12.521>what <00:29:12.638>I <00:29:12.755>want

503
00:29:14.975 --> 00:29:17.435
<00:29:14.975>and <00:29:15.254>no <00:29:15.534>compiler <00:29:15.814>yells <00:29:16.094>at <00:29:16.375>me.

504
00:29:17.535 --> 00:29:20.875
<00:29:17.535>And <00:29:17.710>well, <00:29:17.885>when <00:29:18.060>I <00:29:18.235>then <00:29:18.410>start <00:29:18.585>my <00:29:18.760>tests, <00:29:18.935>um,

505
00:29:22.195 --> 00:29:26.515
<00:29:22.195>I <00:29:22.335>wish <00:29:22.475>I <00:29:22.615>would <00:29:22.754>have <00:29:22.895>a <00:29:23.034>compiler <00:29:23.175>that <00:29:23.314>tells <00:29:23.455>me <00:29:23.595>that

506
00:29:27.065 --> 00:29:29.195
<00:29:27.065>assigning <00:29:27.298>the <00:29:27.531>string <00:29:27.765>to <00:29:27.998>that <00:29:28.231>inte <00:29:28.465>integer

507
00:29:29.925 --> 00:29:31.835
<00:29:29.925>isn't <00:29:30.158>really <00:29:30.391>the <00:29:30.625>brightest <00:29:30.858>idea <00:29:31.091>of <00:29:31.325>today.

508
00:29:32.575 --> 00:29:35.435
<00:29:32.575>So <00:29:32.808>what <00:29:33.041>does <00:29:33.275>static <00:29:33.508>type <00:29:33.741>safety <00:29:33.975>mean?

509
00:29:36.085 --> 00:29:40.155
<00:29:36.085>Let's <00:29:36.240>say <00:29:36.396>I <00:29:36.551>create <00:29:36.707>two <00:29:36.862>independent <00:29:37.018>types, <00:29:37.173>apple <00:29:37.329>and <00:29:37.485>orange.

510
00:29:40.775 --> 00:29:41.925
<00:29:40.775>That's <00:29:41.120>a <00:29:41.465>struc <00:29:41.810>here.

511
00:29:42.025 --> 00:29:45.725
<00:29:42.025>So <00:29:42.180>it's <00:29:42.336>a <00:29:42.491>very <00:29:42.647>primitive <00:29:42.802>type <00:29:42.958>like <00:29:43.113>and <00:29:43.269>c <00:29:43.425>struc.

512
00:29:46.105 --> 00:29:47.525
<00:29:46.105>And <00:29:46.360>then <00:29:46.616>I <00:29:46.871>write <00:29:47.127>a <00:29:47.383>function

513
00:29:48.285 --> 00:29:51.555
<00:29:48.285>I <00:29:48.565>call <00:29:48.845>our <00:29:49.125>apple's <00:29:49.405>oranges, <00:29:49.685>okay?

514
00:29:51.575 --> 00:29:54.315
<00:29:51.575>And <00:29:51.775>within <00:29:51.975>that <00:29:52.175>function <00:29:52.375>I'm <00:29:52.575>creating <00:29:52.775>two <00:29:52.975>objects.

515
00:29:54.655 --> 00:29:59.195
<00:29:54.655>One, <00:29:54.771>um, <00:29:54.888>for <00:29:55.004>apple <00:29:55.121>and <00:29:55.238>the <00:29:55.355>other <00:29:55.471>one <00:29:55.588>for <00:29:55.705>orange <00:29:55.821>A <00:29:55.938>and <00:29:56.055>O.

516
00:29:59.935 --> 00:30:04.155
<00:29:59.935>And <00:30:00.051>then <00:30:00.168>in <00:30:00.284>line <00:30:00.401>number <00:30:00.518>10, <00:30:00.635>I <00:30:00.751>like <00:30:00.868>to <00:30:00.985>compare <00:30:01.101>A <00:30:01.218>equals <00:30:01.335>O.

517
00:30:05.585 --> 00:30:06.925
<00:30:05.585>And <00:30:05.987>that <00:30:06.389>doesn't <00:30:06.791>compile

518
00:30:07.315 --> 00:30:10.285
<00:30:07.315>because <00:30:07.490>the <00:30:07.665>compiler <00:30:07.840>tells <00:30:08.015>us <00:30:08.190>it <00:30:08.365>doesn't <00:30:08.540>know <00:30:08.715>how

519
00:30:10.285 --> 00:30:11.885
<00:30:10.285>to <00:30:10.635>compare <00:30:10.985>apples <00:30:11.335>and <00:30:11.685>oranges.

520
00:30:13.115 --> 00:30:16.815
<00:30:13.115>And <00:30:13.348>I <00:30:13.581>don't <00:30:13.815>know <00:30:14.048>as <00:30:14.281>well, <00:30:14.515>apples

521
00:30:16.815 --> 00:30:18.735
<00:30:16.815>and <00:30:17.095>oranges <00:30:17.375>are <00:30:17.655>quite <00:30:17.935>different <00:30:18.215>things.

522
00:30:20.165 --> 00:30:23.815
<00:30:20.165>They're <00:30:20.340>fruits, <00:30:20.514>okay, <00:30:20.690>but <00:30:20.865>other <00:30:21.040>than <00:30:21.215>that, <00:30:21.389>not <00:30:21.565>sure,

523
00:30:25.425 --> 00:30:28.885
<00:30:25.425>but <00:30:25.774>if <00:30:26.125>you <00:30:26.475>should <00:30:26.825>like

524
00:30:30.615 --> 00:30:33.765
<00:30:30.615>to <00:30:30.965>override <00:30:31.315>this <00:30:31.665>equals <00:30:32.015>operator

525
00:30:33.765 --> 00:30:35.965
<00:30:33.765>because <00:30:33.998>you <00:30:34.231>know <00:30:34.465>how <00:30:34.698>to <00:30:34.931>compare <00:30:35.165>apples

526
00:30:35.965 --> 00:30:39.645
<00:30:35.965>and <00:30:36.105>oranges, <00:30:36.245>then <00:30:36.385>you <00:30:36.524>can <00:30:36.665>do <00:30:36.804>so <00:30:36.945>it's <00:30:37.084>c <00:30:37.225>plus <00:30:37.365>plus.

527
00:30:41.245 --> 00:30:45.275
<00:30:41.245>Yeah, <00:30:41.400>in <00:30:41.556>line <00:30:41.711>number <00:30:41.867>four, <00:30:42.022>you <00:30:42.178>cannot <00:30:42.333>add <00:30:42.489>an <00:30:42.645>operator

528
00:30:46.435 --> 00:30:49.175
<00:30:46.435>equals <00:30:46.901>equals <00:30:47.368>that <00:30:47.835>checks

529
00:30:50.945 --> 00:30:55.875
<00:30:50.945>whether <00:30:51.120>apples <00:30:51.294>are <00:30:51.470>es <00:30:51.645>the <00:30:51.820>implementation, <00:30:51.995>I <00:30:52.169>don't <00:30:52.345>know,

530
00:30:56.335 --> 00:30:57.835
<00:30:56.335>you <00:30:56.605>have <00:30:56.875>to <00:30:57.145>implement <00:30:57.415>that <00:30:57.685>yourself.

531
00:30:59.645 --> 00:31:01.315
<00:30:59.645>Maybe <00:30:59.995>you <00:31:00.345>always <00:31:00.695>return <00:31:01.045>false

532
00:31:01.315 --> 00:31:05.235
<00:31:01.315>because <00:31:01.455>they're <00:31:01.595>not <00:31:01.735>the <00:31:01.875>same <00:31:02.015>thing, <00:31:02.155>but <00:31:02.295>you <00:31:02.435>can <00:31:02.575>do <00:31:02.715>that.

533
00:31:05.565 --> 00:31:07.595
<00:31:05.565>Maybe <00:31:05.798>you <00:31:06.031>are <00:31:06.265>looking <00:31:06.498>into <00:31:06.731>the <00:31:06.965>type

534
00:31:07.815 --> 00:31:11.755
<00:31:07.815>and <00:31:07.955>there <00:31:08.095>is <00:31:08.235>a <00:31:08.375>number <00:31:08.515>in <00:31:08.655>there <00:31:08.795>you <00:31:08.935>like <00:31:09.075>to <00:31:09.215>compare.

535
00:31:11.935 --> 00:31:14.075
<00:31:11.935>That's <00:31:12.168>the <00:31:12.401>usual <00:31:12.635>thing <00:31:12.868>and <00:31:13.101>that's <00:31:13.335>fine.

536
00:31:14.415 --> 00:31:17.875
<00:31:14.415>And <00:31:14.590>now <00:31:14.764>the <00:31:14.940>colon <00:31:15.115>line <00:31:15.290>number <00:31:15.465>12 <00:31:15.639>starts <00:31:15.815>compiling.

537
00:31:18.835 --> 00:31:20.365
<00:31:18.835>It's <00:31:19.064>not <00:31:19.294>so <00:31:19.523>that <00:31:19.753>it <00:31:19.982>doesn't <00:31:20.212>compile

538
00:31:20.365 --> 00:31:21.605
<00:31:20.365>anymore, <00:31:20.737>nor <00:31:21.109>it <00:31:21.481>compiles.

539
00:31:22.915 --> 00:31:27.015
<00:31:22.915>You <00:31:23.055>can <00:31:23.195>overload <00:31:23.335>the <00:31:23.475>operators <00:31:23.615>once <00:31:23.754>again <00:31:23.895>in <00:31:24.034>c <00:31:24.175>plus <00:31:24.315>plus

540
00:31:27.555 --> 00:31:30.175
<00:31:27.555>can <00:31:27.710>do <00:31:27.866>it <00:31:28.021>inside <00:31:28.177>a <00:31:28.332>class <00:31:28.488>or <00:31:28.643>outside <00:31:28.799>the <00:31:28.955>class.

541
00:31:31.035 --> 00:31:33.655
<00:31:31.035>And <00:31:31.385>this <00:31:31.735>makes, <00:31:32.085>um, <00:31:32.435>yeah,

542
00:31:33.805 --> 00:31:37.295
<00:31:33.805>your <00:31:33.980>code <00:31:34.155>look <00:31:34.330>very <00:31:34.505>nice <00:31:34.680>on <00:31:34.855>the <00:31:35.030>using <00:31:35.205>side.

543
00:31:37.485 --> 00:31:39.775
<00:31:37.485>Yeah, <00:31:37.685>on <00:31:37.885>line <00:31:38.084>number <00:31:38.284>12, <00:31:38.485>I <00:31:38.685>don't <00:31:38.885>have

544
00:31:39.795 --> 00:31:43.095
<00:31:39.795>to <00:31:39.950>call <00:31:40.106>the <00:31:40.261>specific <00:31:40.417>function <00:31:40.572>to <00:31:40.728>compare <00:31:40.883>apples <00:31:41.039>and <00:31:41.195>oranges.

545
00:31:43.815 --> 00:31:47.695
<00:31:43.815>I <00:31:43.990>can <00:31:44.165>just <00:31:44.340>use <00:31:44.515>the <00:31:44.690>built-in <00:31:44.865>operator <00:31:45.040>equals <00:31:45.215>SQLs.

546
00:31:49.465 --> 00:31:52.325
<00:31:49.465>Having <00:31:49.698>all <00:31:49.931>that <00:31:50.165>set, <00:31:50.398>let <00:31:50.631>me <00:31:50.865>add

547
00:31:52.325 --> 00:31:53.805
<00:31:52.325>that <00:31:52.591>I <00:31:52.857>really <00:31:53.124>like <00:31:53.390>type <00:31:53.657>safety.

548
00:31:53.965 --> 00:31:56.365
<00:31:53.965>I <00:31:54.165>I <00:31:54.365>think <00:31:54.564>it's, <00:31:54.764>it's <00:31:54.965>very <00:31:55.165>important, <00:31:55.365>especially

549
00:31:56.385 --> 00:31:59.085
<00:31:56.385>for <00:31:56.560>all <00:31:56.735>the <00:31:56.910>products <00:31:57.085>we <00:31:57.260>develop <00:31:57.435>these <00:31:57.610>days <00:31:57.785>in

550
00:31:59.085 --> 00:32:00.325
<00:31:59.085>cars <00:31:59.364>or <00:31:59.643>something <00:31:59.922>like <00:32:00.201>this.

551
00:32:00.435 --> 00:32:03.685
<00:32:00.435>It's, <00:32:00.610>it's <00:32:00.784>vital <00:32:00.960>to <00:32:01.135>know <00:32:01.310>that <00:32:01.485>the <00:32:01.659>types <00:32:01.835>match.

552
00:32:04.385 --> 00:32:08.135
<00:32:04.385>Um, <00:32:04.851>please <00:32:05.318>always <00:32:05.785>remember

553
00:32:08.735 --> 00:32:10.815
<00:32:08.735>c <00:32:09.014>plus <00:32:09.294>plus <00:32:09.574>comes <00:32:09.854>from <00:32:10.135>C

554
00:32:11.915 --> 00:32:16.375
<00:32:11.915>and <00:32:12.115>so <00:32:12.315>it <00:32:12.514>inherited <00:32:12.715>what's <00:32:12.915>possible <00:32:13.115>in <00:32:13.315>C

555
00:32:16.375 --> 00:32:19.455
<00:32:16.375>and <00:32:16.515>that's <00:32:16.655>not <00:32:16.795>all <00:32:16.935>the <00:32:17.075>time, <00:32:17.215>at <00:32:17.355>least <00:32:17.495>in <00:32:17.635>my <00:32:17.775>opinion.

556
00:32:20.005 --> 00:32:24.655
<00:32:20.005>Good, <00:32:20.132>it <00:32:20.259>makes <00:32:20.386>me <00:32:20.514>cry <00:32:20.641>sometimes <00:32:20.768>you <00:32:20.895>can <00:32:21.023>in <00:32:21.150>c <00:32:21.277>plus <00:32:21.405>plus

557
00:32:24.715 --> 00:32:27.695
<00:32:24.715>as <00:32:24.870>well <00:32:25.026>as <00:32:25.181>in <00:32:25.337>C <00:32:25.492>create <00:32:25.648>a <00:32:25.803>double <00:32:25.959>called <00:32:26.115>pi,

558
00:32:28.155 --> 00:32:32.895
<00:32:28.155>assign <00:32:28.310>3.14 <00:32:28.466>to <00:32:28.621>eight <00:32:28.777>and <00:32:28.932>then <00:32:29.088>use <00:32:29.243>this <00:32:29.399>variable <00:32:29.555>PI

559
00:32:32.895 --> 00:32:34.495
<00:32:32.895>and <00:32:33.175>assign <00:32:33.455>it <00:32:33.735>to <00:32:34.014>an <00:32:34.295>integer.

560
00:32:35.715 --> 00:32:39.445
<00:32:35.715>And <00:32:35.915>that <00:32:36.115>works <00:32:36.314>okay, <00:32:36.514>you <00:32:36.715>lose <00:32:36.915>your <00:32:37.115>position.

561
00:32:39.945 --> 00:32:43.725
<00:32:39.945>The <00:32:40.225>0.1 <00:32:40.504>point, <00:32:40.784>uh, <00:32:41.064>the <00:32:41.345>0.14

562
00:32:44.275 --> 00:32:45.285
<00:32:44.275>gets <00:32:44.729>thrown <00:32:45.184>away.

563
00:32:45.715 --> 00:32:48.565
<00:32:45.715>It's <00:32:45.915>not <00:32:46.115>rounded <00:32:46.314>in <00:32:46.514>any <00:32:46.715>medical <00:32:46.915>mathematical <00:32:47.115>sense

564
00:32:49.075 --> 00:32:50.125
<00:32:49.075>just <00:32:49.547>thrown <00:32:50.020>away.

565
00:32:50.545 --> 00:32:52.165
<00:32:50.545>So <00:32:51.011>whether <00:32:51.478>it's <00:32:51.945>3.6

566
00:32:52.185 --> 00:32:56.285
<00:32:52.185>or <00:32:52.312>3.1 <00:32:52.439>doesn't <00:32:52.566>matter, <00:32:52.694>it <00:32:52.821>ends <00:32:52.948>up <00:32:53.075>being <00:32:53.203>three <00:32:53.330>in <00:32:53.457>the <00:32:53.585>integer

567
00:32:56.905 --> 00:33:01.365
<00:32:56.905>and <00:32:57.105>that <00:32:57.305>causes, <00:32:57.504>um, <00:32:57.705>problems, <00:32:57.905>uh, <00:32:58.105>rework <00:32:58.305>problems.

568
00:33:01.365 --> 00:33:02.685
<00:33:01.365>They <00:33:01.761>are <00:33:02.157>static <00:33:02.553>analysis

569
00:33:02.685 --> 00:33:05.525
<00:33:02.685>and <00:33:02.885>compilers <00:33:03.085>which <00:33:03.284>help <00:33:03.485>you <00:33:03.685>to <00:33:03.885>detect <00:33:04.085>this,

570
00:33:05.865 --> 00:33:09.605
<00:33:05.865>but <00:33:06.098>technically <00:33:06.331>it's <00:33:06.565>a <00:33:06.798>legal <00:33:07.031>construct, <00:33:07.265>um,

571
00:33:09.955 --> 00:33:14.355
<00:33:09.955>because <00:33:10.095>it's <00:33:10.235>illegal <00:33:10.375>and <00:33:10.514>c <00:33:10.655>and <00:33:10.794>um, <00:33:10.935>so <00:33:11.074>it's <00:33:11.215>still <00:33:11.355>legal

572
00:33:14.495 --> 00:33:17.475
<00:33:14.495>and <00:33:14.650>c <00:33:14.806>plus <00:33:14.961>plus, <00:33:15.117>but <00:33:15.272>yeah, <00:33:15.428>I <00:33:15.583>can <00:33:15.739>cry <00:33:15.895>tears.

573
00:33:17.495 --> 00:33:20.555
<00:33:17.495>So <00:33:17.695>over <00:33:17.895>there, <00:33:18.094>what <00:33:18.294>else <00:33:18.495>do <00:33:18.695>we <00:33:18.895>have?

574
00:33:21.685 --> 00:33:22.855
<00:33:21.685>Generic <00:33:22.738>programming.

575
00:33:23.365 --> 00:33:26.615
<00:33:23.365>Generic <00:33:23.540>programming <00:33:23.715>is <00:33:23.890>probably <00:33:24.065>one <00:33:24.240>of <00:33:24.415>the <00:33:24.590>things, <00:33:24.765>um,

576
00:33:26.905 --> 00:33:28.975
<00:33:26.905>where <00:33:27.185>c <00:33:27.465>plus <00:33:27.745>plus <00:33:28.024>really <00:33:28.305>excels.

577
00:33:29.875 --> 00:33:33.215
<00:33:29.875>And, <00:33:30.075>uh, <00:33:30.275>c <00:33:30.475>plus <00:33:30.675>plus <00:33:30.875>was <00:33:31.075>fortunate <00:33:31.275>enough

578
00:33:33.235 --> 00:33:37.055
<00:33:33.235>to <00:33:33.435>have <00:33:33.635>Alexander <00:33:33.834>Stefan <00:33:34.034>of <00:33:34.235>Dev, <00:33:34.435>uh, <00:33:34.635>yeah,

579
00:33:38.565 --> 00:33:40.005
<00:33:38.565>discovered <00:33:38.889>the <00:33:39.213>language <00:33:39.537>early <00:33:39.861>enough.

580
00:33:40.785 --> 00:33:45.445
<00:33:40.785>He <00:33:40.925>is, <00:33:41.065>um, <00:33:41.205>together <00:33:41.345>with <00:33:41.485>David <00:33:41.625>Musser, <00:33:41.765>one <00:33:41.905>of <00:33:42.045>the <00:33:42.185>people

581
00:33:45.865 --> 00:33:48.565
<00:33:45.865>who <00:33:46.145>developed <00:33:46.425>what's <00:33:46.705>called <00:33:46.985>generic <00:33:47.265>programming

582
00:33:48.905 --> 00:33:50.605
<00:33:48.905>and <00:33:49.105>um, <00:33:49.305>this <00:33:49.504>from <00:33:49.705>one <00:33:49.905>of <00:33:50.105>the <00:33:50.305>papers

583
00:33:50.785 --> 00:33:55.405
<00:33:50.785>and <00:33:50.985>here <00:33:51.185>is <00:33:51.385>say <00:33:51.585>the <00:33:51.785>central <00:33:51.985>notation <00:33:52.185>is

584
00:33:55.835 --> 00:33:58.685
<00:33:55.835>that <00:33:56.068>of <00:33:56.301>generic <00:33:56.535>algorithms <00:33:56.768>which <00:33:57.001>are <00:33:57.235>parametrized,

585
00:33:59.445 --> 00:34:02.405
<00:33:59.445>procedural <00:33:59.725>sheta <00:34:00.004>that <00:34:00.284>are <00:34:00.564>completely <00:34:00.845>independent

586
00:34:02.705 --> 00:34:04.525
<00:34:02.705>of <00:34:03.054>the <00:34:03.405>underlying <00:34:03.754>data <00:34:04.105>representation

587
00:34:05.225 --> 00:34:08.285
<00:34:05.225>and <00:34:05.458>that <00:34:05.691>arrived <00:34:05.925>from <00:34:06.158>concrete <00:34:06.391>efficient <00:34:06.625>algorithms.

588
00:34:08.945 --> 00:34:10.965
<00:34:08.945>So <00:34:09.295>they, <00:34:09.645>they <00:34:09.995>decouple <00:34:10.345>things.

589
00:34:11.425 --> 00:34:14.685
<00:34:11.425>Um, <00:34:11.658>in <00:34:11.891>generic <00:34:12.125>programming <00:34:12.358>we <00:34:12.591>have <00:34:12.825>the,

590
00:34:15.145 --> 00:34:16.205
<00:34:15.145>the <00:34:15.621>concrete <00:34:16.099>algorithm,

591
00:34:16.585 --> 00:34:18.845
<00:34:16.585>but <00:34:16.784>it <00:34:16.985>works <00:34:17.185>for <00:34:17.385>large <00:34:17.585>number <00:34:17.784>of <00:34:17.985>types.

592
00:34:18.945 --> 00:34:21.325
<00:34:18.945>We <00:34:19.120>don't <00:34:19.295>implement <00:34:19.470>it <00:34:19.645>for <00:34:19.820>each <00:34:19.995>and <00:34:20.170>every <00:34:20.345>type.

593
00:34:21.905 --> 00:34:24.445
<00:34:21.905>Um, <00:34:22.138>once <00:34:22.371>again, <00:34:22.605>we <00:34:22.838>implement <00:34:23.071>it <00:34:23.305>once

594
00:34:25.065 --> 00:34:27.325
<00:34:25.065>and <00:34:25.264>it <00:34:25.465>can <00:34:25.665>be <00:34:25.865>used <00:34:26.065>with <00:34:26.264>multiple <00:34:26.465>types

595
00:34:28.125 --> 00:34:31.565
<00:34:28.125>assuming <00:34:28.405>there <00:34:28.685>are <00:34:28.965>satisfying <00:34:29.245>specific <00:34:29.525>interface

596
00:34:32.105 --> 00:34:35.125
<00:34:32.105>or <00:34:32.260>did <00:34:32.416>they <00:34:32.571>have <00:34:32.727>something <00:34:32.882>in <00:34:33.038>in <00:34:33.193>common, <00:34:33.349>which, <00:34:33.505>um,

597
00:34:35.345 --> 00:34:36.445
<00:34:35.344>equals <00:34:35.840>an <00:34:36.335>interface.

598
00:34:37.825 --> 00:34:42.535
<00:34:37.824>And <00:34:38.105>generic <00:34:38.384>programming <00:34:38.665>is <00:34:38.944>very <00:34:39.225>important.

599
00:34:42.715 --> 00:34:45.615
<00:34:42.715>Um, <00:34:42.915>a <00:34:43.115>lot <00:34:43.315>of <00:34:43.515>programming <00:34:43.715>languages <00:34:43.915>adopted <00:34:44.115>it

600
00:34:46.115 --> 00:34:49.775
<00:34:46.114>and <00:34:46.290>it's <00:34:46.464>um, <00:34:46.639>what <00:34:46.814>c <00:34:46.989>plus <00:34:47.165>plus <00:34:47.339>is, <00:34:47.514>um,

601
00:34:50.115 --> 00:34:53.615
<00:34:50.114>really <00:34:50.231>good <00:34:50.348>at <00:34:50.464>so <00:34:50.581>that <00:34:50.698>there <00:34:50.814>are <00:34:50.931>a <00:34:51.048>lot <00:34:51.165>of <00:34:51.281>books <00:34:51.398>out <00:34:51.514>there.

602
00:34:53.755 --> 00:34:57.135
<00:34:53.755>And <00:34:53.895>while <00:34:54.035>I <00:34:54.175>researched <00:34:54.315>a <00:34:54.455>little <00:34:54.595>bit <00:34:54.735>around <00:34:54.875>for <00:34:55.015>this <00:34:55.155>talk,

603
00:34:57.295 --> 00:35:00.895
<00:34:57.295>I <00:34:57.470>stumbled <00:34:57.645>over <00:34:57.820>generic <00:34:57.995>programming <00:34:58.170>in <00:34:58.345>the <00:34:58.520>SDL, <00:34:58.695>um,

604
00:35:00.895 --> 00:35:02.255
<00:35:00.895>from <00:35:02.119>1998

605
00:35:02.795 --> 00:35:07.575
<00:35:02.795>and <00:35:02.950>it's <00:35:03.106>um, <00:35:03.261>that <00:35:03.417>covers <00:35:03.572>says <00:35:03.728>many <00:35:03.883>programmers <00:35:04.039>are <00:35:04.195>unaware

606
00:35:08.405 --> 00:35:11.815
<00:35:08.405>that <00:35:08.545>c <00:35:08.685>plus <00:35:08.825>plus <00:35:08.965>is <00:35:09.105>more <00:35:09.245>than <00:35:09.385>an <00:35:09.525>object <00:35:09.665>oriented <00:35:09.805>language.

607
00:35:12.335 --> 00:35:14.055
<00:35:12.335>C <00:35:12.615>plus <00:35:12.895>plus <00:35:13.175>is <00:35:13.455>also <00:35:13.735>language

608
00:35:14.195 --> 00:35:16.215
<00:35:14.195>for <00:35:14.661>generic <00:35:15.128>programming <00:35:15.595>mythology

609
00:35:16.845 --> 00:35:20.975
<00:35:16.845>that <00:35:17.020>can <00:35:17.194>correctly <00:35:17.370>enhance <00:35:17.544>your <00:35:17.720>ability <00:35:17.895>to <00:35:18.069>write <00:35:18.245>efficient

610
00:35:20.975 --> 00:35:22.815
<00:35:20.975>and <00:35:21.441>reusable <00:35:21.908>software <00:35:22.375>components.

611
00:35:23.195 --> 00:35:27.835
<00:35:23.195>And <00:35:23.395>that's <00:35:23.595>a <00:35:23.795>really, <00:35:23.995>really <00:35:24.195>good <00:35:24.395>sentence <00:35:24.595>there.

612
00:35:29.675 --> 00:35:32.845
<00:35:29.675>It's <00:35:29.850>so <00:35:30.025>true <00:35:30.200>and <00:35:30.375>what <00:35:30.550>makes <00:35:30.725>me <00:35:30.900>sad <00:35:31.075>is

613
00:35:32.845 --> 00:35:34.565
<00:35:32.845>that <00:35:33.044>we <00:35:33.245>are <00:35:33.444>more <00:35:33.645>than <00:35:33.845>20 <00:35:34.044>years <00:35:34.245>later

614
00:35:34.745 --> 00:35:37.805
<00:35:34.745>and <00:35:34.978>in <00:35:35.211>a <00:35:35.444>lot <00:35:35.678>of, <00:35:35.911>um, <00:35:36.145>classes,

615
00:35:38.165 --> 00:35:40.565
<00:35:38.165>I <00:35:38.398>still <00:35:38.631>can <00:35:38.865>pull <00:35:39.098>that <00:35:39.331>thing <00:35:39.565>up,

616
00:35:40.585 --> 00:35:44.405
<00:35:40.585>but, <00:35:40.865>um, <00:35:41.145>generic <00:35:41.425>programming <00:35:41.705>is, <00:35:41.985>um,

617
00:35:45.215 --> 00:35:48.325
<00:35:45.215>still <00:35:45.355>seen <00:35:45.495>as <00:35:45.635>very <00:35:45.775>tough <00:35:45.915>in, <00:35:46.055>in <00:35:46.195>some <00:35:46.335>points <00:35:46.475>at <00:35:46.615>least

618
00:35:48.995 --> 00:35:50.525
<00:35:48.995>generic <00:35:49.683>programming <00:35:50.372>led

619
00:35:50.665 --> 00:35:54.205
<00:35:50.665>to <00:35:50.865>what's <00:35:51.065>called <00:35:51.265>the <00:35:51.465>SDLD <00:35:51.665>standards <00:35:51.865>Template <00:35:52.065>library.

620
00:35:54.985 --> 00:35:59.505
<00:35:54.985>Um, <00:35:55.112>Alexander <00:35:55.239>Stefan <00:35:55.366>of <00:35:55.494>was, <00:35:55.621>we <00:35:55.748>can <00:35:55.875>say <00:35:56.003>the <00:35:56.130>father <00:35:56.257>of <00:35:56.385>this,

621
00:36:00.085 --> 00:36:01.665
<00:36:00.085>he <00:36:00.551>started <00:36:01.018>with <00:36:01.485>AAR

622
00:36:01.845 --> 00:36:05.825
<00:36:01.845>and <00:36:02.078>developed <00:36:02.311>the <00:36:02.544>generic <00:36:02.778>library <00:36:03.011>there <00:36:03.245>in

623
00:36:06.625 --> 00:36:08.505
<00:36:06.625>1987, <00:36:07.091>something <00:36:07.558>like <00:36:08.025>this.

624
00:36:08.885 --> 00:36:10.545
<00:36:08.885>But <00:36:09.118>then <00:36:09.351>he <00:36:09.585>discovered <00:36:09.818>c <00:36:10.051>plus <00:36:10.285>plus

625
00:36:10.965 --> 00:36:14.985
<00:36:10.965>and <00:36:11.105>I <00:36:11.245>think <00:36:11.385>he <00:36:11.525>once <00:36:11.665>also <00:36:11.805>said <00:36:11.945>that <00:36:12.085>he <00:36:12.225>wasn't <00:36:12.365>quite

626
00:36:14.985 --> 00:36:18.905
<00:36:14.985>that <00:36:15.140>happy <00:36:15.296>in <00:36:15.451>ADA <00:36:15.607>with, <00:36:15.762>um, <00:36:15.918>his <00:36:16.073>generic <00:36:16.229>um, <00:36:16.385>approach.

627
00:36:19.045 --> 00:36:21.465
<00:36:19.045>And <00:36:19.278>because <00:36:19.511>the <00:36:19.745>language <00:36:19.978>didn't <00:36:20.211>allow <00:36:20.445>him

628
00:36:21.485 --> 00:36:25.225
<00:36:21.485>to <00:36:21.612>do <00:36:21.739>the <00:36:21.866>things <00:36:21.994>he <00:36:22.121>wanted <00:36:22.248>and <00:36:22.375>he <00:36:22.503>discovered <00:36:22.630>c <00:36:22.757>plus <00:36:22.885>plus

629
00:36:25.285 --> 00:36:28.465
<00:36:25.285>and <00:36:25.460>he <00:36:25.634>figured <00:36:25.810>this <00:36:25.984>is <00:36:26.160>the <00:36:26.335>language <00:36:26.509>where, <00:36:26.685>um,

630
00:36:28.805 --> 00:36:31.945
<00:36:28.805>the <00:36:28.960>generic <00:36:29.116>programming <00:36:29.271>as <00:36:29.427>I <00:36:29.582>help <00:36:29.738>it <00:36:29.893>in <00:36:30.049>mind, <00:36:30.205>um,

631
00:36:32.155 --> 00:36:33.385
<00:36:32.155>works <00:36:33.262>best.

632
00:36:33.525 --> 00:36:37.705
<00:36:33.525>And <00:36:33.680>so <00:36:33.836>he <00:36:33.991>spent <00:36:34.147>a <00:36:34.302>great <00:36:34.458>amount <00:36:34.613>of <00:36:34.769>time <00:36:34.925>dealing

633
00:36:37.815 --> 00:36:40.465
<00:36:37.815>with <00:36:37.990>c <00:36:38.165>plus <00:36:38.340>plus <00:36:38.515>and <00:36:38.690>and <00:36:38.865>developing <00:36:39.040>things <00:36:39.215>there.

634
00:36:40.965 --> 00:36:43.665
<00:36:40.965>And <00:36:41.165>one <00:36:41.365>outcome <00:36:41.565>was <00:36:41.765>the <00:36:41.965>standard <00:36:42.165>TAM <00:36:42.365>library,

635
00:36:44.195 --> 00:36:48.145
<00:36:44.195>which <00:36:44.428>is <00:36:44.661>shipment <00:36:44.895>every <00:36:45.128>major <00:36:45.361>compiler, <00:36:45.595>um,

636
00:36:48.645 --> 00:36:49.705
<00:36:48.645>and <00:36:49.122>all <00:36:49.599>the,

637
00:36:49.725 --> 00:36:52.625
<00:36:49.725>all <00:36:49.900>the <00:36:50.075>smaller <00:36:50.250>compilers <00:36:50.424>bring <00:36:50.600>their <00:36:50.775>own <00:36:50.950>standard <00:36:51.125>library.

638
00:36:53.455 --> 00:36:56.385
<00:36:53.455>It's <00:36:53.610>where <00:36:53.766>the, <00:36:53.921>the <00:36:54.077>typical <00:36:54.232>types <00:36:54.388>you <00:36:54.543>need <00:36:54.699>are <00:36:54.855>in

639
00:36:56.765 --> 00:37:00.345
<00:36:56.765>and <00:36:56.920>which <00:36:57.076>helps <00:36:57.231>you <00:36:57.387>to <00:36:57.542>start <00:36:57.698>developing <00:36:57.853>in <00:36:58.009>this <00:36:58.165>language.

640
00:37:01.165 --> 00:37:04.705
<00:37:01.165>Um, <00:37:01.365>it <00:37:01.565>was <00:37:01.765>implemented <00:37:01.965>by <00:37:02.165>Manley, <00:37:02.365>um, <00:37:02.565>which

641
00:37:05.165 --> 00:37:09.385
<00:37:05.165>by <00:37:05.340>the <00:37:05.515>way <00:37:05.690>is <00:37:05.865>a <00:37:06.040>woman <00:37:06.215>in <00:37:06.390>the <00:37:06.565>nineties

642
00:37:10.205 --> 00:37:12.135
<00:37:10.205>as <00:37:11.605>draft.

643
00:37:12.355 --> 00:37:13.455
<00:37:12.355>Um, <00:37:12.685>you <00:37:13.015>can <00:37:13.345>say.

644
00:37:13.835 --> 00:37:17.495
<00:37:13.835>And <00:37:14.035>it <00:37:14.235>was <00:37:14.435>soon, <00:37:14.635>um, <00:37:14.835>became <00:37:15.035>very <00:37:15.235>popular

645
00:37:17.755 --> 00:37:20.775
<00:37:17.755>and <00:37:17.988>was <00:37:18.221>picked <00:37:18.455>in <00:37:18.688>the <00:37:18.921>first <00:37:19.155>standardization

646
00:37:21.155 --> 00:37:24.335
<00:37:21.155>and <00:37:21.310>ever <00:37:21.466>since <00:37:21.621>then <00:37:21.777>was <00:37:21.932>part <00:37:22.088>of <00:37:22.243>c <00:37:22.399>plus <00:37:22.555>plus

647
00:37:25.915 --> 00:37:29.335
<00:37:25.915>and <00:37:26.148>NC <00:37:26.381>plus <00:37:26.615>plus, <00:37:26.848>which <00:37:27.081>generic <00:37:27.315>programming,

648
00:37:29.835 --> 00:37:31.535
<00:37:29.835>we <00:37:30.301>call <00:37:30.768>it <00:37:31.235>templates.

649
00:37:31.555 --> 00:37:33.655
<00:37:31.555>We <00:37:31.788>have <00:37:32.021>different <00:37:32.254>kinds <00:37:32.488>of <00:37:32.721>templates <00:37:32.955>here.

650
00:37:33.655 --> 00:37:37.375
<00:37:33.655>We <00:37:33.795>are <00:37:33.935>looking <00:37:34.075>at <00:37:34.215>a <00:37:34.355>function <00:37:34.495>template. <00:37:34.635>It's <00:37:34.775>always <00:37:34.915>the <00:37:35.055>same.

651
00:37:37.435 --> 00:37:40.615
<00:37:37.435>It <00:37:37.575>starts <00:37:37.715>with <00:37:37.855>the <00:37:37.995>keyword <00:37:38.134>template <00:37:38.275>here <00:37:38.415>in <00:37:38.555>in <00:37:38.695>line <00:37:38.835>number

652
00:37:40.755 --> 00:37:44.575
<00:37:40.755>one, <00:37:40.910>which <00:37:41.066>is <00:37:41.221>named <00:37:41.377>the <00:37:41.532>template <00:37:41.688>hat <00:37:41.843>forms <00:37:41.999>the <00:37:42.155>head

653
00:37:44.575 --> 00:37:45.655
<00:37:44.575>of <00:37:44.899>this <00:37:45.223>entire <00:37:45.547>template.

654
00:37:46.035 --> 00:37:50.575
<00:37:46.035>And <00:37:46.162>then <00:37:46.289>you <00:37:46.416>can <00:37:46.544>either <00:37:46.671>specify <00:37:46.798>a <00:37:46.925>type <00:37:47.053>here <00:37:47.180>with <00:37:47.307>type <00:37:47.435>name

655
00:37:50.835 --> 00:37:55.695
<00:37:50.835>and <00:37:50.951>then <00:37:51.068>give <00:37:51.185>it <00:37:51.301>the <00:37:51.418>name <00:37:51.535>T <00:37:51.651>or <00:37:51.768>you <00:37:51.885>can <00:37:52.001>use <00:37:52.118>a <00:37:52.235>non-type.

656
00:37:55.795 --> 00:38:00.015
<00:37:55.795>So <00:37:55.970>that's <00:37:56.145>a <00:37:56.320>constant, <00:37:56.495>um, <00:37:56.670>like <00:37:56.845>here <00:37:57.020>with <00:37:57.195>size.

657
00:38:00.195 --> 00:38:03.535
<00:38:00.195>So <00:38:00.350>this <00:38:00.506>function <00:38:00.661>template <00:38:00.817>here <00:38:00.972>takes <00:38:01.128>a <00:38:01.283>type <00:38:01.439>name <00:38:01.595>T

658
00:38:04.115 --> 00:38:05.735
<00:38:04.115>and <00:38:04.814>size <00:38:05.515>parameter.

659
00:38:06.275 --> 00:38:07.375
<00:38:06.275>And <00:38:06.522>in <00:38:06.770>line <00:38:07.017>number <00:38:07.265>two,

660
00:38:07.565 --> 00:38:10.695
<00:38:07.565>then <00:38:07.740>you <00:38:07.915>can <00:38:08.090>provide <00:38:08.265>the <00:38:08.440>signature <00:38:08.615>of <00:38:08.790>this <00:38:08.965>function.

661
00:38:10.915 --> 00:38:12.175
<00:38:10.915>It <00:38:11.198>returns <00:38:11.482>an <00:38:11.765>auto <00:38:12.049>type.

662
00:38:12.355 --> 00:38:15.055
<00:38:12.355>So <00:38:12.530>c <00:38:12.705>plus <00:38:12.880>plus <00:38:13.055>now <00:38:13.230>also <00:38:13.405>knows <00:38:13.580>about <00:38:13.755>um,

663
00:38:15.415 --> 00:38:17.855
<00:38:15.415>deducing <00:38:15.648>the <00:38:15.881>return <00:38:16.115>type <00:38:16.348>by <00:38:16.581>the <00:38:16.815>compiler.

664
00:38:18.325 --> 00:38:20.775
<00:38:18.325>Then <00:38:18.524>we <00:38:18.725>give <00:38:18.924>the <00:38:19.125>function <00:38:19.325>a <00:38:19.524>name <00:38:19.725>fund

665
00:38:20.995 --> 00:38:25.565
<00:38:20.995>and <00:38:21.194>then <00:38:21.395>we <00:38:21.595>use <00:38:21.795>this <00:38:21.995>template <00:38:22.194>parameter <00:38:22.395>t

666
00:38:26.305 --> 00:38:31.125
<00:38:26.305>as <00:38:26.480>the <00:38:26.654>type <00:38:26.830>for <00:38:27.004>the <00:38:27.180>single <00:38:27.355>parameters <00:38:27.529>function <00:38:27.705>takes.

667
00:38:32.105 --> 00:38:35.885
<00:38:32.105>Okay, <00:38:32.455>this <00:38:32.805>very <00:38:33.155>rough <00:38:33.505>overview

668
00:38:36.345 --> 00:38:37.925
<00:38:36.345>on <00:38:37.044>function <00:38:37.745>templates.

669
00:38:37.945 --> 00:38:39.885
<00:38:37.945>Um, <00:38:38.178>if <00:38:38.411>you <00:38:38.645>like <00:38:38.878>a <00:38:39.111>better <00:38:39.345>example,

670
00:38:40.035 --> 00:38:42.205
<00:38:40.035>have <00:38:40.234>a <00:38:40.435>look <00:38:40.634>at <00:38:40.835>stu <00:38:41.035>sort <00:38:41.234>the <00:38:41.435>sorting

671
00:38:42.205 --> 00:38:43.605
<00:38:42.205>algorithm <00:38:42.520>in <00:38:42.835>the <00:38:43.150>standard <00:38:43.465>library.

672
00:38:44.365 --> 00:38:46.205
<00:38:44.365>Remember <00:38:44.714>the <00:38:45.064>standard <00:38:45.415>template <00:38:45.765>library

673
00:38:46.985 --> 00:38:49.205
<00:38:46.985>and <00:38:47.218>it <00:38:47.451>comes <00:38:47.685>in <00:38:47.918>in <00:38:48.151>different <00:38:48.385>versions

674
00:38:49.205 --> 00:38:50.605
<00:38:49.205>and <00:38:49.835>different <00:38:50.465>overloads

675
00:38:51.145 --> 00:38:53.845
<00:38:51.145>and <00:38:51.495>it <00:38:51.845>prob <00:38:52.195>allows <00:38:52.545>you

676
00:38:53.845 --> 00:38:56.285
<00:38:53.845>to <00:38:54.194>sort <00:38:54.544>sort <00:38:54.895>various <00:38:55.245>types.

677
00:38:56.545 --> 00:38:58.005
<00:38:56.545>So <00:38:56.873>that's <00:38:57.202>the <00:38:57.530>purpose <00:38:57.859>here.

678
00:39:00.105 --> 00:39:02.085
<00:39:00.105>The <00:39:00.385>other <00:39:00.665>thing <00:39:00.945>is <00:39:01.225>class <00:39:01.505>templates.

679
00:39:02.625 --> 00:39:04.085
<00:39:02.625>The <00:39:02.887>pattern <00:39:03.150>above <00:39:03.413>is <00:39:03.676>the <00:39:03.939>same.

680
00:39:04.225 --> 00:39:07.365
<00:39:04.225>We <00:39:04.352>have <00:39:04.479>the <00:39:04.606>template <00:39:04.734>hat <00:39:04.861>we <00:39:04.988>can <00:39:05.115>here <00:39:05.243>say <00:39:05.370>a <00:39:05.497>type <00:39:05.625>MT

681
00:39:07.905 --> 00:39:10.605
<00:39:07.905>or <00:39:08.371>non-type <00:39:08.838>with <00:39:09.305>size

682
00:39:11.505 --> 00:39:14.925
<00:39:11.505>and <00:39:11.645>then <00:39:11.785>we <00:39:11.925>provide <00:39:12.065>a <00:39:12.205>class <00:39:12.345>and <00:39:12.485>of <00:39:12.625>course <00:39:12.765>it's <00:39:12.905>contents,

683
00:39:14.945 --> 00:39:18.485
<00:39:14.945>but <00:39:15.120>I <00:39:15.295>don't <00:39:15.470>want <00:39:15.645>to <00:39:15.820>go <00:39:15.995>into <00:39:16.170>details <00:39:16.345>here.

684
00:39:19.545 --> 00:39:24.005
<00:39:19.545>And <00:39:19.700>as <00:39:19.856>an <00:39:20.011>example, <00:39:20.167>you <00:39:20.322>can <00:39:20.478>look <00:39:20.633>into <00:39:20.789>the <00:39:20.945>SDL

685
00:39:24.465 --> 00:39:27.845
<00:39:24.465>and <00:39:24.620>look <00:39:24.776>up <00:39:24.931>stood <00:39:25.087>vector, <00:39:25.242>um, <00:39:25.398>very <00:39:25.553>popular <00:39:25.709>for <00:39:25.865>example,

686
00:39:28.255 --> 00:39:29.525
<00:39:28.255>stood <00:39:28.636>vector <00:39:29.017>of <00:39:29.398>end.

687
00:39:30.105 --> 00:39:32.525
<00:39:30.105>And <00:39:30.260>here <00:39:30.416>you <00:39:30.571>can <00:39:30.727>see <00:39:30.882>how <00:39:31.038>you <00:39:31.193>can <00:39:31.349>type <00:39:31.505>it.

688
00:39:32.585 --> 00:39:33.805
<00:39:32.585>It <00:39:32.951>works <00:39:33.317>with <00:39:33.683>literature.

689
00:39:33.825 --> 00:39:35.685
<00:39:33.825>You <00:39:34.105>can <00:39:34.384>also <00:39:34.665>provide <00:39:34.944>double <00:39:35.225>here

690
00:39:35.985 --> 00:39:39.245
<00:39:35.985>or <00:39:36.125>you <00:39:36.265>can <00:39:36.405>say <00:39:36.545>it's <00:39:36.685>a <00:39:36.825>vector <00:39:36.965>of <00:39:37.105>your <00:39:37.245>own <00:39:37.385>class.

691
00:39:39.795 --> 00:39:44.515
<00:39:39.795>Okay, <00:39:39.970>that <00:39:40.145>all <00:39:40.320>works. <00:39:40.495>So <00:39:40.670>this <00:39:40.845>is <00:39:41.020>generic <00:39:41.195>programming.

692
00:39:44.655 --> 00:39:47.315
<00:39:44.655>Um, <00:39:44.888>there <00:39:45.121>are <00:39:45.355>whole <00:39:45.588>conferences <00:39:45.821>just <00:39:46.055>about

693
00:39:47.345 --> 00:39:48.435
<00:39:47.345>generic <00:39:48.326>programming.

694
00:39:48.915 --> 00:39:50.635
<00:39:48.915>I <00:39:49.265>really <00:39:49.615>like <00:39:49.965>it. <00:39:50.315>Um,

695
00:39:51.095 --> 00:39:53.995
<00:39:51.095>and <00:39:51.328>it's <00:39:51.561>really <00:39:51.794>great <00:39:52.028>to <00:39:52.261>have <00:39:52.495>it

696
00:39:53.995 --> 00:39:57.995
<00:39:53.995>and <00:39:54.102>to <00:39:54.210>use <00:39:54.318>it <00:39:54.425>in <00:39:54.533>c <00:39:54.641>plus <00:39:54.748>plus <00:39:54.856>it <00:39:54.964>helps <00:39:55.071>to <00:39:55.179>write <00:39:55.287>less <00:39:55.395>code

697
00:39:58.255 --> 00:40:00.395
<00:39:58.255>and <00:39:58.455>let <00:39:58.655>a <00:39:58.855>compiler <00:39:59.055>fill <00:39:59.255>in <00:39:59.455>the <00:39:59.655>plaques.

698
00:40:06.205 --> 00:40:09.755
<00:40:06.205>Now <00:40:06.671>item <00:40:07.138>number <00:40:07.605>five,

699
00:40:12.545 --> 00:40:15.705
<00:40:12.545>A <00:40:12.895>single <00:40:13.245>closing <00:40:13.595>curly <00:40:13.945>bracket.

700
00:40:17.165 --> 00:40:19.695
<00:40:17.165>We <00:40:17.445>have <00:40:17.725>that <00:40:18.005>in <00:40:18.285>a <00:40:18.565>lot

701
00:40:19.715 --> 00:40:23.015
<00:40:19.715>of <00:40:19.948>programming <00:40:20.181>languages <00:40:20.415>in <00:40:20.648>s <00:40:20.881>plus <00:40:21.115>plus.

702
00:40:23.155 --> 00:40:25.295
<00:40:23.155>It <00:40:23.505>has <00:40:23.855>a <00:40:24.205>very <00:40:24.555>specific

703
00:40:25.915 --> 00:40:28.975
<00:40:25.915>and <00:40:26.115>quite <00:40:26.315>helpful <00:40:26.515>meaning <00:40:26.715>at <00:40:26.915>least <00:40:27.115>to <00:40:27.315>me

704
00:40:30.475 --> 00:40:34.455
<00:40:30.475>it's <00:40:30.674>a <00:40:30.875>call <00:40:31.075>to <00:40:31.275>the <00:40:31.475>D <00:40:31.674>structure <00:40:31.875>classes

705
00:40:34.995 --> 00:40:38.175
<00:40:34.995>or <00:40:35.194>objects <00:40:35.395>come <00:40:35.595>with <00:40:35.795>constructors <00:40:35.995>and <00:40:36.194>D <00:40:36.395>structures.

706
00:40:38.675 --> 00:40:42.765
<00:40:38.675>And <00:40:38.908>because <00:40:39.141>c <00:40:39.375>plus <00:40:39.608>plus <00:40:39.841>is <00:40:40.075>not

707
00:40:43.525 --> 00:40:46.845
<00:40:43.525>a <00:40:43.700>language <00:40:43.875>which <00:40:44.050>with <00:40:44.225>a <00:40:44.400>virtual <00:40:44.575>machine <00:40:44.750>beneath <00:40:44.925>it,

708
00:40:48.715 --> 00:40:50.295
<00:40:48.715>we <00:40:48.995>don't <00:40:49.275>have <00:40:49.555>a <00:40:49.835>garbage <00:40:50.115>collector,

709
00:40:51.085 --> 00:40:52.145
<00:40:51.085>but <00:40:51.323>we <00:40:51.562>have <00:40:51.800>something <00:40:52.038>else.

710
00:40:52.765 --> 00:40:57.105
<00:40:52.765>We <00:40:52.904>know <00:40:53.045>that <00:40:53.185>every <00:40:53.325>time <00:40:53.464>we <00:40:53.605>hit <00:40:53.745>such <00:40:53.884>a <00:40:54.025>clearly <00:40:54.165>closing

711
00:40:57.135 --> 00:41:00.645
<00:40:57.135>bracket, <00:40:57.835>all <00:40:58.535>variables,

712
00:41:01.025 --> 00:41:04.445
<00:41:01.025>all <00:41:01.225>stack <00:41:01.425>variables <00:41:01.625>in <00:41:01.825>that <00:41:02.025>scope <00:41:02.225>get <00:41:02.425>distracted.

713
00:41:04.605 --> 00:41:08.005
<00:41:04.605>DR <00:41:04.760>de <00:41:04.916>structure <00:41:05.071>gets <00:41:05.227>called <00:41:05.382>in <00:41:05.538>the <00:41:05.693>reverse <00:41:05.849>order <00:41:06.005>of

714
00:41:08.345 --> 00:41:09.445
<00:41:08.345>how <00:41:08.674>they <00:41:09.005>were <00:41:09.335>created.

715
00:41:10.565 --> 00:41:11.655
<00:41:10.565>This <00:41:11.055>really <00:41:11.546>powerful

716
00:41:11.655 --> 00:41:14.335
<00:41:11.655>because <00:41:11.795>I <00:41:11.935>know <00:41:12.075>that <00:41:12.215>every <00:41:12.355>time <00:41:12.495>I <00:41:12.635>see <00:41:12.775>such <00:41:12.915>a <00:41:13.055>bracket

717
00:41:15.055 --> 00:41:17.335
<00:41:15.055>I <00:41:15.230>can <00:41:15.404>check <00:41:15.580>which <00:41:15.754>variables <00:41:15.930>are <00:41:16.105>in <00:41:16.279>that <00:41:16.455>scope

718
00:41:17.915 --> 00:41:20.815
<00:41:17.915>and <00:41:18.148>I <00:41:18.381>know <00:41:18.615>they <00:41:18.848>will <00:41:19.081>get <00:41:19.315>distracted.

719
00:41:21.655 --> 00:41:23.545
<00:41:21.655>Okay, <00:41:21.935>I <00:41:22.215>don't <00:41:22.495>have <00:41:22.775>to <00:41:23.055>guess

720
00:41:23.595 --> 00:41:25.545
<00:41:23.595>where <00:41:23.828>my <00:41:24.061>garbage <00:41:24.294>collector <00:41:24.528>will <00:41:24.761>do <00:41:24.995>that.

721
00:41:26.565 --> 00:41:30.135
<00:41:26.565>It's <00:41:26.765>very <00:41:26.965>precise. <00:41:27.165>It <00:41:27.365>helps <00:41:27.565>for <00:41:27.765>real-time <00:41:27.965>applications

722
00:41:30.465 --> 00:41:31.695
<00:41:30.465>where <00:41:30.741>you <00:41:31.018>need <00:41:31.295>to <00:41:31.572>know

723
00:41:32.125 --> 00:41:34.845
<00:41:32.125>that <00:41:32.300>the <00:41:32.475>memory <00:41:32.650>is <00:41:32.825>freed <00:41:33.000>at <00:41:33.175>a <00:41:33.350>certain <00:41:33.525>point,

724
00:41:35.265 --> 00:41:37.045
<00:41:35.265>at <00:41:35.615>a <00:41:35.964>specific <00:41:36.315>certain <00:41:36.665>point

725
00:41:37.045 --> 00:41:39.445
<00:41:37.045>because <00:41:37.278>you <00:41:37.511>don't <00:41:37.745>have <00:41:37.978>that <00:41:38.211>much <00:41:38.445>memory.

726
00:41:40.465 --> 00:41:42.765
<00:41:40.465>Um, <00:41:40.620>and <00:41:40.776>you <00:41:40.931>know <00:41:41.087>that <00:41:41.242>it <00:41:41.398>help <00:41:41.553>need <00:41:41.709>to <00:41:41.865>know

727
00:41:42.765 --> 00:41:43.765
<00:41:42.765>that <00:41:43.065>it <00:41:43.365>happens <00:41:43.665>there

728
00:41:44.275 --> 00:41:48.445
<00:41:44.275>because <00:41:44.625>timing, <00:41:44.975>you <00:41:45.325>cannot <00:41:45.675>afford

729
00:41:48.545 --> 00:41:50.885
<00:41:48.545>to <00:41:48.745>have <00:41:48.945>it <00:41:49.145>done <00:41:49.345>at <00:41:49.545>some <00:41:49.745>other <00:41:49.945>point

730
00:41:50.885 --> 00:41:54.685
<00:41:50.885>because <00:41:51.040>it <00:41:51.196>totally <00:41:51.351>messes <00:41:51.507>up <00:41:51.662>your <00:41:51.818>timing <00:41:51.973>here <00:41:52.129>on <00:41:52.285>that.

731
00:41:55.955 --> 00:41:59.325
<00:41:55.955>This <00:41:56.095>is <00:41:56.235>what <00:41:56.375>you <00:41:56.515>can <00:41:56.654>get <00:41:56.795>to <00:41:56.935>in <00:41:57.075>c <00:41:57.215>plus <00:41:57.355>plus

732
00:42:00.065 --> 00:42:01.485
<00:42:00.065>and <00:42:00.384>you <00:42:00.704>can <00:42:01.023>utilize <00:42:01.343>that.

733
00:42:02.225 --> 00:42:03.725
<00:42:02.225>Say <00:42:02.495>you <00:42:02.765>have <00:42:03.035>the <00:42:03.305>following <00:42:03.575>sample.

734
00:42:03.835 --> 00:42:06.685
<00:42:03.835>This <00:42:03.990>is, <00:42:04.146>um, <00:42:04.301>first <00:42:04.457>time <00:42:04.612>we <00:42:04.768>see <00:42:04.923>a <00:42:05.079>little <00:42:05.235>bit

735
00:42:06.685 --> 00:42:07.885
<00:42:06.685>more <00:42:06.955>c <00:42:07.225>plus <00:42:07.495>plus <00:42:07.765>code.

736
00:42:08.165 --> 00:42:10.365
<00:42:08.165>I <00:42:08.398>have <00:42:08.631>this <00:42:08.865>function <00:42:09.098>change <00:42:09.331>screen <00:42:09.565>here.

737
00:42:10.665 --> 00:42:14.325
<00:42:10.665>It <00:42:10.805>takes <00:42:10.945>a <00:42:11.085>screen <00:42:11.225>object <00:42:11.365>10% <00:42:11.505>here <00:42:11.645>in <00:42:11.785>line <00:42:11.925>number <00:42:12.065>one,

738
00:42:14.325 --> 00:42:15.365
<00:42:14.325>that's <00:42:14.792>a <00:42:15.261>reference.

739
00:42:15.985 --> 00:42:20.805
<00:42:15.985>Um, <00:42:16.112>so <00:42:16.239>it's <00:42:16.366>a, <00:42:16.494>the <00:42:16.621>object <00:42:16.748>I <00:42:16.875>have <00:42:17.003>here <00:42:17.130>to <00:42:17.257>new <00:42:17.385>screen.

740
00:42:21.465 --> 00:42:24.965
<00:42:21.465>So <00:42:21.605>somebody <00:42:21.745>in <00:42:21.885>the <00:42:22.025>system <00:42:22.165>changed <00:42:22.305>the <00:42:22.445>screen, <00:42:22.585>maybe <00:42:22.725>we <00:42:22.865>are,

741
00:42:25.105 --> 00:42:26.565
<00:42:25.105>um, <00:42:25.433>hitting <00:42:25.762>a <00:42:26.090>standby <00:42:26.419>screen

742
00:42:26.905 --> 00:42:29.325
<00:42:26.905>or <00:42:27.185>screensaver <00:42:27.465>mode, <00:42:27.745>something <00:42:28.025>like <00:42:28.305>this.

743
00:42:30.945 --> 00:42:32.045
<00:42:30.945>And <00:42:31.192>then <00:42:31.440>the <00:42:31.687>first <00:42:31.935>thing

744
00:42:32.905 --> 00:42:35.885
<00:42:32.905>that's <00:42:33.080>done <00:42:33.255>in <00:42:33.430>this <00:42:33.605>function <00:42:33.780>is <00:42:33.955>we <00:42:34.130>are <00:42:34.305>calling

745
00:42:36.405 --> 00:42:38.805
<00:42:36.405>a <00:42:36.605>lock <00:42:36.805>club <00:42:37.005>lock <00:42:37.205>to <00:42:37.405>the <00:42:37.605>operating <00:42:37.805>system

746
00:42:38.805 --> 00:42:40.605
<00:42:38.805>because <00:42:39.154>we <00:42:39.504>want <00:42:39.855>to <00:42:40.205>prevent

747
00:42:40.605 --> 00:42:44.485
<00:42:40.605>that <00:42:40.805>multiple <00:42:41.005>screen <00:42:41.205>change <00:42:41.405>when <00:42:41.605>some <00:42:41.805>well <00:42:42.005>due

748
00:42:44.485 --> 00:42:46.445
<00:42:44.485>to <00:42:44.718>threading <00:42:44.951>issues <00:42:45.185>or <00:42:45.418>something <00:42:45.651>like <00:42:45.885>this

749
00:42:46.665 --> 00:42:49.125
<00:42:46.665>and <00:42:46.945>up <00:42:47.225>showing <00:42:47.505>the <00:42:47.785>wrong <00:42:48.065>screen.

750
00:42:49.425 --> 00:42:52.045
<00:42:49.425>So <00:42:49.600>we <00:42:49.775>first <00:42:49.950>lock <00:42:50.125>the <00:42:50.300>entire <00:42:50.475>system <00:42:50.650>out <00:42:50.825>here

751
00:42:52.385 --> 00:42:56.125
<00:42:52.385>and <00:42:52.525>then <00:42:52.665>we <00:42:52.805>compare <00:42:52.945>in <00:42:53.085>line <00:42:53.225>number <00:42:53.365>five <00:42:53.505>whether <00:42:53.645>the <00:42:53.785>current

752
00:42:56.125 --> 00:42:58.525
<00:42:56.125>screen <00:42:56.475>equals <00:42:56.825>my <00:42:57.175>new <00:42:57.525>screen.

753
00:42:58.825 --> 00:43:00.805
<00:42:58.825>Uh, <00:42:59.105>current <00:42:59.384>screen <00:42:59.665>is <00:42:59.944>global <00:43:00.225>variable

754
00:43:01.185 --> 00:43:02.725
<00:43:01.185>and <00:43:01.416>they <00:43:01.647>compare <00:43:01.877>this <00:43:02.109>to <00:43:02.340>new <00:43:02.571>screen

755
00:43:05.405 --> 00:43:08.225
<00:43:05.405>and <00:43:05.545>if <00:43:05.685>there's <00:43:05.825>the <00:43:05.965>same, <00:43:06.105>there's <00:43:06.245>no <00:43:06.385>need <00:43:06.525>to <00:43:06.665>change <00:43:06.805>anything.

756
00:43:08.605 --> 00:43:11.145
<00:43:08.605>So <00:43:08.955>we <00:43:09.305>unlock <00:43:09.655>and <00:43:10.005>return.

757
00:43:11.695 --> 00:43:15.145
<00:43:11.695>Otherwise <00:43:11.835>in <00:43:11.975>lineup <00:43:12.115>10, <00:43:12.255>we <00:43:12.395>of <00:43:12.535>course <00:43:12.675>assign <00:43:12.815>this <00:43:12.955>new <00:43:13.095>screen

758
00:43:15.145 --> 00:43:16.745
<00:43:15.145>to <00:43:15.495>our <00:43:15.845>screen, <00:43:16.195>unlock <00:43:16.545>Dan

759
00:43:16.845 --> 00:43:18.865
<00:43:16.845>and <00:43:17.125>send <00:43:17.404>the <00:43:17.685>notification <00:43:17.964>went <00:43:18.245>around.

760
00:43:18.965 --> 00:43:21.345
<00:43:18.965>We <00:43:19.198>do <00:43:19.431>this <00:43:19.665>in <00:43:19.898>unlocked <00:43:20.131>um, <00:43:20.365>part.

761
00:43:22.565 --> 00:43:26.165
<00:43:22.565>So <00:43:22.765>trouble <00:43:22.965>is <00:43:23.165>now <00:43:23.365>there <00:43:23.565>are <00:43:23.765>one <00:43:23.965>lock

762
00:43:26.625 --> 00:43:27.725
<00:43:26.625>and <00:43:27.120>two <00:43:27.615>unlocks.

763
00:43:29.845 --> 00:43:32.035
<00:43:29.845>There <00:43:30.044>are <00:43:30.245>not <00:43:30.444>two <00:43:30.645>locks <00:43:30.845>and <00:43:31.044>two <00:43:31.245>unlocks.

764
00:43:32.035 --> 00:43:33.715
<00:43:32.035>There's <00:43:32.268>only <00:43:32.501>one <00:43:32.734>lock <00:43:32.968>and <00:43:33.201>two <00:43:33.435>unlocks.

765
00:43:34.775 --> 00:43:35.865
<00:43:34.775>Then <00:43:35.020>it's <00:43:35.265>not <00:43:35.510>so <00:43:35.756>good.

766
00:43:37.205 --> 00:43:39.385
<00:43:37.205>And <00:43:37.360>you <00:43:37.516>have <00:43:37.671>to <00:43:37.827>remember <00:43:37.982>in <00:43:38.138>line <00:43:38.293>number <00:43:38.449>six <00:43:38.605>two

767
00:43:39.405 --> 00:43:41.305
<00:43:39.405>unlock <00:43:39.755>cannot <00:43:40.105>do <00:43:40.455>it <00:43:40.805>earlier.

768
00:43:41.445 --> 00:43:44.885
<00:43:41.445>You <00:43:41.600>cannot <00:43:41.756>do <00:43:41.911>it <00:43:42.067>later. <00:43:42.222>If <00:43:42.378>you <00:43:42.533>code <00:43:42.689>gets <00:43:42.845>bigger,

769
00:43:46.835 --> 00:43:50.125
<00:43:46.835>chances <00:43:47.010>are <00:43:47.185>good <00:43:47.360>that <00:43:47.535>you <00:43:47.710>will <00:43:47.885>miss <00:43:48.060>one <00:43:48.235>unlock.

770
00:43:50.985 --> 00:43:52.725
<00:43:50.985>So <00:43:51.265>let's <00:43:51.545>use <00:43:51.825>c <00:43:52.105>plus <00:43:52.385>plus

771
00:43:53.185 --> 00:43:55.405
<00:43:53.185>and <00:43:53.535>the <00:43:53.884>well-known <00:43:54.235>destructive <00:43:54.585>type.

772
00:43:56.215 --> 00:43:58.445
<00:43:56.215>Write <00:43:56.415>our <00:43:56.615>own <00:43:56.815>class <00:43:57.015>here <00:43:57.215>in <00:43:57.415>line <00:43:57.615>number

773
00:43:58.585 --> 00:44:00.365
<00:43:58.585>one, <00:43:58.865>two, <00:43:59.145>four, <00:43:59.425>call <00:43:59.705>it <00:43:59.985>lock.

774
00:44:01.085 --> 00:44:02.905
<00:44:01.085>And <00:44:01.365>in <00:44:01.645>the <00:44:01.925>constructor <00:44:02.205>this <00:44:02.485>is

775
00:44:02.905 --> 00:44:04.105
<00:44:02.905>what <00:44:03.085>you <00:44:03.265>see <00:44:03.445>in <00:44:03.625>line <00:44:03.805>number <00:44:03.985>two,

776
00:44:05.165 --> 00:44:08.785
<00:44:05.165>we <00:44:05.320>call <00:44:05.476>the <00:44:05.631>global <00:44:05.787>function <00:44:05.942>lock <00:44:06.098>for <00:44:06.253>the <00:44:06.409>operating <00:44:06.565>system.

777
00:44:09.085 --> 00:44:11.545
<00:44:09.085>And <00:44:09.260>line <00:44:09.435>number <00:44:09.610>three, <00:44:09.785>this <00:44:09.960>is <00:44:10.135>the <00:44:10.310>D <00:44:10.485>structure

778
00:44:12.005 --> 00:44:13.865
<00:44:12.005>and <00:44:12.355>they're <00:44:12.705>recall <00:44:13.055>simply <00:44:13.405>unlock.

779
00:44:14.405 --> 00:44:16.665
<00:44:14.405>And <00:44:14.685>now <00:44:14.965>in <00:44:15.245>line <00:44:15.525>number <00:44:15.805>nine,

780
00:44:17.955 --> 00:44:21.135
<00:44:17.955>or <00:44:18.110>first <00:44:18.266>I <00:44:18.421>rep <00:44:18.577>in <00:44:18.732>line <00:44:18.888>number <00:44:19.043>eight <00:44:19.199>to <00:44:19.355>14,

781
00:44:21.135 --> 00:44:24.415
<00:44:21.135>everything <00:44:21.368>in <00:44:21.601>curly <00:44:21.835>braces, <00:44:22.068>a <00:44:22.301>new <00:44:22.535>scope.

782
00:44:24.515 --> 00:44:25.735
<00:44:24.515>And <00:44:24.734>then <00:44:24.954>in <00:44:25.173>line <00:44:25.393>number <00:44:25.613>nine,

783
00:44:26.195 --> 00:44:28.295
<00:44:26.195>I'm <00:44:26.395>creating <00:44:26.595>a <00:44:26.795>lock <00:44:26.995>object <00:44:27.195>on <00:44:27.395>the <00:44:27.595>stack.

784
00:44:29.155 --> 00:44:33.085
<00:44:29.155>And <00:44:29.282>then <00:44:29.409>in <00:44:29.536>line <00:44:29.664>number <00:44:29.791>11, <00:44:29.918>I <00:44:30.045>do <00:44:30.173>the <00:44:30.300>same <00:44:30.427>comparison <00:44:30.555>stuff

785
00:44:33.185 --> 00:44:37.965
<00:44:33.185>as <00:44:33.301>before, <00:44:33.418>but <00:44:33.535>now <00:44:33.651>I <00:44:33.768>simply <00:44:33.884>return <00:44:34.001>no <00:44:34.118>call <00:44:34.235>to <00:44:34.351>lock <00:44:34.468>or <00:44:34.585>unlock

786
00:44:38.515 --> 00:44:41.685
<00:44:38.515>because <00:44:38.748>once <00:44:38.981>I <00:44:39.214>leave <00:44:39.448>either <00:44:39.681>wider <00:44:39.915>return

787
00:44:41.985 --> 00:44:43.965
<00:44:41.985>or <00:44:42.218>the <00:44:42.451>scope <00:44:42.685>in <00:44:42.918>line <00:44:43.151>number <00:44:43.385>14,

788
00:44:46.145 --> 00:44:50.255
<00:44:46.145>the <00:44:46.320>structure <00:44:46.495>gets <00:44:46.670>called <00:44:46.845>and <00:44:47.020>by <00:44:47.195>that <00:44:47.370>unlock, <00:44:47.545>okay?

789
00:44:50.255 --> 00:44:54.135
<00:44:50.255>This <00:44:50.395>is <00:44:50.535>how <00:44:50.675>you <00:44:50.815>can <00:44:50.955>manage <00:44:51.095>your <00:44:51.235>resources <00:44:51.375>in <00:44:51.515>c <00:44:51.655>plus

790
00:44:54.135 --> 00:44:55.575
<00:44:54.135>plus <00:44:54.783>very <00:44:55.431>efficiently.

791
00:44:55.685 --> 00:44:58.995
<00:44:55.685>Very <00:44:55.965>precisely. <00:44:56.245>And <00:44:56.525>this <00:44:56.805>is, <00:44:57.085>um,

792
00:44:59.225 --> 00:45:02.355
<00:44:59.225>what <00:44:59.380>I <00:44:59.536>miss <00:44:59.691>very <00:44:59.847>often <00:45:00.002>if <00:45:00.158>I <00:45:00.313>switch <00:45:00.469>programming <00:45:00.625>languages,

793
00:45:02.825 --> 00:45:04.155
<00:45:02.825>this <00:45:03.224>is <00:45:03.623>the <00:45:04.022>destructure

794
00:45:04.155 --> 00:45:07.115
<00:45:04.155>because <00:45:04.310>you <00:45:04.466>can <00:45:04.621>do <00:45:04.777>so <00:45:04.932>many <00:45:05.088>good <00:45:05.243>things <00:45:05.399>in <00:45:05.555>there.

795
00:45:09.415 --> 00:45:12.995
<00:45:09.415>All <00:45:09.570>right. <00:45:09.726>I <00:45:09.881>hope <00:45:10.037>you <00:45:10.192>learned <00:45:10.348>a <00:45:10.503>couple <00:45:10.659>of <00:45:10.815>things.

796
00:45:13.175 --> 00:45:16.795
<00:45:13.175>Um, <00:45:13.302>I <00:45:13.429>hope <00:45:13.556>at <00:45:13.684>least <00:45:13.811>two <00:45:13.938>and <00:45:14.065>that <00:45:14.193>what's <00:45:14.320>the <00:45:14.447>destructure <00:45:14.575>is

797
00:45:17.375 --> 00:45:19.555
<00:45:17.375>and <00:45:17.608>what's <00:45:17.841>the <00:45:18.075>meaning <00:45:18.308>of <00:45:18.541>my <00:45:18.775>name

798
00:45:19.555 --> 00:45:21.635
<00:45:19.555>because <00:45:19.835>at <00:45:20.115>this <00:45:20.395>point <00:45:20.674>I'm <00:45:20.955>fer.