Microsoft PowerPoint - tutorial.ppt

Reviews
Shared by: techmaster
Stats
views:
287
rating:
not rated
reviews:
0
posted:
10/29/2008
language:
UNKNOWN
pages:
0
Heather J. Meeker Silicon Valley Office Tutorial: What Software Lawyers Need to Know about Software FOSS Beyond the Basics: Advanced Legal Topics in Open Source and Collaborative Development in the Global Marketplace Shidler Center University of Washington March 21, 2006, 8:00 a.m. Software - 1960s to 1970s Computer software is customdeveloped Most computer systems are large and have unique configurations Languages are procedural (FORTRAN, COBOL, BASIC, C) A computer system costs $100K and up Source code is usually delivered 2 Software - 1980s Development of DOS/Wintel platform PCs become ubiquitous and standardized Software becomes an off-the-shelf product Source code is not delivered 3 Software - 1990s to 2000s "Free software" movement Rise of object-oriented programming (e.g. C++, Java) Rise of distributed computing: client-server technology and web servers/Java 4 Source Code, Binary Code, and Compilers Source Code Written in “Higher Level Computer Language“ Trained programmer can read, understand, critique, edit and Improve Computer CANNOT use in this form Designed to show logic and structure Compiler Software Converts source to machine-readable form Strips out human-readable comments and logic Results in Binary Code - “1’s and 0’s” Binary Code Executable by computers Used in binary or “object” form Conventional form of distributed proprietary software Programs written in some languages need not be compiled to be read by a computer (e.g., BASIC, PERL, HTML) 5 Compilers are Similar to Redliners Compilers are like DeltaView Both are “batch programs” with static input and output files Modifying the output file is not useful, accurate or easy If you want to modify the output, you must change the input file and re-run the program 6 Interpreted languages (Java, PERL) 7 Example: Commented Source Code main( ) { char line[100]; int i; i = 0; while( (line[i++]=getchar( )) != '\n' ); /*This is the main routine*/ /*allocate a string of up to 100 characters*/ /*i is the index for the position in the string*/ /*initialize the index to zero*/ /*increase n one at a time. While there is still a character to get (i.e., last character is not the ‘\n’ character), get another character*/ /*make sure the last character is null*/ /*print out the line*/ /*end of routine*/ line[i] = '\0'; printf("%d:\t%s", i, line); } 8 Linking Connects multiple object files to form an executable program Simplifies complex programs by allowing code to be written in smaller, more manageable pieces or modules Modules communicate with each other using references, with the “linker” making sure they correspond properly Dynamic and Static Linking, Inline, are counterparts 9 Header Files Header files contain the declaration, but not the definitions, of functions A header file: #define EXAMPLE_H extern int square(int x); In the source file: #include "example.h" The definition, in library file example.n: int square(int x) { return (x * x); } 10 Library A Collection of precompiled routines that a program can use Similar to your folder of favorite contract provisions Make code more efficient by storing frequently used code Stored in Object format Linkers automatically look in libraries for routines not found elsewhere 11 Monolithic Architecture Source File Source File Source File Compiler Software Object File Object File Object File Linker Executable Program 12 Using Libraries Application Source File Library Compiler Software Object File Object File Object File Linker Executable Program 13 Static Link Object File Object File Iron bars? Dynamic Link Inline Object File Object File Object File Object File Bungee Cords? Object File 14 Some Observations Header files may contain little copyrightable material; only the information that would be in an API. Object-oriented programming means interfaces can be complicated. Dynamic linking only creates the full executable at run time 15 Object Oriented Programming Class 16 Object Oriented Programming Class 17 Object Oriented Programming Function int square(int x) { return (x * x); } 18 Operating System Built in layers to communicate with hardware at the most basic levels No application software runs without it Performs the following basic functions: Allocates memory Executes processes Accesses disks peripherals (such as keyboards) and devices (such as printers) Includes hooks through which applications communicate though application program interfaces (APIs) An operating system product "distribution" must also include tools like: compiler tools shell (user interface) tools boot and shutdown scripts Utilities for Linux were developed by the GNU project run by the Free Software Foundation Monolithic architectures versus loadable kernel modules 19 User Space Application programs have access to limited function calls within the kernel This “walls off” application programs from performing basic operating system functions “User space” is defined as programs that stay within this boundary The boundary is arbitrary, and defined by the O/S designers through the system protocol 20 Kernel Base Layer or Foundation of the Operating System Provides the Most Basic “Low Level” Services: Hardware-Software Interaction Memory Management Process and Task Management Security 21 Our Hypothetical: Alpha and Omega Alpha Company Account Manager (proprietary software of Alpha) Omega Company Database Manager 2.0 (free software DM 1.0 modified by Omega) Alpha published interface Omega published interface (dynamic links) Connector Is this a derivative work of DM2.0? 22 (proprietary, developed by Alpha) Thank You For further information, please contact: Heather J. Meeker | Greenberg Traurig, LLP 1900 University Avenue, 5th Floor East Palo Alto, California 94303 650.289.7825 | meekerh@gtlaw.com SV1:25807v3:3-16-06 SV1: #25807v2: 5/31/2006

Related docs
Microsoft PowerPoint - TUTORIAL.ppt
Views: 61  |  Downloads: 2
Microsoft PowerPoint - tutorial.ppt
Views: 304  |  Downloads: 11
Microsoft PowerPoint - Tutorial.ppt
Views: 47  |  Downloads: 5
Microsoft PowerPoint - Tutorial.ppt
Views: 43  |  Downloads: 2
Microsoft PowerPoint - tutorial.ppt
Views: 54  |  Downloads: 3
Microsoft PowerPoint - CCEIX Tutorial.ppt
Views: 35  |  Downloads: 1
Microsoft PowerPoint - ns-tutorial.ppt
Views: 61  |  Downloads: 2
Microsoft PowerPoint - breadboard tutorial.ppt
Views: 33  |  Downloads: 3
Microsoft PowerPoint - TinyOS Tutorial.ppt
Views: 45  |  Downloads: 4
Microsoft PowerPoint - PSO MINI TUTORIAL.PPT
Views: 142  |  Downloads: 13
premium docs
Other docs by techmaster
SALES FOLLOW UP LETTER
Views: 788  |  Downloads: 55
Checklist for purchasing used vehicles
Views: 346  |  Downloads: 9
Shareholders Resolution Appointing Directors
Views: 221  |  Downloads: 3
Juniper Networks Inc Ammendments and Bylaws
Views: 168  |  Downloads: 1
Jetblue Airways Inc Ammendments and Bylaws
Views: 165  |  Downloads: 2
Kraft Foods Inc Ammendments and Bylaws
Views: 178  |  Downloads: 1
Legalopinioncom Ammendments and Bylaws
Views: 187  |  Downloads: 1
r490
Views: 318  |  Downloads: 6
Contractor Hourly Agreement For IT Pros Offsite
Views: 288  |  Downloads: 17
Form FinCEN102A (PDF) Instructions
Views: 206  |  Downloads: 1
Intraware Inc Ammendments and Bylaws
Views: 199  |  Downloads: 0