[PDF] Programming languages and particle physics





Previous PDF Next PDF



Computational Physics

C/C++ PROGRAMMING: Software engineering in C P.A. Darnell



C programming for physicists

C programming for physicists. W. H. Bell c 2015. The C programming language is introduced through a set of worked ex- amples. Linux tools for editing 



PHYSICS

hysics handbook of the. PHYSICS. PRACTICAL COURSE. 2010–2011. PHYSICS. C PROGRAMMING. COURSE. UNIVERSITY OF OXFORD. PHYSICS TEACHING FACULTY 



Introduction to Computational Physics 370

https://www.ndsu.edu/pubweb/~carswagn/LectureNotes/370/ComputationalPhysics.pdf



Programming languages and particle physics

May 8 2019 come to tomorrow's LPC Physics Forum at 1:30pm.) ... Python runtime implemented in C source code. C source code compiled into.



BASICS OF C - PROGRAMMING BSc. 4th/6th Semester Class notes

Dr. Upakul Mahanta Department of Physics



Introduction to Computational Physics

Physics. Meeting 1: Zero to Loops. Today: ? Simple C Programs. ? Variables. ? Loops We'll be using the C programming language under the Linux.



Introduction to Programming and Computational Physics

Feb 19 2019 basic knowledge of the C programming language and of its employment to address physics-related questions such as numerical integration



OBJECT ORIENTED PROGRAMMING FOR SIMULATION

Corporation which combines OOP with the efficiency of the C language



PHYSICS B.S.

______ 2 CS 22700 Introduction to C Programming. ______ 1 CS 22800 Object Oriented Program in C++. MECHANICAL ENGINEERING SPECIALIZATION.

Programming languages and particle physics

Jim Pivarski

Princeton University { IRIS-HEP

May 8, 2019

1/57 2/57

But that just ended a few minutes ago.

(This talk is not a summary of the workshop; come to tomorrow's LPC Physics Forum at 1:30pm.)Instead, let's take a step back... 3/57

But that just ended a few minutes ago.

(This talk is not a summary of the workshop; come to tomorrow's LPC Physics Forum at 1:30pm.)Instead, let's take a step back... 3/57 4/57

Because, you know, it's dierent water.

5/57

So why do we say it's the same river?

5/57

Why do we say it's the same river?

The river is an

abstraction We associate an enormous number of microscopic states (\molecules

here, molecules there") with a single macroscopic state (\the river").It's an abstraction like thermodynamics;

it can be exact with the right denitions. 6/57

Why do we say it's the same river?

The river is an

abstraction We associate an enormous number of microscopic states (\molecules

here, molecules there") with a single macroscopic state (\the river").It's an abstraction like thermodynamics;

it can be exact with the right denitions. 6/57 Most of computer science is about abstracting details, too. doublebessel_j0(doublex) { doubleout; if(fabs(x)< 8.0 ) { doubley= x *x; doubleans1= 57568490574.0 + y *(-13362590354.0+ y *(651619640.7 y *(-11214424.18+ y *(77392.33017+ y *(-184.9052456))))); doubleans2= 57568490411.0 + y *(1029532985.0+ y *(9494680.718 y *(59272.64853+ y *(267.8532712+ y *1.0)))); out ans1 ans2; else{ doublez= 8.0 / fabs(x); doubley= z *z; doublexx= fabs(x) - 0.785398164 ; doubleans1= 1.0 + y *(-0.1098628627e-2+ y *(0.2734510407e-4 y *(-0.2073370639e-5+ y *0.2093887211e-6))); doubleans2= - 0.1562499995e-1+ y *(0.1430488765e-3 y *(-0.6911147651e-5+ y *(0.7621095161e-6 y *0.934935152e-7))); out sqrt(

0.636619772

fabs(x)) *(cos(xx)*ans1- z *sin(xx)*ans2); returnout; } one value goes in one value comes out7/57 Most of computer science is about abstracting details, too. doublebessel_j0(doublex) { doubleout; if(fabs(x)< 8.0 ) { doubley= x *x; doubleans1= 57568490574.0 + y *(-13362590354.0+ y *(651619640.7 y *(-11214424.18+ y *(77392.33017+ y *(-184.9052456))))); doubleans2= 57568490411.0 + y *(1029532985.0+ y *(9494680.718 y *(59272.64853+ y *(267.8532712+ y *1.0)))); out ans1 ans2; else{ doublez= 8.0 / fabs(x); doubley= z *z; doublexx= fabs(x) - 0.785398164 ; doubleans1= 1.0 + y *(-0.1098628627e-2+ y *(0.2734510407e-4 y *(-0.2073370639e-5+ y *0.2093887211e-6))); doubleans2= - 0.1562499995e-1+ y *(0.1430488765e-3 y *(-0.6911147651e-5+ y *(0.7621095161e-6 y *0.934935152e-7))); out sqrt(

0.636619772

fabs(x)) *(cos(xx)*ans1- z *sin(xx)*ans2); returnout; } one value goes in one value comes out7/57 Most of computer science is about abstracting details, too. doublebessel_j0(doublex) { doubleout; if(fabs(x)< 8.0 ) { doubley= x *x; doubleans1= 57568490574.0 + y *(-13362590354.0+ y *(651619640.7 y *(-11214424.18+ y *(77392.33017+ y *(-184.9052456))))); doubleans2= 57568490411.0 + y *(1029532985.0+ y *(9494680.718 y *(59272.64853+ y *(267.8532712+ y *1.0)))); out ans1 ans2; else{ doublez= 8.0 / fabs(x); doubley= z *z; doublexx= fabs(x) - 0.785398164 ; doubleans1= 1.0 + y *(-0.1098628627e-2+ y *(0.2734510407e-4 y *(-0.2073370639e-5+ y *0.2093887211e-6))); doubleans2= - 0.1562499995e-1+ y *(0.1430488765e-3 y *(-0.6911147651e-5+ y *(0.7621095161e-6 y *0.934935152e-7))); out sqrt(

0.636619772

fabs(x)) *(cos(xx)*ans1- z *sin(xx)*ans2); returnout; } one value goes in one value comes out7/57

The abstraction is cumulative:

Every function/class/module has an

interior and an interface|minimizing #external parameters#internal parameters reduces the mental burden on programmers and users. 8/57

Science has layers of abstraction

These are approximate, taking advantage of a separation of scales. 9/57 (cartoon diagram, not to scale)#external parameters #internal parameters abstraction in science (atom proton quark)computer programming machine learningthermodynamics10/57 Software interfaces can be exact, despite radical internal dierences. I

Super Mario Bros.

entirely rewritten in Javascript b yJosh Goldb erg. IShares none of the original code, but behaves identically.Is it the same program? 11/57 Software interfaces can be exact, despite radical internal dierences. I

Super Mario Bros.

entirely rewritten in Javascript b yJosh Goldb erg. IShares none of the original code, but behaves identically.Is it the same program? 11/57

As a young programmer, I wasn't satised

with high-level languages because I wanted to get down to the \real" computer.Which meant Pascal. Pascal was \real," and BASIC was not.But ultimately, not even assembly code is real in the sense that I'm meaning here. 12/57

As a young programmer, I wasn't satised

with high-level languages because I wanted to get down to the \real" computer.Which meant Pascal. Pascal was \real," and BASIC was not.But ultimately, not even assembly code is real in the sense that I'm meaning here. 12/57

As a young programmer, I wasn't satised

with high-level languages because I wanted to get down to the \real" computer.Which meant Pascal. Pascal was \real," and BASIC was not.But ultimately, not even assembly code is real in the sense that I'm meaning here. 12/57

The objectively real part of a computer is a set

of physical states.that we interpretas computations. 13/57

The objectively real part of a computer is a set

of physical states.that we interpretas computations. 13/57 Programming languages are how wedescribeour interpretations.

XIX + IV = XXIII

19 + 4 = 23(And some languages are better at it than others.)14/57

Programming languages are how wedescribeour interpretations.

XIX + IV = XXIII

19 + 4 = 23(And some languages are better at it than others.)14/57

Programming languages dier in their degree of abstraction,

butallprogramming languages are for humans, not computers.Each one re-expresses the programmer's intent in terms of another:

CMSSW conguration

implemented in

Python runtime

Python runtime

implemented in

C source co de

C source code

compiled into machine instructions machine instructions built into logic gates logic gates interp retedas computation. Only the last level actually pushes the abacus beads. 15/57 Programming languages dier in their degree of abstraction,

butallprogramming languages are for humans, not computers.Each one re-expresses the programmer's intent in terms of another:

CMSSW conguration

implemented in

Python runtime

Python runtime

implemented in

C source co de

C source code

compiled into machine instructions machine instructions built into logic gates logic gates interp retedas computation. Only the last level actually pushes the abacus beads. 15/57 Programming languages dier in their degree of abstraction,

butallprogramming languages are for humans, not computers.Each one re-expresses the programmer's intent in terms of another:

CMSSW conguration

implemented in

Python runtime

Python runtime

implemented in

C source co de

C source code

compiled into machine instructions machine instructions built into logic gates logic gates interp retedas computation. Only the last level actually pushes the abacus beads. 15/57

Originally, programming languagesdidn'tpush the abacus beads.Ada of Lovelace'salgo rithmfo rcomputing

Bernoulli numbers was written for a

computer that never ended up being

invented, but it was a program.John McCarthy, creator of Lisp:\This EV ALw aswritten and published in the pap erand

Steve Russel said, `Look, why don't I program this EVAL?' and I said to him, `Ho, ho, you're confusing theory with practice|this EVAL is intended for reading, not for

computing!' But he went ahead and did it."APL (ancestor of MATLAB, R, and Numpy)w asalso a notation fo rdescribing p rograms

years before it was executable. The book was namedA Programming Language.16/57

Originally, programming languagesdidn'tpush the abacus beads.Ada of Lovelace'salgo rithmfo rcomputing

Bernoulli numbers was written for a

computer that never ended up being

invented, but it was a program.John McCarthy, creator of Lisp:\This EV ALw aswritten and published in the pap erand

Steve Russel said, `Look, why don't I program this EVAL?' and I said to him, `Ho, ho, you're confusing theory with practice|this EVAL is intended for reading, not for

computing!' But he went ahead and did it."APL (ancestor of MATLAB, R, and Numpy)w asalso a notation fo rdescribing p rograms

years before it was executable. The book was namedA Programming Language.16/57

Originally, programming languagesdidn'tpush the abacus beads.Ada of Lovelace'salgo rithmfo rcomputing

Bernoulli numbers was written for a

computer that never ended up being

invented, but it was a program.John McCarthy, creator of Lisp:\This EV ALw aswritten and published in the pap erand

Steve Russel said, `Look, why don't I program this EVAL?' and I said to him, `Ho, ho, you're confusing theory with practice|this EVAL is intended for reading, not for

computing!' But he went ahead and did it."APL (ancestor of MATLAB, R, and Numpy)w asalso a notation fo rdescribing p rograms

years before it was executable. The book was namedA Programming Language.16/57

Programmers had to manually translate

these notations into instruction codes. That's why it was called \coding."Von Neumann called assembly language \a waste of a valuable scientic computing instrument|using it for clerical work! 17/57

Programmers had to manually translate

these notations into instruction codes. That's why it was called \coding."Von Neumann called assembly language \a waste of a valuable scientic computing instrument|using it for clerical work! 17/57

The Software Crisis

Now that our programming languagesdopush abacus beads, software engineering has become an odd discipline: sa yingsomething is the same as making it. And yet, westillget it wrong.18/57

The Software Crisis

Now that our programming languagesdopush abacus beads, software engineering has become an odd discipline: sa yingsomething is the same as making it. And yet, westillget it wrong.18/57 We favorhigh-level languages b ecausethey have few erconcepts,

hopefully just the ones that are essential for a problem.But what about speed?Don't we choose languages for speed?\There's no such thing as a `fast' or `slow' language."

| so sayeth the StackOver ow 19/57 We favorhigh-level languages b ecausethey have few erconcepts,

hopefully just the ones that are essential for a problem.But what about speed?Don't we choose languages for speed?\There's no such thing as a `fast' or `slow' language."

| so sayeth the StackOver ow 19/57 We favorhigh-level languages b ecausethey have few erconcepts,

hopefully just the ones that are essential for a problem.But what about speed?Don't we choose languages for speed?\There's no such thing as a `fast' or `slow' language."

| so sayeth the StackOver ow 19/57

Except Python. Python is slow, right?

But it really isn't the language; it's the implementation. import numpy defrun(height, width, maxiterations=20): y, x numpy ogrid[ 1 0 :height *1j,- 1.5:0:width*1j] c x y *1j fractal numpy full(c shape, maxiterations, dtypequotesdbs_dbs14.pdfusesText_20
[PDF] c programming tutorial pdf download

[PDF] c read file line by line and split

[PDF] c read file line by line fgets

[PDF] c read file line by line getline

[PDF] c read file line by line into array

[PDF] c read file line by line into char array

[PDF] c read file line by line until eof

[PDF] c scientific computing library

[PDF] c sharp interface inheritance

[PDF] c sharp object oriented programming tutorial

[PDF] c sharp scientific computing

[PDF] c sharp tutorial pdf download

[PDF] c spire account pin

[PDF] c spire bring your own phone

[PDF] c spire customer service