Google Answers Logo
View Question
 
Q: All about Programing languge ( Answered,   0 Comments )
Question  
Subject: All about Programing languge
Category: Computers > Programming
Asked by: johnson_gray-ga
List Price: $150.00
Posted: 13 Sep 2005 22:04 PDT
Expires: 13 Oct 2005 22:04 PDT
Question ID: 567840
hello
i want to know 1.what is This Software, 2.what it exactly do ? ,
3.need some example of that , 4.and some usage of that 5.where/How can
i learn them , 6.Who will use these softwares ? 7. where can Download
it or Buy it ? 8. if i want to buy this software what should i call it
to shop kepper.

Programing:
php*
asp*
asp.net
aspx
VB*
VB.net
.Net*
C*
C+
C++
VC++(VC)
Java
JavaScrip
VB scrip
Perl*
Ms-sql
sql*
My sql server
Access*
-------------------
* the software that i have * near it is more important for me
And i need some game desighn software .

Request for Question Clarification by wengland-ga on 15 Sep 2005 11:20 PDT
The software types are pretty simple, as well as how to set up a
development environment.

However, what do you mean by "game desighn software"?  Do you want a
development environment for making 3-D first person shooter games? 
Console games for Playstation?  X-Box?  Realtime simulation?  2D games
for cell phones?  That's a very broad category.

Clarification of Question by johnson_gray-ga on 16 Sep 2005 07:38 PDT
a development environment for making 3-D first person shooter games for PC

For example i remeber 2 or 3 years ago that Valve Softwares has
released the Half-life Game Engine Out for free and u could make games
with that 3D game Engine.
Answer  
Subject: Re: All about Programing languge
Answered By: politicalguru-ga on 16 Sep 2005 12:36 PDT
 
Dear Johnson Gray, 

php
===

(1) PHP is a "scripting language that is especially suited for Web
development and can be embedded into HTML" (SOURCE: PHP Homepage,
<http://www.php.net/>).

(2) PHP is used to create dynamic webpages, and other software. 

(3) Wikipedia notes that "famous examples of PHP applications include
phpBB as well as MediaWiki, the software behind Wikipedia. The PHP
model can be seen as an alternative to Microsoft's ASP.NET/C#/VB.NET
system, Macromedia's ColdFusion system, Sun Microsystems' JSP/Java
system, and to the Mod perl/Perl system." (SOURCE: Wikipedia, PHP,
<http://en.wikipedia.org/wiki/PHP>). The article also includes an
example of a script.

For another example, see a tutorial regrading the application of PHP
in gaming programming:
PHP Gaming - Part 1
<http://www.forums.hostmatrix.org/showthread.php?t=3967> 
PHP Gaming - Part 2
<http://www.forums.hostmatrix.org/showthread.php?t=5090> 
PHP Gaming - Part 3
<http://www.forums.hostmatrix.org/showthread.php?t=5505> 

(4) An example of a dymanic webpage usage: 
Curse Gaming 
<http://www.curse-gaming.com/mod.php> 
Unreal Tournament - Downloads
<http://www.unrealtournament.com/ut2004/downloads.php> 
The Hostmatrix forum linked above is also written in PHP. 

(5) PHP is an open source programming language, which means that you
don't have to buy anything to learn it or to write in it. You can use
the following tutorials, except for the gaming-specific one mentioned
in (3):
PHP.net
<http://www.php.net/> 

W3 Schools - PHP
<http://www.w3schools.com/php/default.asp>

PHP Freaks!
<http://www.phpfreaks.com/>

Learn PHP the easy way - PHPBuddy.com
<http://www.phpbuddy.com/> 

PHPBuilder.com
<http://www.phpbuilder.com/>

php scripts 
<http://www.php-scripts.com/>

(6) Wikipedia: "PHP is currently one of the most popular server-side
scripting systems on the Web. " (SOURCE: ibid).

(7) You can download PHP at their official webpage: 
PHP - Download
<http://www.php.net/downloads.php#v5> 

(8) As mentioned before, this is an open source software, it is free.
Many tutorials are sold in shops, though.

Further Sources
---------------
PHP-Nuke
<http://phpnuke.org/> 

The PHP Resource Index
<http://php.resourceindex.com/> 

phpBB.com :: Creating Communities
<http://www.phpbb.com/> 

[book] Beginning PHP 5 and MySQL: From Novice to Professional by W. J. Gilmore
<http://www.amazon.com/exec/obidos/tg/detail/-/1893115518> 


ASP/ASP.net/ASPX  
================
(1) ASP - "Active Server Pages" is a Microsoft "server-side technology
for dynamically-generated web pages". "ASP.NET (also ASP+) is an
enhanced version of ASP for the .NET platform. It supports executable
programs compiled from C#, C++ and other languages and is not backward
compatible with regular ASP code. ASP.NET pages are always compiled
rather than interpreted as are ASP pages." (SOURCE: Technology
information about Active Server Pages, Answers.com,
<http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Active+Server+Pages&gwp=8&curtab=2222_1&linktext=Active%20Server%20Pages>).
ASPX is another name for ASP.net. For differences between ASP and
ASP.Net (ASPX) see:
Wikipadia, ASPX
<http://en.wikipedia.org/wiki/Aspx> 

(2) You can create interactive sessions with users with asp. 

(3) "Pages can be generated by mixing server-side scripting code
(including database access) with HTML and client-side code. "
(Wikipedia, asp, <http://en.wikipedia.org/wiki/Active_Server_Pages>).
The article also includes acript examples.

Here is an example of a webpage written with asp: 
Shoshone - Bannock Tribal Enterprises
<http://www.sho-ban.com/index.asp>

(4) ASP and ASP.net can be used for various web-based interactive
applications. See for example games:
ASPin - Games
<http://www.aspin.com/home/webapps/games> 

(5) You can learn ASP though tutorials, some exist online for free. For example: 
W3 Schools: ASP Tutorial
<http://www.w3schools.com/asp/default.asp>

ASP tutorial for beginners and free scripts
<http://www.asptutorial.info/>

LearnAsp.com - Free Lessons by Charles Carroll
<http://www.learnasp.com/learnasp/>

ASP Free/Help
<http://www.aspfree.com/>

ASP Tutorial By David Brebner
<http://www.advantage.co.nz/ur/aspquiz.htm>

15 Seconds
<http://www.15seconds.com/>

Tutorials @ Active Server Corner
<http://www.kamath.com/tutorials/>

(6) Asp is being widely used, by different sources, from government
and academia to private or commercial web pages.

(7) At Microsoft's homepage: 
Download ASP.net 1.1
<http://www.asp.net/download-1.1.aspx?tabindex=0&tabid=1> 

(8) Active Server Pages, or ASP. 

Further sites
-------------
Microsoft's ASP.NET
<http://www.asp.net/>

ASP Today
<http://www.asptoday.com/>

ASPAlliance.com
<http://www.aspalliance.com/>

The ASP Resource Index
<http://www.aspin.com/> 

[book] ASP in a Nutshell, 2nd Edition -- by A. Keyton Weissinger
<http://www.amazon.com/exec/obidos/tg/detail/-/1565928431/qid=1126888137/sr=2-2/ref=pd_bbs_b_2_2/102-1363465-4776923?v=glance&s=books>


VB/VB.net
=========
(1) VB stands for "visual basic" (while VB.net stands for VB on MS.Net
applications). It is a programming language defined as "an event
driven programming language and associated development environment
created by Microsoft."  (SOURCE: Wikipedia, Visual Basic,
<http://en.wikipedia.org/wiki/Visual_Basic>). For differences between
VB and VB.net (very different languages, despite the name), see:
Wikipedia, Visual Basic.net
<http://en.wikipedia.org/wiki/Visual_Basic_.NET> 

(2) "VB enables Rapid Application Development (RAD) of graphical user
interface (GUI) applications, access to databases using DAO, RDO, or
ADO, and creation of ActiveX controls. " [...] "Visual Basic .NET,
VB.NET, is a backwards-incompatible upgrade of Visual Basic to
Microsoft's .NET platform. [...] VB.NET has support for threading,
advanced object oriented code, Try-Catch-Finally blocks, and
zero-based arrays. Many new features (mainly from the .NET framework)
have also appeared, like remoting, web services, 64-bit integers and
ADO.NET." (ibid).

(3) Script examples could be viewed here: 
Wikibooks - Visual Basic Classic - J Arithmatic
<http://en.wikibooks.org/wiki/Programming:Visual_Basic_Classic/JArithmetic> 

(4) Here is an article on usage in writing games: 
Sample Technical Documentation: How to Create a Simple Game Using Visual Basic 
<http://members.shaw.ca/mattleung/How%20to%20Create%20a%20Simple%20Game%20Using%20Microsoft%20Visual%20Basic.doc>
(word document).
Some further applications could be seen at: 
Free VB Code
<http://www.freevbcode.com/> 

(5) Here are some free tutorials. Naturally, you can also take a
course at a local technology centre or community college:
Mastering Visual Basic
<http://www.free-ed.net/free-ed/InfoTech/vb01/> 
Visual  Basic Tutorial
<http://www.vbtutor.net/> 

(6) While VB.net is widely used, VB is usually criticised as a
"children's language", "too simple" and lacking some elementary
features.

(7) See the Microsoft site to understand what you need for VB.Net
Getting Started
<http://msdn.microsoft.com/vbasic/gettingstarted/getvb/> 

(8) Some version of MS "Visual Studio" (see 7)

Further Sources
---------------
Wikibooks - Visual Basic Classic
<http://en.wikibooks.org/wiki/Programming:Visual_Basic_Classic> 

Microsoft - VB 6.0 site 
<http://msdn.microsoft.com/vbasic/previous/vb6/> 
Microsoft VB - 
<http://msdn.microsoft.com/vbasic/> 

VBnet Visual Basic Developers Resource Centre 
<http://vbnet.mvps.org/> 

vbAccelerator.com, a site devoted to providing free, advanced source
code to Visual Basic programmers since June 1998 and now also to the
.NET and C# community.
<http://www.vbaccelerator.com/home/index.asp> 

VB Code
<http://www.vbcode.com/> 


Microsoft.NET platform
=======================
(1) This is not a "software" or a language. It is a complex of
software development platform developed by Microsoft. "Microsoft
defines the platform as an "environment for building, deploying and
running Web services and other applications. It consists of three main
parts: the Common Language Runtime, the Framework classes, and
ASP.NET."" (SOURCE: Wikipedia, Microsoft .NET,
<http://en.wikipedia.org/wiki/Microsoft_.NET>).

(2) It enables development of applications for all kinds of
Windows/Web-based interfaces.

(3) It is difficult to give "an example" of Microsoft.net, because it
isa platform, which coordinates between different applications, not a
single application or language.

(4) MS NET is used in business, but also to link between applications
in other fields of life.

(5) I think that if you really want to get comprehensive information
on MS NET, a course might be the best solution. However, there are
several introductory tutorials:
Essential .NET, Volume I: The Common Language Runtime (Paperback)
by Don Box
<http://www.amazon.com/exec/obidos/tg/detail/-/0201734117/ref=cm_bg_f_1/102-1363465-4776923?v=glance>
 Applied Microsoft .NET Framework Programming by Jeffrey Richter
<http://www.amazon.com/exec/obidos/tg/detail/-/0735614229/ref=pd_bxgy_text_1/102-1363465-4776923?v=glance&s=books&st=*>
Programming .NET Components, 2nd Edition by Juval L&#246;wy
<http://www.amazon.com/exec/obidos/tg/detail/-/0596102070/ref=pd_sim_4/102-1363465-4776923?%5Fencoding=UTF8&v=glance>
W3 Schools
<http://www.w3schools.com/ngws/default.asp> 
Microsoft .NET Tutorials
<http://www.techtutorials.info/wbmsnet.html>
Programming Tutorials
<http://www.programmingtutorials.com/dotnet.aspx> 

(6) Businesses, large organisations, etc. Almost any commercial/large
MS-based system today has .net components.

(7) MS download
Download MS .NET 1.1
<http://msdn.microsoft.com/netframework/downloads/framework1_1/> 
Read more here: 
<http://msdn.microsoft.com/netframework/gettingstarted/default.aspx> 

(8) See 7 above. 


C/C++/VC++/C#
=============
(1) C is a programming langauge. C++ is a programming language, which
is similar to C (but has been developed as an enhancement to C). VC++
(Visual C ++) is an integration of C and C++, developed by Microsoft,
not exactly a "language". VD++ works on .NET platform. C# ("C Sharp")
is a programming language,also developed by Microsoft, also working on
.NET, based on C++ and Java.

(2) C is designed mostly to program systems, not applications. C++ is
a "statically typed free-form multi-paradigm language supporting
procedural programming, data abstraction, object-oriented programming,
and generic programming." (SOURCE: Wikipedia,
<http://en.wikipedia.org/wiki/C_Plus_Plus>

(3) For an example of C, see: 
Wikipedia - C Programming Language - Example
<http://en.wikipedia.org/wiki/C_programming_language#.22hello.2C_world.22_example> 
Examples of C++
<http://en.wikipedia.org/wiki/C_Plus_Plus#C.2B.2B_examples> 
Example of C#:
<http://en.wikipedia.org/wiki/C_Sharp#Hello_world_example> 

(4) C is widely used in system programming. C# and VC++ are used as
part of .NET , for various application development.

(5) C is learnt in higher education institutions, and is considered
difficult. However, one could also use tutorials, such as:
Programming in C
<http://www.lysator.liu.se/c/>
C Programming and C++ Programming - Cprogramming.com
<http://www.cprogramming.com/> 
C++ tutorial for C users
<http://www.4p8.com/eric.brasseur/cppcen.html> 
Free C++ Tutorials
<http://www.allfreetutorials.com/index.php?pg=cplusplus-tutorials.htm>
C++ Programming Tutorial
<http://cplus.about.com/od/beginnerctutorial/l/blcplustut.htm> 
C# Tutorial For Beginners
By lloyd@galador.net
<http://www.csharphelp.com/archives2/archive402.html> 

(6) It is mostly used for system design. 

(7) C#Builder Downloads
<http://www.borland.com/products/downloads/download_csharpbuilder.html> 
C#
<http://msdn.microsoft.com/howtobuy/vcsharp/default.aspx> 
VC++
<http://msdn.microsoft.com/howtobuy/visualc/default.aspx> 
C++Builder Downloads 
<http://www.borland.com/downloads/download_cbuilder.html> 

(8) See above. Also: 
Microsoft Visual C++ .NET 
Microsoft Visual C# 
Borland C++ Builder 6 


Further Sources
---------------
Steve Holms, C Programming
<http://www.its.strath.ac.uk/courses/c/> 

Brian W. Kernighan, Programming in C:  A Tutorial 
<http://www.lysator.liu.se/c/bwk-tutor.html> 

Marshall Brain, How C Programming Works, HowStuffWorks
<http://computer.howstuffworks.com/c.htm> 

The C Programming Language
<http://www.amazon.com/exec/obidos/tg/detail/-/0131103628/qid=1126892795/sr=2-1/ref=pd_bbs_b_2_1/102-1363465-4776923?v=glance&s=books>

Frank B. Brokken, C++ Annotations Version 6.2.2
<http://www.icce.rug.nl/documents/cplusplus/> 


Java
====
(1) It is a C-based programming language, developed by Sun. 

(2) It is used to create all sorts of applications, but is very useful
in game programming.

(3) Example of Java from Wikipedia: 
<http://en.wikipedia.org/wiki/Java#Hello_World_example> 
An example of an application for interactive web site: 
Secret Worlds: The Universe Within 
<http://micro.magnet.fsu.edu/primer/java/scienceopticsu/powersof10/> 

(4) As mentioned before, Java is used in web-based applications, but
also in game programming. See for example:
Java Games Community
<http://community.java.net/games/> 
Java Game - Forums
<http://192.18.37.44/forums/index.php> 
Developing Games in Java
<http://www.amazon.com/exec/obidos/tg/detail/-/1592730051/102-1363465-4776923?v=glance>

(5) The Java Tutorial (form Sun)
<http://java.sun.com/docs/books/tutorial/> 
Java Programming Resources 
<http://www.apl.jhu.edu/~hall/java/> 
Java? Tutorials
<http://www.freewarejava.com/tutorials/index.shtml> 
Java Coffee Break Tutorials
<http://www.javacoffeebreak.com/tutorials/> 

(6) Game programmers, web-programmers and also in other applications. 

(7) Download Java
<http://java.sun.com/downloads/index.html> 

(8) see 7.

Further Info
------------
Java(tm)2: A Beginner's Guide by Herbert Schildt
<http://www.amazon.com/exec/obidos/tg/detail/-/0072225882/qid=1126895554/sr=2-3/ref=pd_bbs_b_2_3/102-1363465-4776923?v=glance&s=books>

Java Programming for the Absolute Beginner by Joseph P. Russel
<http://www.amazon.com/exec/obidos/tg/detail/-/0761535225/ref=pd_sim_4/102-1363465-4776923?%5Fencoding=UTF8&v=glance>


JavaScript
==========
(1) It is a scripting language, based on C. 

(2) It is mostly used in programming websites, but could be used in
other applications.

(3) Examples could be seen on the Wikipedia reference to JavaScript:
<http://en.wikipedia.org/wiki/JavaScript> (scroll a little further). 

(4) Usages could be mostly seen in websites. 

(5) Here are several tutorials: 
JavaScript: The Definitive Guide -- by David Flanagan
<http://www.amazon.com/exec/obidos/tg/detail/-/0596000480/> 

The JavaScript Source
<http://javascript.internet.com/> 

W3 Schools: JavaScript Tutorial 
<http://www.w3schools.com/js/default.asp> 

(6) Mostly, though not only, web-programmers. 

(7) See for example: 
JavaScript Kit
<http://javascriptkit.com/> 

(8) Not necessarily, but you can use: 
WINGEAR JavaScript Source Code 3000 Pro 

Further Info
------------
JavaScript.com 
<http://www.javascript.com/> 

The JavaScript Planet! 
<http://www.geocities.com/SiliconValley/7116/> 


VB Script
=========
(1) It is a scripting language, developed by Microsoft. 

(2) It processes codes in HTML pages (similarly to JavaScript). See: 
Wikipedia, VBScript
<http://en.wikipedia.org/wiki/VBScript> 

(3) Examples: 
W3 Schools: VBScript Examples
<http://www.w3schools.com/vbscript/vbscript_examples.asp> 
VBScript Examples
<http://www-scf.usc.edu/~csci571/Special/vb_examples.html> 

(4) It is used mainly on webpages, but has been also abused to spread
viruses, for example.

(5) Here are some tutorials: 
W3 Schools
<http://www.w3schools.com/vbscript/default.asp> 
A Tutorial in VBScript
<http://www.intranetjournal.com/corner/wrox/progref/vbt/> 
Visual Basic Script Tutorials
<http://www.techtutorials.info/vbscript.html> 
VBScript Tutorial
<http://www.pages.drexel.edu/~st93flb5/vbtutorial.html> 
VBScript in a Nutshell
<http://www.amazon.com/exec/obidos/tg/detail/-/0596004885/qid=1126896602/sr=2-1/ref=pd_bbs_b_2_1/102-1363465-4776923?v=glance&s=books>

(6) Mostly, web programmers. 

(7) Windows Script 5.6 for Windows 2000 and Windows XP
<http://www.microsoft.com/downloads/details.aspx?FamilyID=c717d943-7e4b-4622-86eb-95a22b832caa&displaylang=en>

(8) See 7. 


Perl
====
(1) Perl stands for Practical Extraction and Report Language. It is a
programming language.

(2) "Perl is a general-purpose programming language originally
developed for text manipulation and now used for a wide range of tasks
including system administration, web development, network programming,
GUI development, and more." (SOURCE: Wikipedia, Perl,
<http://en.wikipedia.org/wiki/Perl>).

(3) Here is an example from the same Wikipedia article: 
<http://en.wikipedia.org/wiki/Perl#Example_Program> 

(4) "Perl has many and varied applications. Perl has been used since
the early days of the web to write CGI scripts, and is a component of
the popular LAMP (Linux / Apache / MySQL / (Perl / PHP / Python))
platform for web development. Perl has been called "the glue that
holds the web together". Large projects written in Perl include
Slashdot and early implementations of PHP [1] and UseModWiki, the wiki
software used in Wikipedia until 2002. Perl finds many applications as
a "glue language", tying together systems and interfaces that were not
specifically designed to interoperate. Systems administrators use Perl
as an all-purpose tool; short Perl programs can be entered and run on
a single command line. Perl is widely used in finance and
bioinformatics, where it is valued for rapid application development,
ability to handle large data sets, and the availability of many
standard and 3rd-party modules". (ibid)

(5) Perl tutorial: Start
<http://www.comp.leeds.ac.uk/Perl/start.html>  

Perl Tutorial
<http://archive.ncsa.uiuc.edu/General/Training/PerlIntro/>

Beginning Perl Tutorials
<http://www.pageresource.com/cgirec/index2.htm>

PerlMonks: Tutorials
<http://www.perlmonks.org/index.pl?node=Tutorials>

(6) Web programmers, mostly. 

(7) Here: 
Perl.com
<http://www.perl.com/download.csp> 

(8) see 7. 


Microsoft SQL Server (MS SQL)
====================
(1) It is a database management system, developed by Microsoft. 

(2) It manages databases written with SQL. 

(3) Example: 
MS-SQL-Examples w/free code & more
<http://www.serverwatch.com/tutorials/article.php/2184581>

(4) Usage: mostly for small and medium sized businesses, to maintain
their database.

(5) Tutorials: 
MS SQL Tutorial
<http://www.tutorialized.com/tutorials/Database/MSSQL/1> 
MS SQL Tutorials
<http://www.webdesignbits.com/tutorials/mssql/> 

(6) Mostly for business application and management. 

(7) See MS Page: How to Buy
<http://www.microsoft.com/sql/howtobuy/default.mspx> 

(8) Microsoft SQL Server 2000 Developer 


SQL
===
(1) A database management programming language

(2) It manages databases. 

(3) examples: 
SQL Examples site
<http://www.fluffycat.com/sql/> 

(4) Usage is mostly in businesses, but also in websites maintaining a
database, etc.

(5) Tutorials: 
W3 Schools
<http://www.w3schools.com/sql/default.asp> 

SQL Course
<http://www.sqlcourse.com/> 

SQL Tutorial
<http://www.baycongroup.com/tocsql.htm> 

(6) businesses, websites. 

(7) There are many platforms, like the abovementioned MS_SQL. i.e.,
you can buy Oracle PL; also MYSQL mentioned below.

(8) see above. 


MYSQL Server
============
(1) An open source database management system

(2) Management of databases

(3) Examples: Examples of SQL Statements
<http://hostingct.com/supportmanual/mysqlex.shtml> 

(4) Famous users include: Sabre, and its travel reservation system
Travelocity, LiveJournal and Slashdot.

(5) Tutorials: 
MySQL Basics -- A Helpful MySQL Tutorial
<http://www.analysisandsolutions.com/code/mybasic.htm> 
Official Site
http://dev.mysql.com/tech-resources/articles/ddws/
Free MySQL Tutorials
<http://www.freeprogrammingresources.com/mysqltutor.html> 

(6) web developers, business owners

(7) Here: 
<http://dev.mysql.com/downloads/> 

(8) see above. 


Access
======
(1) Is a database management system, developed by Microsoft. 

(2) Manages databases. 

(3) See for example: 
<http://www.bcschools.net/staff/AccessHelp.htm> 

(4) It is used to manage databases for businesses, organisations and
site-administration

(5) Microsoft Access Tutorial
<http://cisnet.baruch.cuny.edu/holowczak/classes/2200/access/accessall.html> 
Also: 
<http://fisher.osu.edu/~muhanna_1/837/MSAccess/tutorials.html> 
About.com,
<http://databases.about.com/cs/tutorials/> 

(6) Database admins of all sorts

(7- 8) buy Microsoft Access 2003, or as part of Microsoft Office Packet. 


Game Creation Resources
=======================
Ambrosine
<http://www.ambrosine.com/resource.html> 

3D Game Programming All in One 
<http://www.amazon.com/exec/obidos/tg/detail/-/159200136X/102-1363465-4776923?v=glance>

I hope this answers your question. Please contact me if you need any
clarification on this answer before you rate it.
Comments  
There are no comments at this time.

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy