The Arduino Integrated Development Environment (IDE) provides a source code editor and ability to upload your program to a usb attached board

Beyond the Arduino IDE, there are additional development tools and plugins for existing IDE platforms.
Arduino programming is done using C++ which is compiled using compiled for the platform using the Arduino IDE
Each Arduino program will have a minimum of void setup() and void loop() functions:
void setup() {
// comments
statements;
}
void loop() {
statements;
}